Apache支持多版本PHP配置的实现

Nokia 发表于 2016/6/29 18:12 | 显示全部楼层 |阅读模式
在同一个Apache服务器中同时支持多种版本的PHP,一个Apache运行两个版本的PHP或者更多版本PHP软件,可以通过Apache的fast cgi来实现。
PHP版本众多,虽然PHP7已经问世,然而国内的大环境下,很多代码还停留在PHP 5.2,PHP 5.3, PHP 5.4,PHP 5.5以后就不断地增加了很多实用功能,到了PHP 7甚至还支持了 <=> 操作符,同时又舍弃了MySQL扩展,mysql_*()系列函数无法使用,想要服务器同时兼容各种版本的程序代码就显得尤其费劲。
Apache PHP多版本的实现,可以简单归纳为以下几步。
  • 将Apache和PHP的结合从传统的模块方式改为fast cgi方式。
  • 为不同的网站配置不同的PHP版本
Apache同时支持多个PHP版本的具体实现

  • 在Apache官方下载mod_fcgid
  • 在Apache配置文件中增加以下条目
    参数为数字的条目可以自行调整参数值
    1. LoadModule fcgid_module modules/mod_fcgid.so
    复制代码
    1. AddHandler fcgid-script .php
    2. Options +ExecCGI
    3. FcgidInitialEnv PHP_FCGI_MAX_REQUESTS        1001
    4. FcgidMaxRequestsPerProcess                                1000
    5. FcgidIOTimeout                                                        300
    6. FcgidIdleTimeout                                                300
    7. FcgidMaxRequestLen                                                1073741824
    复制代码

  • 在Apache中配置虚拟主机,为每个虚拟主机指定不同版本的PHP
    其中FcgidWrapper后面的参数根据实际情况修改为php-cgi.exe的真实路径
    注意php-cgi.exe路径不能包含空格或者英文字符以外的字符。
    1. ServerName 127.0.0.1

    2. Listen 80

    3. <VirtualHost *>
    4.         ServerAlias aliwords.com www.aliwords.com
    5.         FcgidWrapper "${SROOT}Bin/PHP/7.0.8/php-cgi.exe"
    6.         #其他配置内容省略
    7. </VirtualHost>

    8. <VirtualHost *>
    9.         ServerAlias wuxiancheng.cn www.wuxiancheng.cn
    10.         FcgidWrapper "${SROOT}Bin/PHP/5.6.23/php-cgi.exe"
    11.         #其他配置内容省略
    12. </VirtualHost>
    复制代码

以上代码仅供参考,应当根据实际情况调整。

httpd Apache配置多版本PHP以后,访问不同的网站,就会自动调用不同版本的PHP.

手机版|轻松E站

E-mail: OHCC@163.COM

快速回复 返回顶部 返回列表