Apache + CGI로 모든 HTTP 요청 헤더 출력
1. 하고 싶은 일
웹 서버가 수신하는 HTTP 요청 헤더를 확인하고 싶기 때문에 모든 HTTP 요청 헤더를 출력하는 페이지를 만듭니다. OS는 CentOS7, CGI는 파이썬을 사용합니다.
# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
2. Apache 도입
# yum install httpd
# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Aug 8 2019 11:41:18
3. /etc/httpd/conf/httpd.conf 편집
Apache 구성 파일(/etc/httpd/conf/httpd.conf) 편집
# SriptAliasの確認の確認
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
# /var/www/cgi-bin配下でCGIの実行を許可するように指定
# また、pyを拡張子に持つすべてのファイルを CGI プログラムとしてみなす
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI
Require all granted
AddHandler cgi-script .py
</Directory>
4. CGI 스크립트 배치
# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
# yum install httpd
# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Aug 8 2019 11:41:18
3. /etc/httpd/conf/httpd.conf 편집
Apache 구성 파일(/etc/httpd/conf/httpd.conf) 편집
# SriptAliasの確認の確認
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
# /var/www/cgi-bin配下でCGIの実行を許可するように指定
# また、pyを拡張子に持つすべてのファイルを CGI プログラムとしてみなす
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI
Require all granted
AddHandler cgi-script .py
</Directory>
4. CGI 스크립트 배치
# SriptAliasの確認の確認
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
# /var/www/cgi-bin配下でCGIの実行を許可するように指定
# また、pyを拡張子に持つすべてのファイルを CGI プログラムとしてみなす
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI
Require all granted
AddHandler cgi-script .py
</Directory>
HTTP_
라고 하는 prefix를 가지는 것만을 출력하고 있다./var/www/cgi-bin/test.py
#!/usr/bin/env python
import os
print "Content-Type: text/html"
print "Cache-Control: no-cache"
print
print "<html><body>"
for headername, headervalue in sorted(os.environ.iteritems()):
if headername.startswith("HTTP_"):
print "{0} = {1}<br>".format(headername, headervalue)
print "</html></body>"
권한 변경 및 Apache 재부팅
# chmod 755 /var/www/cgi-bin/test.py
# systemctl restart httpd
5. 검증
curl에서 테스트# curl http://localhost/cgi-bin/test.py
<html><body>
HTTP_ACCEPT = */*<br>
HTTP_HOST = localhost<br>
HTTP_USER_AGENT = curl/7.29.0<br>
</html></body>
브라우저에서 테스트
2021/06/25 보충
단순히 HTTP 헤더를 출력하고 싶은 앱을 만들고 싶다면 이것으로 좋았을지도. . .
# yum install -y httpd
# yum install -y php
# echo "<?php phpinfo(); ?>" > /var/www/html/test.php
# systemctl start httpd
Reference
이 문제에 관하여(Apache + CGI로 모든 HTTP 요청 헤더 출력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/testnin2/items/480f395ca8ebbb4b71f8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# curl http://localhost/cgi-bin/test.py
<html><body>
HTTP_ACCEPT = */*<br>
HTTP_HOST = localhost<br>
HTTP_USER_AGENT = curl/7.29.0<br>
</html></body>
단순히 HTTP 헤더를 출력하고 싶은 앱을 만들고 싶다면 이것으로 좋았을지도. . .
# yum install -y httpd
# yum install -y php
# echo "<?php phpinfo(); ?>" > /var/www/html/test.php
# systemctl start httpd
Reference
이 문제에 관하여(Apache + CGI로 모든 HTTP 요청 헤더 출력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/testnin2/items/480f395ca8ebbb4b71f8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)