CentOS 7.2配置Apache服务httpd(下)

2019-01-17 02:19:20刘景俊

一、Perl + mod_perl

安装mod_perl使Perl脚本速度快

[1] 安装mod_perl # 从EPEL安装 [root@linuxprobe ~]# yum --enablerepo=epel -y install mod_perl [2] 配置PerlRun模式,总是将Perl解释器放在RAM上。 [root@linuxprobe ~]# vi /etc/httpd/conf.d/perl.conf # line 15: 取消注释 ( check codes and output warnings to logs ) PerlSwitches -w # line 24: 取消注释 PerlSwitches -T # line 30-36: 取消注释像下面一样 Alias /perl /var/www/perl <Directory /var/www/perl> # the directory for mod_perl environment SetHandler perl-script # processes files as perl-scripts under this directory # AddHandler perl-script .cgi # set specific extension if do do not want to processes all files as CGI # PerlResponseHandler ModPerl::Registry PerlResponseHandler ModPerl::PerlRun # specify PerlRun mode PerlOptions +ParseHeaders Options +ExecCGI </Directory> # line 43-49: 取消注释并添加如下信息 <Location /perl-status> SetHandler perl-script PerlResponseHandler Apache2::Status Require ip 127.0.0.1 10.1.1.1/24 # add access permission # Order deny,allow # Deny from all # Allow from .example.com </Location> [root@linuxprobe ~]# systemctl restart httpd [3] 创建测试脚本以确保设置不是ploblem。如果显示如下所示的结果,就可以。 [root@linuxprobe ~]# mkdir /var/www/perl [root@linuxprobe ~]# vi /var/www/perl/test-mod_perl.cgi #!/usr/bin/perl use strict; use warnings; print "Content-type: text/htmlnn"; print "<html>n<body>n"; print "<div style="width:100%; font-size:40px; font-weight:bold; text-align:center;">"; my $a = 0; &number(); print "</div>n</body>n</html>"; sub number { $a++; print "number $a = $a"; } [root@linuxprobe ~]# chmod 705 /var/www/perl/test-mod_perl.cgi #客户端浏览器访问:http://linuxprobe.org/perl/test-mod_perl.cgi

[4]  配置在RAM上具有代码缓存的注册表模式

[root@linuxprobe ~]# vi /etc/httpd/conf.d/perl.conf Alias /perl /var/www/perl <Directory /var/www/perl> SetHandler perl-script PerlResponseHandler ModPerl::Registry # uncomment # PerlResponseHandler ModPerl::PerlRun # comment out PerlOptions +ParseHeaders Options +ExecCGI </Directory> [root@linuxprobe ~]# systemctl restart httpd

[5] 访问作为[4]节的示例的测试脚本,然后变量通过重新加载而增加,因为变量被高速缓存在RAM上。所以有必要编辑注册表模式的代码,这里浏览器没刷新一次,$a值加一。

[root@linuxprobe ~]# vi /var/www/perl/test-mod_perl.cgi #!/usr/bin/perl use strict; use warnings; print "Content-type: text/htmlnn"; print "<html>n<body>n"; print "<div style="width:100%; font-size:40px; font-weight:bold; text-align:center;">"; my $a = 0; &number($a ); print "</div>n</body>n</html>"; sub number { my($a) = @_; $a++; print "number $a = $a"; }