PHPFastCGI - PHPRC 的工作原理

PHPFastCGI - PHPRC 的工作原理

我的 Apache 配置出现了一个奇怪的情况。我决定使用 FastCGI 和多个版本的 PHP。以下是我的配置文件。

如果我检查,phpinfo();我可以看到它在域上localhostphp.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

相关内容