我試圖在運行於GNU/Linux Debian Stable機器上的apache2服務器上運行Rebol CGI腳本。如何在apache2上執行Rebol CGI腳本
這裏是我的雷博爾腳本:
# [email protected]: ~$ <2013_05_29__17_35_22>
dog /usr/lib/cgi-bin/test.cgi
#!/usr/bin/rebol -cs
REBOL []
print "Content-type: text/html^/"
print "coucou! (signé: Rebol)"
其失敗:
# [email protected]: ~$ <2013_05_29__17_21_18>
lynx http://127.0.0.1/cgi-bin/test.cgi
回報:
500 Internal Server Error
Internal Server Error
The server encountered an internal error or misconfiguration and was
unable to complete your request.
Please contact the server administrator, [email protected] and inform
them of the time the error occurred, and anything you might have done
that may have caused the error.
More information about this error may be available in the server error
log.
__________________________________________________________________
Apache/2.2.22 (Debian) Server at 127.0.0.1 Port 80
日誌說:
###ROOT### < 29/05/2013 17:02:45 > [email protected]:/#
tail -1 /var/log/apache2/error.log
[Thu May 30 15:04:23 2013] [error] [client 127.0.0.1] Premature end of script headers: test.cgi
讀取DOC(http://httpd.apache.org/docs/trunk/fr/howto/cgi.html)後,我可以成功運行此Perl腳本:
# [email protected]: ~$ <2013_05_29__17_35_22>
dog /usr/lib/cgi-bin/testpl.cgi
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "coucou! (signé: Perle)";
現在,我想知道什麼不順心與Rebol的腳本...
我查了幾件事情:
到Rebol的可執行文件的路徑是正確的:我可以啓動腳本,而不顯式調用解釋器,直接從外殼:
# [email protected]: ~$ <2013_05_30__14_07_36>
/usr/lib/cgi-bin/test.cgi
Content-type: text/html
coucou! (signé: Rebol)
執行權似乎對我很好;它們是相同的兩個文件:
# [email protected]: ~$ <2013_05_29__17_35_22>
ll /usr/lib/cgi-bin/test*.cgi
-rwxr-xr-x 1 root root 97 mai 29 09:28 /usr/lib/cgi-bin/test.cgi
-rwxr-xr-x 1 root root 87 mai 29 09:26 /usr/lib/cgi-bin/testpl.cgi
爲雷博爾可執行文件的執行權似乎沒什麼問題:
# [email protected]: ~$ <2013_05_30__14_07_36>
ll /usr/bin/rebol
-rwxr-xr-x 1 root root 1215652 déc. 30 22:50 /usr/bin/rebol
我使用REBOL /查看2.7.8.4.2 2-JAN-2011。
下面是我修改的Apache2配置文件:
###ROOT### < 29/05/2013 17:20:12 > [email protected]:/etc/apache2/conf.d#
dog /etc/apache2/conf.d/httpd.conf
#ScriptAlias magic/cgi-bin/ /var/www/magic/cgi-bin/
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
AddHandler cgi-script .cgi
Options
AddHandler magic .rhtml
Action magic /cgi-bin/magic.cgi
<Directory "/var/www/magic/cgi-bin/">
AllowOverride None
Options ExecCGI MultiViews SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
<Directory "/usr/lib/cgi-bin/">
AllowOverride None
Options ExecCGI MultiViews SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
請注意,我不熟悉,在所有與Apache的配置。
有什麼想法?
它的工作! 謝謝! :) – Pierre