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

・4 分钟阅读

前提条件

  • 运行最新Arch Linux的服务器(请参见本文 )
  • 一个正在运行Apache或Nginx的Web服务器
  • sudo访问:
    • 需要作为root运行的命令以#开头,
  • 安装了文本编辑器,并熟悉它,如vi,vim,nano,emacs或类似的编辑器,

在Web服务器上安装Perl 5.28

Perl是Arch基础组成的一部分,因此它与Arch的其余部分一起安装。

用于Apache

安装AUR (Arch用户存储库)软件包mod_perl

通过编辑/etc/httpd/conf/httpd ,conf,启用Apache Perl模块,并且在loadmodule命令列表的末尾添加以下内容:


LoadModule perl_module modules/mod_perl.so

使你希望能够运行Perl脚本的每个Directory部分都包含以下选项。


<Directory"/srv/http/cgi-bin">
 AllowOverride None
 Require all granted
 AddHandler perl-script .pl
 AddHandler perl-script .cgi
 PerlResponseHandler ModPerl::Registry
 Options +ExecCGI
 PerlOptions +ParseHeaders
</Directory>

注意如果你正在编辑现有的Directory部分,并且它已经包含Options None,请注释该行或删除它。

如果运行多个主机目录,还需要编辑/etc/httpd/conf/httpd.conf,并且注释ScriptAlias命令,或者所有"/cgi-bin/"web请求都会服务于/srv/http/cgi-bin/


<IfModule alias_module>
...
 #ScriptAlias /cgi-bin/"/srv/http/cgi-bin/"
</IfModule>

重启Apache :


# systemctl restart httpd

创建适当的目录:


# mkdir /srv/http/cgi-bin

用于Nginx

安装FCGI包装:


# pacman -S fcgiwrap

启动FCGI包装,并使它在每次引导后启动:


# systemctl enable --now fcgiwrap.socket

允许Nginx通过编辑/etc/nginx/nginx.conf使用FCGI包装,并向你希望使用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测试文件。

Zuoxiaojuan profile image