如何在Arch Linux Web服务器上安装Perl 5.28

注:本教程在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

在网络浏览器中,访问 http://YOUR-SERVER-WEB-ADDRESS-OR-IP/test.cgi,您会看到 perl works

请务必删除 test.cgi 您刚创建的测试文件。

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com