Linux 下,默认就会集成 perl 环境。
直接执行 perl -version 就能得出当前 perl 的版本号。
所以,linux 下的 apache 默认也是支持perl Cgi 运行的。只是你有没把配置项打开。
编辑 http.conf
找到 #AddHandler cgi-script .cgi
把前边的#去掉,然后在 .cgi 后加上 .pl
AddHandler cgi-script .cgi .pl
重启apache即可。
然后如果你的程序是在 http://localhost/perl 这个地址的的话,就要
----------------------------我是分割线---------------------------
ScriptAlias /perl/ "/data/server2_NFS/disk_e/WebServer/perl/"
AllowOverride None
Options None
Order allow,deny
Allow from all
----------------------------我是分割线---------------------------
留意好每个 / 斜杠啊。不然老出 403 跟 404
虚拟主机的话就这样:http://perl.gznow.cn/perl
----------------------------我是分割线---------------------------
ServerAdmin qbanke@163.com
DocumentRoot /data/web_server/perl/
ServerName perl.gznow.cn
ServerAlias perl.gznow.cn
DirectoryIndex index.pl
#######
ScriptAlias /perl/ "/data/server2_NFS/disk_e/WebServer/perl/"
AllowOverride None
Options None
Order allow,deny
Allow from all
----------------------------我是分割线---------------------------
也是留意好每个 / 斜杠啊。不然老出 403 跟 404
然后,为了充分发挥perl速度,建议你往apache 里头编译加载 mod_perl
方法很简单,http://perl.apache.org/download/index.html 再这里头下就可以了。
然后把下载回来的 .tar.gz 解压缩,然后进入执行安装命令。
# cd mod_perl-2.0.4
# perl Makefile.PL
它会问你的 apache apxs 路径
Please provide a full path to 'apxs' executable
(press Enter if you don't have it installed):
你就把完整的路径给它,例如我的就是 /usr/local/apache2/bin/apxs
输入完后回车,它其实就是像往常tar包编译的 configure 一样,把你的环境扫描一遍。
并且提示你要在 httpd.conf 里边添加 LoadModule perl_module modules/mod_perl.so
先别急,编译安装好了再加也行!向导完成后接着在当前目录
# make
# make install
完成! 你就会在 /usr/local/apache2/modules 下发现多了个 mod_perl.so
好了,现在你可以在 httpd.conf 把刚才那句加上去了。
# vi httpd.conf
找到 # LoadModule foo_module modules/mod_foo.so
在下边一行加入
LoadModule perl_module modules/mod_perl.so
:wq 保存退出 重启 apache即可!
加载了 mod_perl.so 之后,apache 对 perl 的支持就更加强大了。
httpd.conf per 目录的配置的表达式也不同了。
以下是我用于测试环境的 虚拟主机 支持 perl 的配置。
直接在 perl.gznow.cn 站点的根目录
ServerAdmin qbanke@163.com
DocumentRoot /data/web_server/perl/
ServerName perl.gznow.cn
ServerAlias perl.gznow.cn
DirectoryIndex index.pl
#######
Options FollowSymLinks ExecCGI #这个是加载了mod_perl 后权限项目的表达式。
AllowOverride All
Order allow,deny
Allow from all
------------------------ 我是分割线------------------------
如果像刚才那样 http://localhost/perl/
加载 mod_perl 之后就这么写。
运行速度可不一样哦!
Alias /perl/ "/data/server2_NFS/disk_e/WebServer/perl/"
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders