require_once在可读文件php wordpress网站上失败

时间:2013-10-01 18:34:45

标签: php wordpress require-once

我有一个非常简单的PHP脚本,但需要一些wordpress包含。我已经使用了他们网站上的大部分代码但是每当我尝试调用脚本的require_once部分时它都会失败。这是相关的代码:

$fn = dirname(__FILE__) . '/wp-admin/includes/media.php';
if(!file_exists($fn))
{
    echo 'No File';
}
if(!is_readable($fn))
{
    echo 'File is unreadable';
}
require_once $fn;

足够多,取消注释require_once时我得到的唯一回显是文档的完整路径。该文件既存在又可读。但是,当我取消注释require_once代码时,它会返回500错误。

略有关联点。调试php的最简单方法是什么?我还没有找到任何VS简单的东西(或者甚至像Django一样容易调试!!)

2 个答案:

答案 0 :(得分:0)

PHP在php.ini中有各种设置,用于记录如何工作。您也可以在运行时设置它们。它可能是在某处记录到某个文件而不是显示错误。考虑尝试:

error_reporting(E_ALL)

调试您的应用程序。当你完成它时,不要把它打开。

答案 1 :(得分:0)

您应该在工作站本地开发和调试代码,而不是在共享托管服务器上。在本地工作站上,您可以访问php.ini,Apache错误日志和PHP错误日志。您还可以使用.htaccess文件设置项目特定的调试设置。例如,您可以为正在处理的每个不同项目配置单独的PHP错误日志文件。

正如@Steve Howard指出的那样,你可以在php.ini中修改很多设置,以获得更详细的错误报告。实际上,大多数LAMP包都安装了php.ini的开发副本,它基本上是php.ini文件的模板,该文件针对详细的错误报告进行了优化。您需要在本地环境中进行详细的错误报告以进行调试。在您的生产环境中,客户和潜在的黑客最终会看到比他们应有的更多信息,这不是您想要的东西!

如果您不知道如何在工作站上设置PHP,请查看XAMPP,MAMP,Macports等。有很多选项。您不需要超级技术就可以在计算机上设置堆栈。一旦在计算机上设置了良好的开发环境,就可以实现PHP错误日志和Apache日志。

我喜欢做的一件事是使用PHP error_log()函数。这允许您将自定义消息输出到PHP错误日志。例如,如果我正在调试代码并且我需要知道$ foo的值是什么,我可以这样做:

<?php
error_log("Foo is: " . print_r($foo, true));

这比使用var_dump()或echo将调试数据打印到屏幕要好得多,因为它不会中断程序的正常执行或其视图层的显示。