当前位置: 代码迷 >> Web前端 >> linux上apache+php(fastcgi)web服务器的搭建
  详细解决方案

linux上apache+php(fastcgi)web服务器的搭建

热度:932   发布时间:2012-10-29 10:03:53.0
linux下apache+php(fastcgi)web服务器的搭建

本文的编译配置仅限于实现 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)

?

?

?

view plain copy to clipboard print ?
  1. <IfModule?fastcgi_module>??
  2. ??
  3. ????ScriptAlias?/fcgi-bin/?"/usr/local/apache2/fcgi-bin/" ??
  4. ?
  5. ????#?开启10个php进程 ??
  6. ??
  7. ????FastCgiServer?/usr/local/apache2/fcgi-bin/php-cgi?-processes?10??
  8. ??
  9. ????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>??
?

  相关解决方案