1、linux系統(tǒng)一般自帶perl 可運行程序在:/usr/bin/perl
2、perl測試程序
#!/usr/bin/perl -w use warnings; print "Hello, Perl works! ";
命名為test.pl
在終端下,定位到該目錄,輸入perl test.pl,perl正常工作的話,會顯示輸出 Hello, Perl works!
3、讓apache2以cgi方式支持perl a. apache2安裝完成之后, 配置文件位于/etc/apache2目錄下,主要是apache2.conf。 但是修改的時候主要可以修改sites-available下面的default; 修改完成之后重啟apache2,需要輸入/etc/init.d/apache2之后添加參數(shù)stop, start, restart。
b. 修改apache2的配置文件使得其以cgi方式支持perl 修改sites-available下的default中的
ScriptAlias /cgi-bin/ /var/www/cgi-bin/ AllowOverride all Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all
設置目錄/cgi-bin/對應的為/var/www/cgi-bin/ (即http://localhost/cgi-bin/目錄下為cgi腳本) 同時修改AllowOverride, Options, Order, Allow等如上。 還可以添加 AddHandler cgi-script .cgi .pl
自定義支持的后綴(默認情況下支持cgi和pl后綴)
4、編寫cgi測試程序 cgi_test.pl
#!/usr/bin/perl -w use warnings; use CGI qw(:standard); #! must use 'my' to define a variable print header; my $now_string = localtime(); print "Hello, CGI using Perl! It's $now_string NOW! ";
注意: a. 需要將該cgi_test.pl程序copy到/var/www/cgi-bin/目錄下 b. 還需要修改程序cgi_test.pl的權限,否則會出現(xiàn)如下類似錯誤: (13)Permission denied: exec of '/var/www/cgi-bin/cgi.pl' failed sudo chmod 755 cgi_test.pl
5、綜上,按照上面介紹的方法: a. perl程序在Linux下運行正常。 b. apache2以cgi支持perl cgi程序 遇到錯誤可以查看,apache2的erro日志文件,位于 /var/log/apache2/error.log 進一步查詢和排除錯誤。
c. 另一個方面,對于cgi的perl程序可以先寫好,在命令行下perl cgi_test.pl查看是否程序本身有錯。 如果沒有錯,就可以完全將問題定位成apache2對perl cgi程序的支持問題。 |