请帮助调试挂起且没有错误的PHP脚本

请帮助调试挂起且没有错误的PHP脚本,php,magento,Php,Magento,大约一年前,我为Magento创建了一个产品导入脚本,从那以后它一直在成功运行,下载了几个XML文件,其中包含产品目录、库存数量和停产产品列表,以及与每个产品关联的图像文件 本周,剧本突然不再完整。它似乎只是突然结束,但在屏幕上或包含脚本的目录中的服务器的error.log文件上都没有显示错误消息 我的脚本开头有以下内容,因此如果它们确实发生,我应该看到错误: error_reporting(E_ERROR | E_WARNING | E_PARSE); ini_set('display_err

大约一年前,我为Magento创建了一个产品导入脚本,从那以后它一直在成功运行,下载了几个XML文件,其中包含产品目录、库存数量和停产产品列表,以及与每个产品关联的图像文件

本周,剧本突然不再完整。它似乎只是突然结束,但在屏幕上或包含脚本的目录中的服务器的error.log文件上都没有显示错误消息

我的脚本开头有以下内容,因此如果它们确实发生,我应该看到错误:

error_reporting(E_ERROR | E_WARNING | E_PARSE);
ini_set('display_errors', 'On');
我所看到的唯一一件事可能与此相关,但我并不确信,因为当我从浏览器运行脚本时,我根本看不到它-只有在从crontab(php…/public\u html/import/ss365products.php>/dev/null 2>&1)运行脚本时,才会发生错误。日志文件中的以下内容:

[26-Sep-2012 12:00:01] PHP Warning:  require_once(/app/Mage.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in .../public_html/import/TempProducts.php on line 5
[26-Sep-2012 12:00:01]PHP警告:require_once(/app/Mage.PHP)[]:无法打开流:第5行的…/public_html/import/TempProducts.PHP中没有此类文件或目录
我真的不知道为什么我会得到,因为Mage.php还没有去任何地方

所以。。。我真的不确定现在去哪里调试这个问题。非常感谢您的任何建议

[26-Sep-2012 12:00:01] PHP Warning:  require_once(/app/Mage.php)
这看起来不像是一条相对路径。也许它正在根目录中查找Mage.php

试试这个: 需要_once“/full/path/to/app/Mage.php”

这看起来不像是一条相对路径。也许它正在根目录中查找Mage.php

试试这个:
require_once“/full/path/to/app/Mage.php”

使用
require_once(uu DIR_u.'/app/Mage.php')

使用
require_一次(uu DIR_u.'/app/Mage.php')

对于cron,只需为Mage.php提供完整的文件夹路径,脚本就会正常运行。在apache上运行时,
/app
是相对于webroot文件夹的,但在作为cron运行时,它会尝试查找相对于文件系统的文件夹。

对于cron,只需将完整文件夹路径指定给Mage.php,脚本就会正常运行。在apache上运行时,
/app
是相对于webroot文件夹的,但在作为cron运行时,它将尝试查找相对于文件系统的文件夹。

在命令行中没有$\u服务器['DOCUMENT\u ROOT',],因此它将在错误路径中搜索Mage.php。由于可能未应用某些php.ini设置(即设置了时间限制),脚本可能会中止

也许您应该使用以下方式访问cron作业作为网页:


wgethttp://yourdomain/cron.php

在命令行中没有$\u服务器['DOCUMENT\u ROOT',因此它将在错误路径中搜索Mage.php。由于可能未应用某些php.ini设置(即设置了时间限制),脚本可能会中止

也许您应该使用以下方式访问cron作业作为网页:



wgethttp://yourdomain/cron.php

我有几个问题:-您使用的是哪个Magento版本?-您使用缓存系统吗?-您多长时间出现一次此错误?Magento v1.5.1。缓存是通过APC实现的。每次运行cron作业时都会发生错误,但在从浏览器运行脚本时不会发生错误…我有几个问题:-您使用的是哪个Magento版本?-您使用缓存系统吗?-您多长时间出现一次此错误?Magento v1.5.1。缓存是通过APC实现的。每次运行cron作业时都会发生错误,但在我从浏览器运行脚本时不会发生错误…包含Mage.php(tempproducts.php)的文件本身包含在我的productimport脚本(ss365products.php)中,使用以下命令:require_once($_SERVER['DOCUMENT_ROOT']。“/app/Mage.php”);包含Mage.php(tempproducts.php)的文件本身包含在我的productimport脚本(ss365products.php)中,使用以下命令:require_once($_SERVER['DOCUMENT_ROOT'].“/app/Mage.php”);包含Mage.php(tempproducts.php)的文件本身包含在我的productimport脚本(ss365products.php)中,使用以下命令:require_once($_SERVER['DOCUMENT_ROOT'].“/app/Mage.php”);从命令行以cron运行时,PHP脚本中没有
DOCUMENT\u ROOT
,因为没有呈现页面的web服务器。。(除非你使用lynx或其他什么东西运行脚本,我认为这不太可能)好吧-我没有意识到这一点!我现在已经硬编码了根文件夹,以代替相关文件中的任何动态文档根。非常感谢。当脚本通过crontab运行时,这应该可以纠正我在error.log文件中看到的一条错误消息,但它仍然无法修复脚本在浏览器中运行时中途中止的事实。我还意识到为什么cron作业直到最近才显示出这个错误——有人建议我使用命令行PHP来运行脚本,而不是,我认为它是cURL?此时error.log条目就会启动。我猜另一个问题的原因可能是某个XML文件的格式更改或内存分配问题或类似问题……好的,所以当您作为cron运行时,还请记住,您不会将错误写入错误日志,因为错误日志属于apache,只有在通过浏览器运行时才能看到它(或使用curl或lynx之类的变体)。您可以使用重定向命令将所有错误或标准输出写入文本文件,并检查发生的情况。包含Mage.php(tempproducts.php)的文件本身包含在我的productimport脚本(ss365products.php)中,使用以下命令:require_once($)\u SERVER['DOCUMENT_ROOT'].“/app/Mage.php”);当从命令行作为cron运行时,php脚本中没有
DOCUMENT_ROOT
,因为没有web服务器呈现您的页面…(除非您使用lynx或其他东西运行脚本,我认为这与