linux下apache+php(fastcgi)web服务器的搭建
环 境:Linux RedHat Enterprise Linux Server release 5
源码包:httpd-2.2.15.tar.gz php-5.2.13.tar.gz mod_fastcgi-2.4.6.tar.gz php-5.2.13-fpm-0.5.13.diff.gz
本文的编译配置仅限于实现apache+php(FastCGI)的最简单配置,实际编译模块如GD库、mysql模块支持等请自行配置
【编译安装apache】
# tar -zxvf httpd-2.2.15.tar.gz
# cd httpd-2.2.15
# ./configure /
> --prefix=/usr/local/apache2 /
> --enable-module=so
...其他编译配置参考 ./configure --help...
# make
# make install
# cd ../
【编译安装apache所需动态库mod_fastcgi】
# 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
# make install
# cd ../
修改/usr/local/apache2/conf/httpd.conf,添加
LoadModule fastcgi_module modules/mod_fastcgi.so
【编译安装PHP(支持FastCGI)】
* php-fpm补丁可以用来管理php进程,该补丁详细信息,请自行查阅相关资料
# tar zxvf php-5.2.13.tar.gz
# gzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1
# cd php-5.2.13/
# ./configure /
> --prefix=/usr/local/php /
> --with-config-file-path=/usr/local/php/etc /
> --enable-fastcgi /
> --enable-force-cgi-redirect /
> --enable-fpm
...其他编译配置参考 ./configure --help...
# make
# make install
# cp php.ini-dist /usr/local/php/etc/php.ini
# cd ../
编辑php-fpm的配置文件 /usr/local/php/etc/php-rmp.conf
将其中注释标志去掉
<!-- <value name="user">nobody</value> -->
<!-- <value name="group">nobody</value> -->
注释符号 <!-- -->
否则会出现如下错误
[ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool 'default'
# /usr/local/php/sbin/php-fpm start
# netstat -ntl (查看端口9000已被监听)
* 如果想利用apache管理php的进程, php-fpm进程可以关闭
# /usr/local/php/sbin/php-fpm stop
【配置apache+php(FastCGI)整合】
创建FastCGI脚本目录
# mkdir /usr/local/apache2/fcgi-bin
# ln -s /usr/local/php/bin/php-cgi /usr/local/apache2/fcgi-bin/php-cgi
修改/usr/local/apache2/conf/httpd.conf,采用apache和php_fpm管理php进程的配置有所不同,请选择其中一种方式。用php_frm管理的方式可以不修改php配置的前提下直接应用于nginx+php的组合中:
A:如果用apache的内部的fpm(fastcgi process manager)
view plaincopy to clipboardprint?
01.<IfModule fastcgi_module>
02.
03. ScriptAlias /fcgi-bin/ "/usr/local/apache2/fcgi-bin/"
04.
05. # 开启10个php进程
06.
07. FastCgiServer /usr/local/apache2/fcgi-bin/php-cgi -processes 10
08.
09. AddType application/x-httpd-php .php
10.
11. AddHandler php-fastcgi .php
12.
13. Action php-fastcgi /fcgi-bin/php-cgi
14.
15. <Directory "/usr/local/apache2/fcgi-bin/">
16.
17. SetHandler fastcgi-script
18.
19. Options FollowSymLinks
20.
21. Order allow,deny
22.
23. Allow from all
24.
25. </Directory>
26.
27.</IfModule>
<IfModule fastcgi_module>
ScriptAlias /fcgi-bin/ "/usr/local/apache2/fcgi-bin/"
# 开启10个php进程
FastCgiServer /usr/local/apache2/fcgi-bin/php-cgi -processes 10
AddType application/x-httpd-php .php
AddHandler php-fastcgi .php
Action php-fastcgi /fcgi-bin/php-cgi
<Directory "/usr/local/apache2/fcgi-bin/">
SetHandler fastcgi-script
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>
</IfModule>
B:如果用php-fpm(php fastcgi process manager)
必须打开开启php-fpm进程,详见php+php-fpm的安装
view plaincopy to clipboardprint?
01.<IfModule fastcgi_module>
02.
03. ScriptAlias /fcgi-bin/ "/usr/local/apache2/fcgi-bin/"
04.
05. # 将php进程管理交给127.0.0.1:9000,这正是php_fpm的监听端口
06.
07. FastCgiExternalServer /usr/local/apache2/fcgi-bin/php-cgi -host 127.0.0.1:9000
08.
09. AddType application/x-httpd-php .php
10.
11. AddHandler php-fastcgi .php
12.
13. Action php-fastcgi /fcgi-bin/php-cgi
14.
15. <Directory "/usr/local/apache2/fcgi-bin/">
16.
17. SetHandler fastcgi-script
18.
19. Options FollowSymLinks
20.
21. Order allow,deny
22.
23. Allow from all
24.
25. </Directory>
26.
27.</IfModule>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/akensun/archive/2010/03/19/5394860.aspx
更多推荐
所有评论(0)