【问题标题】:PHP require/require_once will not work, include willPHP require/require_once 将不起作用,include 将
【发布时间】:2015-10-31 01:53:11
【问题描述】:

我有一台暂存服务器停止运行 cron 作业。经过一番研究,结果证明 require_once 失败了。

我看过其他相关问题,这与绝对或相对路径无关。我可以创建一个新文件 test.php,尝试在与文件所有者相同的文件夹中要求它,但失败:

php -r 'include("test.php"); echo "hello\n"'

你好

php -r 'require("test.php"); echo "hello\n"'

PHP 致命错误...打开 'test.php' 失败...包含路径 .:/usr/share/pear:/usr/share/php'

出于绝望,我将 test.php 移至 /usr/share/pear/test.php,同样的错误。我也试过./test.php,__dir__."/test.php",同样的错误。

PHP 5.3.3,已过时,但可在其他 2 台服务器(开发和产品)上运行

只是坏了吗?

【问题讨论】:

  • 对于php -C 和php-cli,当前工作目录 是相关的,如果两个脚本都驻留在同一目录中,则不相关。 __DIR__ 常量需要大写,顺便说一句。
  • 那只是我懒惰。它会给出相同的错误(使用 DIR 时),但会打印出文件的完整绝对路径。
  • 你确定include 真的有效吗?如果在 include 中打开失败,它不会像 require 那样是致命错误,并且可能不会显示,具体取决于您的错误报告设置。
  • 好吧,随便。您的 PHP 解释器突然停止工作的可能性不大。几乎可以肯定这是某种形式的路径/权限事故。即使有大量附加信息(ls -l、dir struct.、distro、phpinfo,...),如果没有直接访问您的服务器,这也不太可能是可回答的。就让别人看吧。 (如果你真的想调试它,请使用 DBG 或strace 进行一些自省。)
  • 好电话。我将输出放入 test.php,但它没有显示出来,所以不,include 也不起作用。

标签: php


【解决方案1】:

感谢大家的帮助。我想发布解决方案。

有人更改了 php.ini 文件并设置了 open_basedir(我可能会添加到一个相当无用的目录),这实际上限制了该目录的 php 功能。不幸的是,这不会引发任何有用的错误。

再次感谢!

【讨论】:

    猜你喜欢
    • 2012-07-08
    • 2011-12-08
    • 2011-08-28
    • 1970-01-01
    • 2021-07-05
    • 2010-12-29
    • 2017-03-14
    • 2011-01-25
    相关资源
    最近更新 更多