У меня странная ситуация в моей конфигурации 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>
Мне так стыдно :(
Пожалуйста, проверьте свои пути дважды (или больше), проблема всегда есть. Если вы проверите, у меня был путь к php-cgi.exe C:\web\...
но для PHPRC это C:\www\...
. И это единственная причина.
И был загружен правильный php.ini, потому что это поведение по умолчанию. Вот порядок мест, где PHP ищет файл php.ini: http://php.net/manual/en/configuration.file.php