Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在可读文件php wordpress站点上,require_一旦失败_Php_Wordpress_Require Once - Fatal编程技术网

在可读文件php wordpress站点上,require_一旦失败

在可读文件php wordpress站点上,require_一旦失败,php,wordpress,require-once,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 unreada

我有一个非常简单的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-easy(或者甚至没有Django!!)的工具。

PHP在PHP.ini中有各种各样的日志设置。您还可以在运行时设置它们。它可能会记录到某个文件中,而不是显示错误。考虑尝试:


调试应用程序。使用完后,不要让它一直打开。

您应该在工作站上本地开发和调试代码,而不是在共享托管服务器上。在本地工作站上,您可以访问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));

什么都不做,不幸的是,我在这台机器上没有访问php.ini(共享主机)的权限。您可以在php.ini中设置的大部分内容也可以使用.htaccess中的php_标志进行设置。根据您的web主机,他们可能也有一些访问php错误日志的方法。。。php“
存在,然后您试图包括
$\u服务器['DOCUMENT\u ROOT']”。。。media.php'
。在检查这些文件之前,请考虑将要查找的文件存储为变量,以确保文件没有错误。我已经编辑成一个变量,正如您所说的,并且仍然有相同的结果。搞砸了。htaccess只是为了得到一些调试信息,还是相当粗糙的!?!我将对此进行检查以进行错误检查。谢谢你的意见。我会这么做,只是为了一个小脚本(如果可以的话,尽量远离php;-))对主要问题有什么想法吗?根据您所描述的,听起来您包含的任何文件都会抛出一个未捕获的异常,这会导致500个错误。我会逐行检查该文件,查找语法错误或可能导致致命错误的任何其他问题。它是标准Wordpress文件之一。当然这里面没有任何bug(或者我是天真的吗?),这并不一定意味着文件中有bug。该文件可能试图执行在您的环境中不起作用的操作。例如,它可能试图访问未正确配置的数据库。或者它可能正在试图写入一个它无权访问的目录。也许可以发布更多的代码,以便我们可以看到在包含文件之前和之后发生了什么。