我的 Apache 配置出现了一个奇怪的情况。我决定使用 FastCGI 和多个版本的 PHP。以下是我的配置文件。
如果我检查,phpinfo();
我可以看到它在域上localhost
是php.ini
从文件夹加载的php56
。这是正常的。我不明白的是,为什么localhost7
它在域上是php.ini
从文件夹加载的php71
。我没有PHPRC
为 PHP7 更改某个地方,但它正在加载不同的配置文件。这是如何工作的,或者为什么它从不同的文件夹加载 php.ini?
如果我将 PHPRC 更改为完全不同的文件夹,它也会起作用。这个常量没有使用,还是因为我在 Windows 上(不同的行为)?
<IfModule fcgid_module>
FcgidInitialEnv PATH "C:/www/xampp/php5.6;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
FcgidInitialEnv SystemRoot "C:/Windows"
FcgidInitialEnv SystemDrive "C:"
FcgidInitialEnv TEMP "C:/www/xampp/tmp"
FcgidInitialEnv TMP "C:/www/xampp/tmp"
FcgidInitialEnv windir "C:/WINDOWS"
FcgidIOTimeout 64
FcgidConnectTimeout 16
FcgidMaxRequestsPerProcess 1000
FcgidMaxProcesses 3
FcgidMaxRequestLen 8131072
# Location php.ini:
FcgidInitialEnv PHPRC "C:/www/xampp/php5.6/"
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
<Files ~ "\.php$">
Options Indexes FollowSymLinks ExecCGI
AddHandler fcgid-script .php
FcgidWrapper "C:/web/xampp/php5.6/php-cgi.exe" .php
</Files>
</IfModule>
虚拟主机配置文件:
<VirtualHost *:80>
DocumentRoot "C:/web/xampp/htdocs/"
ServerName localhost7
<Directory "C:/web/xampp/htdocs/">
<Files ~ "\.php$">
Options +ExecCGI
FcgidWrapper "c:/web/xampp/php7.1/php-cgi.exe" .php
</Files>
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/web/xampp/htdocs/"
ServerName localhost
<Directory "C:/web/xampp/htdocs/">
<Files ~ "\.php$">
Options +ExecCGI
FcgidWrapper "c:/web/xampp/php5.6/php-cgi.exe" .php
</Files>
</Directory>
</VirtualHost>
答案1
我很惭愧 :(
请检查您的路径两次(或更多次),问题始终存在。如果您检查它,我有 php-cgi.exe 的路径,C:\web\...
但 PHPRC 的路径是C:\www\...
。这只是原因。
并且已加载正确的 php.ini,因为这是默认行为。以下是 PHP 搜索 php.ini 文件的位置顺序:http://php.net/manual/en/configuration.file.php