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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值