문제에 대한 설명:
127.0.0.1/cgi-bin/test.cgi
브라우저에서 로드 test.cgi
하면 파이썬 파일 대신 텍스트 파일처럼 취급됩니다.
파이썬 코드와 관련된 오류 가능성을 배제합니다.
파이썬 코드에 무엇을하든 의도적 인 500 오류를 얻을 수 없습니다.
그리고 .NET을 통해 cgi 파일을 실행 가능하게 만들었습니다 sudo chmod +x
.
이전 버전의 Ubuntu에서 문제없이이 작업을 수행했습니다.
이론:
문제는 내 구성에 있다고 생각합니다. 아래는 두 파일 apache2.conf
및 000-default
.
나는 기회가있을 때마다 구성 파일이 작동하도록 여러 가지를 붙여 넣었습니다. 이것은이 두 파일이 작성 당시의 모습을 보여주는 스냅 샷입니다.
미리 감사드립니다!
/etc/apache2/apache2.conf
:
Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory /home/isaac/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
/etc/apache2/sites-available/000-default
:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/isaac/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
ScriptAlias /cgi-bin/ /home/isaac/www/cgi-bin/
<Directory "/home/isaac/www/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AddHandler cgi-script .py
AddHandler default-handler .html .htm
</Directory>
첫 번째 문제는 CGI 모듈이 활성화되지 않았기 때문에 Apache가 CGI로 아무것도 처리하지 않기 때문입니다. 활성화 :
sudo a2enmod cgi
Apache2.4에서는 구성이 상당히 정리되었으며 default
사이트 정의의 항목이 conf-available
. 무엇보다도 default
이전 버전 사이트 에서 볼 수있는 CGI 관련 구성 라인도 포함 됩니다. 다음이 포함 된로 이동되었습니다 /etc/apache2/conf-available/serve-cgi-bin.conf
.
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
이로 인해 두 번째 문제가 발생합니다. 해당 파일을 수정하거나 해당 구성을 비활성화하십시오.
sudo a2disconf serve-cgi-bin
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다