PHP FastCGI – PHPRC如何工作

在我的Apacheconfiguration中,我有一个奇怪的情况。 我决定使用FastCGI和多个版本的PHP。 以下是我的configuration文件。

如果我检查phpinfo(); 我可以看到,在域localhost它是加载php.ini文件夹php56 。 还行吧。 我不明白,为什么在域localhost7它是加载php.ini文件夹php71 。 我不会为PHP7改变PHPRC ,但它正在加载不同的configuration文件。 这是如何工作,或为什么它是从不同的文件夹中加载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> 

虚拟主机configuration文件:

 <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> 

我很惭愧 :(

请检查你的path两次(或更多次),问题总是在那里。 如果你检查它,我有path到php-cgi.exe C:\web\...但是对于PHPRC它是C:\www\... 这只是原因。

正确的php.ini被加载,因为它是默认的行为。 这里是地方的顺序,PHP正在寻找php.ini文件: http : //php.net/manual/en/configuration.file.php