zoukankan      html  css  js  c++  java
  • apache中配置php支持模块模式、cgi模式和fastcgi模式的实验

    首先安装apache、mysql和php,依次顺序安装。

    1.apache、mysql的安装比较简单,略过

    2. php的安装,我安装的是php5.3.6内置了php-fpm,所以不需要再单独下补丁了。

    ./configure –prefix=/usr/local/php5 /
    --with-mysql=/usr/local/mysql /
    --enable-fpm
    --with-apxs2=/usr/local/apache/bin/apxs
     

    注意:

    --enable-fastcgi

    --enable-force-cgi-redirect

    这2个php新版本已经内置支持,所以如果加上这2个参数,make完毕会提示这2个参数找不到。所以不需要加这2个参数了。 

    --with-apxs2

    这个参数看到有的文章说需要fastcgi模式的话,就不能配置这个,其实也不完全是这样,这个参数的用途只不过是把php的解释模块编译成so文件添加到apache的modules中,并且自动添加到conf文件。如果我们不想用模块模式的话,在httpd.conf中把:

    LoadModule php5_module modules/libphp5.so

    这行注释掉就可以了。

    3.mod_fastcgi的安装

    #wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz

    # tar -zxvf mod_fastcgi-2.4.6.tar.gz

    # cd mod_fastcgi-2.4.6

    # cp Makefile.AP2 Makefile

    # vim Makefile 将Makefile中的路径改成你的apache的安装路径

    # make install 安装成功

    安装成功后,会自动把mod_fastcgi.so复制到/usr/local/apache/modules目录  

    接下来是如何配置这4种模式:

    1.模块模式

    这种模式最简单,在http.conf中增加

    LoadModule php5_module modules/libphp5.so

    即可。然后在

    <IfModule mime_module>

    AddType application/x-httpd-php .php
    AddType applicaiton/x-httpd-php-source .phps

    2.CGI模式

    这种模式需要注释掉

    LoadModule php5_module modules/libphp5.so 这行。如果不注释这行会一直走到handler模式。也就是模块模式。

    然后在httpd.conf增加action:

    Action application/x-httpd-php /cgi-bin/php-cgi

    如果在/cgi-bin/目录找不到php-cgi.可自行从php的bin里面cp一个。

    然后重启apache,再打开测试页面发现Server API变成:CGI/FastCGI。说明成功切换为cgi模式。

    3.FastCgi模式,用apche内置进程管理器

    首先要添加fastcgi模块到httpd.conf配置文件:

    LoadModule fastcgi_module modules/mod_fastcgi.so

     这种模式注释不注释LoadModule php5_module modules/libphp5.so这行貌似没什么关系,只要配置了以下模块

    <IfModule fastcgi_module>
       FastCgiServer /usr/local/apache/cgi-bin/php-cgi -processes 20
       AddType application/x-httpd-php .php

       AddHandler php-fastcgi .php

       Action php-fastcgi /cgi-bin/php-cgi
    </IfModule>

    就会自动走到fastcgi模式。

    然后重启apache,这个时候用 ps aux|grep php就会发现有很多php-cgi进程在运行。说明配置生效

    4.FastCgi模式,用php-fpm进程管理器

    首先要添加fastcgi模块到httpd.conf配置文件:

    LoadModule fastcgi_module modules/mod_fastcgi.so

    接着修改配置文件成:

    <IfModule fastcgi_module>
       FastCgiExternalServer /usr/local/apache/cgi-bin/php-cgi -host 127.0.0.1:9000

       AddType application/x-httpd-php .php

       AddHandler php-fastcgi .php

       Action php-fastcgi /cgi-bin/php-cgi
    </IfModule>

    注意,127.0.0.1:9000是php-fpm的开启端口,所以我们还需要把php-fpm打开。

    我电脑的位置是.

    >>>/usr/local/php5/sbin/php-fpm

    打开后再ps aux|grep php

    会发现很多php-fpm的进程:

    root      7002  0.4  1.5  13060  1912 ?        Ss   15:20   0:00 php-fpm: master process (/usr/local/php5/etc/php-fpm.conf)
    nobody    7003  0.0  1.3  13052  1656 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7004  0.0  1.3  13052  1660 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7005  0.0  1.3  13052  1660 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7006  0.0  1.3  13052  1660 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7007  0.0  1.3  13052  1660 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7008  0.0  1.3  13052  1660 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7009  0.0  1.3  13052  1660 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7010  0.0  1.3  13052  1660 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7011  0.0  1.3  13052  1660 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7012  0.0  1.3  13052  1668 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7013  0.0  1.3  13052  1672 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7014  0.0  1.3  13052  1672 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7015  0.0  1.3  13052  1672 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7016  0.0  1.3  13052  1672 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7017  0.0  1.3  13052  1672 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7018  0.0  1.3  13052  1672 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7019  0.0  1.3  13052  1672 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7020  0.0  1.3  13052  1676 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7021  0.0  1.3  13052  1672 ?        S    15:20   0:00 php-fpm: pool www
    nobody    7022  0.0  1.3  13052  1676 ?        S    15:20   0:00 php-fpm: pool www

    再测试下访问没问题,大功搞成咯。

  • 相关阅读:
    专业实训项目需求分析
    2015年秋季个人阅读计划
    场景调研
    二维数组最大连通子数组
    单元测试
    《大道至简——软件工程实践者的思想》阅读笔记之三
    《大道至简——软件工程实践者的思想》阅读笔记之二
    人机交互-输入法使用评价
    第一阶段个人总结10
    第一阶段个人总结09
  • 原文地址:https://www.cnblogs.com/fangbo/p/2272400.html
Copyright © 2011-2022 走看看