• linux下php以fastcgi模式运行


    关于PHP以fastcgi方式运行的文章,网络上较多,也许由于转载的原因,有些地方不甚明了,笔者亲自测试,整理成文,供大家参考。

    1、linux系统
    [root@localhost /]# cat /etc/redhat-release 
    CentOS release 5.2 (Final)
    2、安装apache 
    下载并解压缩apache,本文演示用的版本是2.2.19
    [root@localhost]# wget http://labs.renren.com/apache-mirror//httpd/httpd-2.2.19.tar.gz
    [root@localhost]# tar xvzf httpd-2.2.19.tar.gz

    编译和安装apache,本文的目的只是演示php以fastcgi方式运行,为了方便,只选必须的参数编译
    [root@localhost]# cd httpd-2.2.19
    [root@localhost]#./configure --enable-so
    [root@localhost]#make
    [root@localhost]#make install

    3、安装mod_fcgid(注意是mod_fcgid,不是mod_fastcgi)
    下载并解压缩mod_fcgid,本文测试时用的版本是2.3.6
    [root@localhost]wget http://labs.renren.com/apache-mirror//httpd/mod_fcgid/mod_fcgid-2.3.6.tar.gz
    [root@localhost]tar xvzf mod_fcgid-2.3.6.tar.gz

    编译并安装mod_fcgid
    [root@localhost]cd mod_fcgid-2.3.6
    [root@localhost]APXS=/usr/local/apache2/bin/apxs ./configure.apxs
    [root@localhost]make
    [root@localhost]make install

    注释:网络上部分文档没有APXS=/usr/local/apache2/bin/apxs,详情参考mod_fcgid软件中的README-FCGID文档

    4、安装PHP
    下载并加压缩PHP,PHP版本是5.3.6
    [root@localhost]wget http://www.php.net/get/php-5.3.6.tar.bz2/from/cn.php.net/mirror
    [root@localhost]tar xvjf php-5.3.6.tar.bz2

    编译并安装PHP
    [root@localhost] cd php-5.3.6
    [root@localhost]./configure --prefix=/usr/local --with-configure-file-path=/etc
    [root@localhost]make
    [root@localhost]make install


    注释:要是有库文件报错,请安装相关库文件,笔者的系统上曾报libxml2的错,yum install libxml2-devel,解决问题。网络上很多文档,说要使用--enable-fastcgi这个参数,笔者在./configure --help中没有找到这个参数,倒是找到一个--disable-cgi的参数,因而决定不加--enable-fastcgi这个参数,此后证实这个参数可以不加。--with-apxs2这个参数一定不能加

    5.配置

    创建FastCGI脚本目录
    [root@localhost]# mkdir /usr/local/apache2/fcgi-bin
    [root@localhost]# ln -s /usr/local/php/bin/php-cgi /usr/local/apache2/fcgi-bin/php-cgi

    编辑apache配置文件
    [root@localhost]# vi /usr/local/apache/conf/httpd.conf
    加入以下内容
    ScriptAlias /fcgi-bin/ "/usr/local/php5/bin/"
    AddHandler php-fastcgi .php
    Action php-fastcgi /fcgi-bin/php-cgi
    AddType application/x-httpd-php .php
    <IfModule mod_fcgid.c>
        IdleTimeout 300
        ProcessLifeTime 1800
        MaxProcessCount 100
        DefaultMinClassProcessCount 3
        DefaultMaxClassProcessCount 8
        IPCConnectTimeout 15
        IPCCommTimeout 300
        MaxRequestsPerProcess 100
    </IfModule>
    <Directory /usr/local/apache2/fcgi-bin>   
          AllowOverride None
          Options FollowSymLinks +ExecCGI
          Order allow,deny
          Allow from all
    </Directory>
    修改
    <Directory "/usr/local/apache2/htdocs">
        Options Indexes FollowSymLinks +ExecCGI
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

    注释:笔者测试的test.php文件放在htdocs目录下面,因此htdocs目录的权限需要ExecCGI,若目录不同,请赋予目录ExecCGI的权限。另LoadModule fcgid_module modules/mod_fcgid.so 这个再装mod_fcgid的时候,自动添加了。

    6、验证
    编辑测试页面
    [root@localhost]# vi /usr/local/apache2/htdocs/test.php
    <?php
    echo phpinfo();
    ?>
    在浏览器栏目输入http://x.x.x.x/test.php


  • 相关阅读:
    nginx下配置WebSocket连接错误Error:Unexpected response code 404
    qqzone/tx云登录所用g_tk/x-csrfcode获取
    自动化工具Ansible的使用操作
    Docker可视化图形工具Portainer
    centos下.Netcore的docker容器部署出现“The type initializer for 'Gdip' threw an exception.”
    苹果开发者公司账号申请全流程以及出现的问题(2021更新)
    Certbot配置Let's Encrypt的https_ssl证书以及过程中出现的问题(2021更新)
    开源的一小步----开源类库传至Maven中央仓库
    使用微软的Office Online实现Office,word文档的在线浏览,编辑 ,以及不能正常查看文档问题
    Linux安装Mysql5.6
  • 原文地址:https://www.cnblogs.com/moqiang02/p/4061345.html
Copyright © 2020-2023  润新知