CentOS 7.2配置Apache服务httpd(下)

一、Perl + mod_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  # 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    

CentOS 7.2配置Apache服务httpd(下) Linux 第1张

[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值加一。

CentOS 7.2配置Apache服务httpd(下) Linux 第2张

  [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";  }    

[6]顺便说一下,可以看到mod_perl的状态来访问“http://(主机名或IP地址)/ perl-status”。

CentOS 7.2配置Apache服务httpd(下) Linux 第3张



  [1]安装PHP,请参考这里。     [2]安装PHP-FPM。    [root@linuxprobe ~]# yum -y install php-fpm  [3]   配置Apache httpd。  [root@linuxprobe ~]# vi /etc/httpd/conf.d/php.conf  # line 5: change like follows  <FilesMatch .php$>  #    SetHandler application/x-httpd-php    SetHandler "proxy:fcgi://"    </FilesMatch>  [root@linuxprobe ~]# systemctl start php-fpm  [root@linuxprobe ~]# systemctl enable php-fpm  [root@linuxprobe ~]# systemctl restart httpd    [4]创建phpinfo并访问它,然后如果“FPM / FastCGI”显示,它是确定。    [root@linuxprobe ~]# echo '<?php phpinfo(); ?>' > /var/www/html/info.php     

CentOS 7.2配置Apache服务httpd(下) Linux 第4张

三、Python + mod_wsgi


  [1] 安装mod_wsgi .  [root@linuxprobe ~]# yum -y install mod_wsgi  [2] 例如,将mod_wsgi配置为可以访问/ test_wsgi,后端是/var/www/html/test_wsgi.py.  [root@linuxprobe ~]# vi /etc/httpd/conf.d/wsgi.conf  # create new    WSGIScriptAlias /test_wsgi /var/www/html/test_wsgi.py  [root@linuxprobe ~]# systemctl restart httpd    [3] 创建您在上面设置的测试脚本.  [root@linuxprobe ~]# vi /var/www/html/test_wsgi.py  # create new    def application(environ,start_response):    status = '200 OK'    html = '<html>n'         '<body>n'         '<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">n'         'mod_wsgi Test Pagen'         '</div>n'         '</body>n'         '</html>n'    response_header = [('Content-type','text/html')]    start_response(status,response_header)    return [html]    

CentOS 7.2配置Apache服务httpd(下) Linux 第5张

  [4]配置如果你使用Django。 ([参考安装Django](http://blog.csdn.net/wh211212/article/details/52992413))例如,在“wang”下拥有的“/home/wang/ venv/testproject”下配置“testapp”    [root@linuxprobe ~]# vi /etc/httpd/conf.d/django.conf  # create new    WSGIDaemonProcess testapp python-path=/home/wang/venv/testproject:/home/wang/venv/lib/python2.7/site-packages  WSGIProcessGroup testapp  WSGIScriptAlias /django /home/wang/venv/testproject/testproject/wsgi.py    <Directory /home/wang/venv/testproject>    Require all granted  </Directory>    [root@linuxprobe ~]# systemctl restart httpd     



[1] 安装AWstats。 

  # install from EPEL  [root@linuxprobe ~]# yum --enablerepo=epel -y install awstats  # awstats.(hostname).conf是自动生成的  [root@linuxprobe ~]# vi /etc/awstats/awstats.linuxprobe.org.conf  # line 122: change  # if your config for log format in httpd.conf is 'combined' Set here '1'  # If log-config is 'common' set here '4', but in this case, some informations can't be get (browser info and so on)  LogFormat=1  # line 153: specify your hostname  SiteDomain="linuxprobe.org  # line 168: set IP address you'd like to exclude  HostAliases="localhost REGEX[server.world$] REGEX[^10.1.1.]  "  [root@linuxprobe ~]# vi /etc/httpd/conf.d/awstats.conf  # line 30: IP address you permit to access  Require ip    [root@linuxprobe ~]# systemctl restart httpd  # generate reports ( reports are updated for hourly by Cron )    [root@linuxprobe ~]# /usr/share/awstats/linuxproberoot/cgi-bin/awstats.pl -config=linuxprobe.org -update    Create/Update database for config "/etc/awstats/awstats.linuxprobe.org.conf" by AWStats version 7.4 (build 20150714)  From data in log file "/var/log/httpd/access_log"...  Phase 1 : First bypass old records, searching new record...  Searching new records from beginning of log file...  Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...  Jumped lines in file: 0  Parsed lines in file: 165   Found 0 dropped records,   Found 0 comments,   Found 0 blank records,   Found 0 corrupted records,   Found 0 old records,   Found 165 new qualified records.    


CentOS 7.2配置Apache服务httpd(下) Linux 第6张