2012-09-26 63 views
1

掛我創建了一個產品導入腳本的Magento大約一年前,它已經從那時起成功運行,下載包含產品目錄幾個XML文件,庫存數量和停產產品列表中的PHP腳本,以及與每個產品相關的圖像文件。請幫助調試,並沒有錯誤

本週突然腳本不再運行至完成。它看起來只是突然結束,但沒有顯示錯誤信息在屏幕上或包含腳本的目錄中的服務器的error.log文件中。

我已經在了我的腳本的頭部下面,所以我應該會看到錯誤,如果他們是實際發生的:

error_reporting(E_ERROR | E_WARNING | E_PARSE); 
ini_set('display_errors', 'On'); 

我唯一見過的,可能是相關的,但我沒有說服力,因爲當我從瀏覽器運行腳本時根本沒有看到它 - 只有腳本從crontab運行(php .../public_html/import/ss365products.php>/dev/null 2> & 1),在error.log文件如下:

[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 

我不是真的當然,爲什麼我會得到那個Mage.php沒有去的地方!

所以......我真的不知道在哪裏,現在找調試此問題。任何意見大獲好評!

+0

夫婦的問題,我有嗎? - 你使用緩存系統嗎? - 你多久會得到這個錯誤? – xyz

+0

Magento v1.5.1。 緩存是通過APC的方式。 每次運行cron作業時都會發生錯誤,但從運行瀏覽器的腳本時不會發生錯誤... – gpcola

+0

您能否粘貼代碼? – xyz

回答

1

對於cron的,只是充分的文件夾路徑Mage.php和你的腳本將運行得很好。在apache上運行時,/app與webroot文件夾相關,但是作爲cron運行時,它將嘗試查找與文件系統相關的文件夾。

+0

包含Mage.php(tempproducts.php)的文件本身包含在我的productimport腳本(ss365products.php)中,使用以下代碼: require_once($ _ SERVER ['DOCUMENT_ROOT']。「/ app/Mage.php」); – gpcola

+0

請注意,這個WAS一直工作到最近;) – gpcola

+1

從命令行運行cron時,PHP腳本中沒有'DOCUMENT_ROOT',沒有網絡服務器渲染你的網頁..(除非你正在使用lynx或其他東西運行腳本,我認爲這不太可能) – raidenace

0
[26-Sep-2012 12:00:01] PHP Warning: require_once(/app/Mage.php) 

這看起來不像是相對路徑。也許它在根目錄下尋找Mage.php?

試試這個: require_once 「/full/path/to/app/Mage.php」

+0

包括Mage.php(tempproducts.php)該文件本身使用以下納入我的腳本productimport(ss365products.php): require_once;($ _ SERVER [ 'DOCUMENT_ROOT'] 「/應用/ Mage.php」)。 – gpcola

+0

請注意,此WAS一直運行到最近;) – gpcola

0

使用require_once(__DIR__ . '/app/Mage.php');

+0

包含Mage.php(tempproducts.php)的文件本身包含在我的productimport腳本(ss365products.php)中,使用以下代碼: require_once($ _ SERVER ['DOCUMENT_ROOT' ]。「/應用/法師。); – gpcola

+0

請注意,這個WAS一直工作到最近;) – gpcola

0

在命令行中沒有$ _ SERVER [「DOCUMENT_ROOT」],所以它會在錯誤的道路搜索Mage.php。該腳本可能會由於某些php.ini設置而中止,這些設置可能不適用(即設置了時間限制)。

也許你應該訪問cron作業作爲使用網頁: - 你正在使用的版本的Magento:

wget http://yourdomain/cron.php