Quantcast
Channel: linux运维前沿 » httpd
Viewing all articles
Browse latest Browse all 4

apache2-install-mod_fastcgi

$
0
0

最近把部分业务从Apache + mod_php —–>Apache+mod_fastcgi,这里简单记录下整个操作流程
(1):为了减少开发环境和最少变更,我们维持Apache+work 模式处理静态,PHP及其他动态扔给后端的fastcgi 处理。
(2):应开发测试环境的需求,对单一虚拟主机完成多版本的PHP解析需求

整个流程如下图所示:

通过升级后,我们对PHP的解析更容易掌控和冗余,对日后架构扩展和迁移也比较方便

PS: 因为升级PHP,顺便完成历史遗留问题(数据库Latin1)的解决.完成部分老的项目数据库到最新版本,解决编码问题 Latin1—>GBK—>UTF8(完美升级)
有机会放出自己写的Python多进程备份还原脚本

环境:Centos 5.4 64bit OS
软件:
Apache2.2.22
mod_fastcgi-2.4.6.tar.gz
★★:安装编译部分:

需要软件:Apache2,mod_fastcgi-2.4.6.tar.gz,zlib
wget http://mirrors.sohu.com/apache/httpd-2.2.22.tar.bz2
wget http://test.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
wget http://www.puppetcn.net/tools/zlib-1.2.3.tar.gz

#安装zlib

1
2
./configure --share --prefix=/usr/local/zlib
make && make install

#安装httpd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
tar -jxvf httpd-2.2.22.tar.bz2
cd httpd-2.2.22
./configure \
"--prefix=/usr/local/apache2" \
"--with-included-apr" \
"--enable-so" \
"--with-mpm=worker" \
"--with-z=/usr/local/zlib" \
"--enable-mods-shared=all" \
"--enable-deflate=shared" \
"--enable-expires=shared" \
"--enable-rewrite" \
"--disable-userdir" \
"--disable-authn-file" \
"--disable-authn-dbm" \
"--enable-authn-anon" \
make && make install
1
2
3
4
5
6
7
# tar -zxvf mod_fastcgi-2.4.6.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP2 Makefile
make top_dir=/usr/local/apache2 #指定apache安装路径(我的是--prefix=/usr/local/apache2)
make install
#[zhangmh@zhangmh modules]$ ls mod_fastcgi.so
mod_fastcgi.so

有了这个mod_fastcgi.so,就证明安装成功了!
小结:我们使用mod_fastcgi 就是为了使用PHP-FPM 管理,PHP-FPM 的优点大家可以参考:http://php-fpm.org/about/
如果版本低于5.3.3,到http://php-fpm.org/downloads/下载页面找自己目前合适的版本重新编译!!!
★★PHP-FPM安装部分:
下载最新版的php5(PHP>php5.3.3),php5.3.3以后官方才支持

PHP 5.3.3 is released and now bundles PHP-FPM, with all of the new improvements – adaptive process spawning, the new INI file format and include support, basic metrics for reporting, and more. If your code is PHP 5.3 compliant, it is highly recommended that you upgrade to take advantage of the built-in PHP-FPM support now (not to mention mysqlnd and all the other new features.)


如果版本低于5.3,通过补丁形式重新编译,我测试的使用php5.3.10

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
  ./configure
  '--prefix=/usr/local/php5'
  '--with-config-file-path=/usr/local/php5/etc'
  '--with-mysql=/usr/local/mysql5'
  '--with-mysqli=/usr/local/mysql5/bin/mysql_config'
  '--with-fpm-user=nobody'
  '--with-fpm-group=nobody'
  '--with-iconv-dir=/usr/local/libiconv/'
  '--with-freetype-dir=/usr/local/freetype'
  '--with-jpeg-dir=/usr/local/jpeg6'
  '--with-png-dir=/usr/local/libpng'
  '--with-zlib=/usr/local/zlib'
  '--with-libxml-dir=/usr/local/libxml2'
  '--with-mcrypt=/usr/local/libmcrypt'
  '--with-gd=/usr/local/gd2'
  '--enable-xml'
  '--disable-rpath'
  '--enable-bcmath'
  '--enable-shmop'
  '--enable-sysvsem'
  '--enable-inline-optimization'
  '--with-curl'
  '--with-curlwrappers'
  '--enable-mbregex'
  '--enable-fpm'
  '--enable-mbstring'
  '--enable-gd-native-ttf'
  '--with-openssl'
  '--with-mhash'
  '--enable-pcntl'
  '--enable-sockets'
  '--with-ldap'
  '--with-ldap-sasl'
  '--with-xmlrpc'
  '--enable-zip'
  '--enable-soap'
make && make install

★★配置虚拟主机部分:
★#支持fastcgi虚拟主机

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
LoadModule fastcgi_module modules/mod_fastcgi.so
FastCGIExternalServer /opt/app/php5/sbin/php-fpm -idle-timeout 900 -socket /tmp/phpfpm.sock
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin root@localhost
DocumentRoot "/data/www/www.one.com"
ServerName  www.one.com
    ScriptAlias /cgi-bin/php-fpm /usr/local/php5/sbin/php-fpm
    Action php5-fastcgi /cgi-bin/php-fpm
    AddType application/x-httpd-php .php
    AddHandler php5-fastcgi .php
<Directory "/usr/local/php5/sbin/">
Options -Indexes FollowSymLinks +ExecCGI
SetHandler fastcgi-script
Order allow,deny
Allow from all
</Directory>
<Directory "/data/www/www.one.com">
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Allow from all
<FilesMatch "\.php$">
  SetHandler php5-fastcgi ###避免使用mod_php处理。
</FilesMatch>
</Directory>
CustomLog "|/usr/local/cronolog/sbin/cronolog /usr/local/apache2/www.one.com-access_log.%Y%m%d" combined ##需要安装cronolog软件
</VirtualHost>

★#支持mod_php配置

1
2
3
4
5
6
7
8
9
10
11
12
13
LoadModule php5_module        modules/libphp5.so
<VirtualHost *:80>
ServerAdmin root@localhost
DocumentRoot "/data/www/www.two.com"
ServerName  www.two.com
<Directory "/data/www/www.two.com">
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Allow from all
</Directory>
CustomLog "|/usr/local/cronolog/sbin/cronolog /usr/local/apache2/www.two.com-access_log.%Y%m%d" combined ##需要安装cronolog软件
</VirtualHost>

Viewing all articles
Browse latest Browse all 4

Latest Images

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.





Latest Images

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.