一、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/perluse strict;use warnings;print "Content-type: text/html/n/n";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.confAlias /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值加一。