本文的编译配置仅限于实现 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 ? // 将配置文件拷贝到--with-config-file-path指定的路径
# 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)
?
?
?