【问题标题】:What can change the include_path between php.ini and a PHP file什么可以改变 php.ini 和 PHP 文件之间的 include_path
【发布时间】:2009-07-20 22:57:09
【问题描述】:

我在未设置的系统上继承了一些代码,但在跟踪设置 PHP 包含路径的位置时遇到了问题。

我有一个包含以下 include_path 的 php.ini 文件

 include_path = ".:/usr/local/lib/php"

我在 webroot 中有一个名为 test.php 的 PHP 文件,其中包含以下 phpinfo 调用

 <?php
      phpinfo();

当我查看 phpinfo 调用时,include_path 的本地值被覆盖

                 Local Value                                        Master Value
 include_path    .;C:\Program Files\Apache Software Foundation\     .:/usr/local/lib/php
                 Apache2.2\pdc_forecasting\classes               

此外,php.ini 文件表明没有额外的 .ini 文件正在加载

Configuration File (php.ini) Path           /usr/local/lib
Loaded Configuration File                   /usr/local/lib/php.ini
Scan this dir for additional .ini files     (none)
additional .ini files parsed                (none)

所以,我的问题是,标准 PHP 系统(包括一些 PEAR 库)中还有什么可以覆盖 php.ini 和正在解释/执行的实际 php 代码之间的 include_path。

【问题讨论】:

    标签: apache include php


    【解决方案1】:

    PHP 方式之外

    ini_set( 'include_path', 'new/path' );
    // or
    set_include_path( 'new/path' );
    

    可以通过auto_prepend_file 将其加载到 PHP 文件中,.htaccess 文件也可以做到这一点

    phpvalue include_path new/path
    

    【讨论】:

    • 抱怨抱怨.htaccess。我梳理了 http.conf 寻找覆盖并忘记了 .htaccess。
    【解决方案2】:

    你得到奇怪的结果有几个原因。

    • include_path 在您的 php 代码中的某处被覆盖。检查您的代码是否包含set_include_path() 调用。使用此功能,您可以自定义包含路径。如果您想保留当前路径,只需连接字符串. PATH_SEPARATOR . get_include_path()
    • .htaccess 文件中覆盖了include_path。检查是否有任何 php_valuephp_flag 指令添加了狡猾的路径
    • php 解释器中的非标准配置文件。尽管有可能,但您的 php 进程已通过自定义 php.ini 文件启动,这是非常不可能的。检查您的 Web 服务器设置和/或 php 分发,以查看 php.ini 的预期位置。也许你看错了。

    【讨论】:

    • +1:即使你基本上是在重复已经说过的一切。
    【解决方案3】:

    .htaccess 文件或 Apache 的配置 (httpd.conf) 也可能负责。

    检查是否有类似以下内容:

    php_value include_path something
    

    在此处了解有关该行为的更多信息:

    PHP: How to change configuration settings


    另一种选择是在某处使用ini_set()set_include_path(),但考虑到您的test.php 仅包含phpinfo()(并假设直接调用test.php),我怀疑这是您的问题.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 2012-06-16
      • 2014-10-12
      • 2018-11-14
      • 2013-02-10
      • 2013-02-21
      • 2019-03-21
      相关资源
      最近更新 更多