PHP版本5.5没有';无法识别php.ini文件中设置的自定义include_路径。较低的PHP版本没有

PHP版本5.5没有';无法识别php.ini文件中设置的自定义include_路径。较低的PHP版本没有,php,include-path,Php,Include Path,我的网站目前运行在ApacheLinux服务器上的PHP5.2上(根据我的托管提供商信息)。我想升级到至少PHP5.5,因为有一个功能,我需要从该版本和更高版本可用。我也愿意使用更高版本,如7,但5.2以上的每个版本都会带来以下问题: 在PHP5.2中运行时,我成功地在PHP.ini中的默认路径之外添加了一个自定义include_路径 php.ini: [PHP] include_path = ".:/usr/local/lib/php:/custom/include/path" registe

我的网站目前运行在ApacheLinux服务器上的PHP5.2上(根据我的托管提供商信息)。我想升级到至少PHP5.5,因为有一个功能,我需要从该版本和更高版本可用。我也愿意使用更高版本,如7,但5.2以上的每个版本都会带来以下问题:

在PHP5.2中运行时,我成功地在PHP.ini中的默认路径之外添加了一个自定义include_路径

php.ini:

[PHP]
include_path = ".:/usr/local/lib/php:/custom/include/path"
register_globals = Off
在上面的php.ini代码中,已经设置的默认路径是

/usr/local/lib/php
我加的是

/custom/include/path
(我通过更改路径和文件名删除了个人信息)

我应该提到,附加的include_路径不在同一文件夹结构中。事实上,它位于不同的领域。仍然是同一个服务器,但是不同的域,因此对于附加路径,我必须通过我的提供者/用户/的根路径。。。路径

(这些域共享相同的网站内容,只是使用不同的语言。这就是为什么我希望两者都能够访问和处理公共的主include_路径,因为它们使用相同的脚本)

在我的网站中,我通常包括如下所示的php文件:

website.php:

<?php
require_once 'external_script_file.php';
?>
(我通过更改路径和文件名删除了个人信息)

正如您在错误消息中看到的,他似乎只能看到默认的include路径,而不能看到添加的自定义路径

在更高的php版本中操作时,是否必须对php.ini设置文件进行不同的管理?或者还有什么问题

非常感谢!

您可以尝试在代码中使用set_include_path()函数

set_include_path('/usr/lib/pear');
或ini_集()


您没有提到任何关于您试图在其上运行PHP的系统的信息(例如,什么操作系统、web服务器等),因此这是一个不确定的消息。如果安装了多个PHP版本,则每个版本都可能有自己的PHP.ini文件

在您试图加载的页面上,粘贴
phpinfo();死亡位于文件顶部。在PHP5.2中运行该站点,查看“加载的配置文件”值是什么。然后,切换到新的PHP版本,刷新页面,检查“加载的配置文件”值是否相同。

只是一个意外

要么是我使用的php.ini生成器,要么只是我来回复制,在php.ini文件的开头,即标题[php]之前创建了一个空格。显然,高于5.2的PHP版本无法处理这个问题


因此,请确保不要在php.ini文件中创建任何不必要的空格,尤其是在php.ini文件的开头。

谢谢。我试过了,但对我不起作用。可能在一般情况下有效,但在我的情况下不行,因为我必须访问不同域的include_路径(但仍在同一台服务器上)。我在你的帖子后面添加了这个信息。thxI添加了服务器信息。说得好。phpinfo带来了一些有趣的信息。对于两个PHP版本,它都加载我设置的相同的自定义PHP.ini文件。(只要我重命名或删除php.ini文件,“加载的配置文件”就会更改为服务器的默认路径)。因此,至少看起来ini文件已被识别。但有趣的是,当我向下滚动phpinfo页面时,还有“include_path”值。在5.2中有我的自定义设置路径,但在5.5中没有。因此,在5.5中,它仍然选择php.ini文件,但不选择其中的include_path值。
set_include_path('/usr/lib/pear');
ini_set('include_path', '/usr/lib/pear');