找回密码
 注册

FcgidInitialEnv PHPRC指定不同的php.ini文件

php 发表于 2019/4/19 17:13 | 显示全部楼层 |阅读模式
Apache httpd 不将 PHP 作为 mod_php 加载,Apache http server 通过 mod_fcgid 将 PHP 作为 FastCgi 程序运行,可以实现多个版本的 PHP 同时运行,甚至还可以为一个网站的不同目录运行多个版本的PHP.
  1. FcgidWrapper "path/to/bin/php/7.3/php-cgi.exe" .php
  2. FcgidInitialEnv PHPRC "path/to/php/7.3/"
复制代码
FcgidWrapper 指令的第一个参数用来指定 php-cgi.exe 的路径和参数,其中的参数可以省略。如果 FcgidWrapper 指定的 php-cgi.exe 路径或者运行 php-cgi.exe 的命令行参数包含空格,必须将对应的值放在引号里面,引号可以嵌套。由于反斜杠在apache配置文件、shell等多种环境中都是转义符,要想将\作为字符传递,需要多次转义,当指定的值是路径时,这所以使用/代表路径中的\,也是因为\是转义符,如果转义不当,会导致配置的值为预期的结果不一样。
  1. FcgidWrapper '"C:/Program Files/wuxiancheng.cn/php/7.3/php-cgi.exe" -d disable_function="chgrp,chown,exec,shell_exec,system"' .php
复制代码
  1. FcgidWrapper '"C:/Program Files/wuxiancheng.cn/php/7.3/php-cgi.exe" -d open_basedir="\'C:/Program Files/wuxiancheng.cn/server/www/\'"' .php
  2. FcgidWrapper "'C:/Program Files/wuxiancheng.cn/php/7.3/php-cgi.exe' -d open_basedir=\\\\"'C:/Program Files/wuxiancheng.cn/server/www/'\\\\"" .php
复制代码
FcgidInitialEnv PHPRC 用来指定运行 PHP 时的 php.ini 配置文件所在的文件夹路径,以及其他需要传递组 php-cgi.exe 的环境变量。

使用 FcgidWrapper 指令为每个 VirtualHost 配置不同的 FAST CGI 程序, 即 php-cgi.exe ,即可实现一个 apache httpd 服务器同时运行多个版本的 PHP. 还可以使用 FcgidInitialEnv PHPRC 设置不同的 php.ini 配置文件.

想要为不同的虚拟主机配置不同的 php.ini 配置文件,除了 FcgidInitialEnv PHPRC 指定 php.ini 所在目录以外,还可以通过为 php-cgi.exe 添加 -c 命令行参数实现,-c 后面的参数值可以是 php.ini 的路径,也可以是 php.ini 所在文件夹的路径,建议使用绝对路径避免出现找不到文件的情况。php 配置文件的文件名可以不是 php.ini,可以是任意文件名,比如 php.conf.
  1. FcgidWrapper '"C:/Program Files/wuxiancheng.cn/php/7.3/php-cgi.exe" -c "C:/Program Files/wuxiancheng.cn/php/7.3/php.ini" -d display_errors=On' .php
复制代码
php.exe 和 php-cgi.exe 命令行参数 -d 用来配置 PHP 的配置参数,此处配置的值会替换掉 php.ini 配置文件中相同参数的值。
php-cgi.exe 的其他命令行参数,可以在命令行窗口中运行 php-cgi.exe -help 查看。

手机版|轻松E站

轻松E站

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