注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com
先决条件
运行最新的Arch Linux的Vultr服务器(请参阅本文。)
正在运行的Web服务器,Apache或Nginx
须藤访问:
需要以root身份运行的命令带有前缀 #
。建议以root用户身份运行命令的方式是,以普通用户的身份为每个命令添加前缀 sudo
安装并熟悉文本编辑器,例如vi,vim,nano,emacs或类似的编辑器
在Web服务器上安装Perl 5.28
Perl是Arch基础组的一部分,因此它与Arch的其余部分一起安装。
对于Apache
安装AUR(Arch用户存储库)软件包 mod_perl
。请参阅在Arch Linux上构建软件包(包括AUR)。
通过编辑启用Apache Perl模块 /etc/httpd/conf/httpd.conf
,并在列表的末尾 LoadModule
命令,添加以下内容:
LoadModule perl_module modules/mod_perl.so
使每个 Directory
您希望能够运行Perl脚本的部分包含以下选项。
AllowOverride None
Require all granted
AddHandler perl-script .pl
AddHandler perl-script .cgi
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
请注意,如果您正在编辑现有的 Directory
部分,它已经包含 Options None
,注释掉该行或将其删除。
如果运行多个主机目录,则还需要编辑 /etc/httpd/conf/httpd.conf
并注释掉 ScriptAlias
如图所示的命令,否则所有“ / cgi-bin /” Web请求都将被提供 /srv/http/cgi-bin/
无论是哪个主机:
...
#ScriptAlias /cgi-bin/ "/srv/http/cgi-bin/"
重新启动Apache:
# systemctl restart httpd
创建适当的目录:
# mkdir /srv/http/cgi-bin
对于Nginx
安装FCGI Wrap:
# pacman -S fcgiwrap
启动FCGI Wrap,并使其在每次启动后启动:
# systemctl enable --now fcgiwrap.socket
通过编辑允许Nginx使用FCGI Wrap /etc/nginx/nginx.conf
,然后向要使用Perl的每个服务器块添加以下内容:或者,如果您正在使用虚拟主机,请编辑每个主机的配置文件:
location ~ /cgi-bin/.*.(cgi|pl)$ {
root /usr/share/nginx/html/;
fastcgi_pass unix:/run/fcgiwrap.sock;
include fastcgi.conf;
}
创建适当的目录:
# mkdir /usr/share/nginx/html/cgi-bin/
测试Perl
在适当的目录中,创建 test.cgi
内容:
#!/usr/bin/perl
print "Content-type: text/plainnn";
print "perl worksn";
使它可执行(perl脚本需要):
# chmod +x test.cgi
在网络浏览器中,访问 https://YOUR-SERVER-WEB-ADDRESS-OR-IP/test.cgi
,您会看到 perl works
。
请务必删除 test.cgi
您刚创建的测试文件。
注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com