我的Ubuntu執行一個文件名爲.cgi在Ubuntu
下運行的Apache/PHP當我運行的CGI文件,通過在http://localhost/mycgi.cgi
去,瀏覽器將顯示運行它的代碼來代替。
如何讓瀏覽器執行CGI文件而不是顯示其內容?
我的Ubuntu執行一個文件名爲.cgi在Ubuntu
下運行的Apache/PHP當我運行的CGI文件,通過在http://localhost/mycgi.cgi
去,瀏覽器將顯示運行它的代碼來代替。
如何讓瀏覽器執行CGI文件而不是顯示其內容?
確保.cgi或.pl文件中的shebang行是正確的。 shebang行告訴Apache Perl解釋器在哪裏(Perl解釋器是perl.exe文件)。
阿帕奇教程說:
以下你的第一個CGI程序就是一個例子CGI程序中打印一行到瀏覽器。輸入以下內容,將其保存到名爲first.pl的文件中,並將其放入cgi-bin目錄中。 #!/ usr/bin/perl print「Content-type:text/html \ n \ n」; print「你好,世界。」;
所以這裏的家當線#!/usr/bin/perl
然而,如果perl.exe所在位於不同的文件夾,然後需要#!/usr/bin/perl
改變!即使對於通常可以完全忽略並忽略shebang行的Windows用戶也是如此。 (爲什麼教程中沒有提到這個事實,我不知道 - 我猜他們沒有意識到有人總是忽略了shebang行嗎?)
例如,當我安裝Perl時,它自動被提示我在C:\Program Files (x86)\Perl64
安裝Perl裏面我Perl64文件夾名爲「bin文件夾和裏面那就是perl.exe所在
,所以我不得不shebang行更改爲:#!C:/Program Files (x86)/Perl64/bin/perl.exe
之前我能得到CGI腳本與Apache工作。
這些行添加到您的apache2.conf文件
<Directory /usr/local/apache2/htdocs/somedir>
Options +ExecCGI
</Directory>
AddHandler cgi-script .cgi .pl
這大感迷惑我在亞馬遜上的Ubuntu 14.04。我有一個構造了幾年「工作」:排序這一點與擴展名爲.cgi一些現有的Perl腳本和現有的虛擬主機配置
sudo a2enmod cgi
sudo service apache2 restart
。也有錯[沒有這個問題,但與此相關的升級】:
virtual.host
成爲
virtual.host.conf
需要之前被確認爲有效。
投票遷移到http://askubuntu.com/ – daxim 2011-02-22 21:09:35
@daxim:我不認爲這真的是一個Ubuntu的具體問題。問題在這裏找到正確。 – eckes 2011-02-22 21:40:51