欢迎光临
专业Linux运维二十年

CentOS 7.2配置Apache服务httpd(下)

一、perl + mod_perl

安装mod_perl使perl脚本速度快

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
[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/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上具有代码缓存的注册表模式

?
1
2
3
4
5
6
7
8
9
10
11
12
13
[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值加一。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@linuxprobe ~]
# vi /var/www/perl/test-mod_perl.cgi
 
#!/usr/bin/perl
 
use 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($a
);
 
print
"</div>\n</body>\n</html>"
;
 
sub number {
 
  
my($a) = @_;
 
  
$a++;
  
print
"number \$a = $a"
;
}

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

二、php + php-fpm

安装php-fpm使php脚本速度快

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[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://127.0.0.1:9000"
 
<
/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

三、python + mod_wsgi

安装mod_wsgi(wsgi:web服务器网关接口),使python脚本更快

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[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>\n'
\
      
'mod_wsgi test page\n'
\
      
'</div>\n'
\
      
'</body>\n'
\
      
'</html>\n'
  
response_header = [(
'content-type'
,
'text/html'
)]
  
start_response(status,response_header)
  
return
[html]

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[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

四、访问日志分析器:awstats

安装awstats,它报告http日志以分析对http服务器的访问。

[1] 安装awstats。 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 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 127.0.0.1 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 10.1.1.0
/24
 
[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.

[2]访问“http://(您的服务器的名称或ip地址/)/awstats/awstats.pl”,然后显示以下屏幕,可以看到httpd日志报告。

脚本之家
赞(0) 打赏
未经允许不得转载:Linux老运维 » CentOS 7.2配置Apache服务httpd(下)

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫