2014-07-19 73 views
1

我最近安裝了Magento社區版,除了一些設計工作和安裝一些擴展外,並沒有對它進行任何密集的工作。我今天看了一下error_log文件,它似乎是6GB,並且幾乎佔用了我的託管空間。我認爲這是不尋常的,因爲安裝的其餘部分小於2GB,所以我打開錯誤日誌文件(它的一部分,請注意,因爲它太大),並且出現:magento cron作業和error_log文件太大

[12- Mar-2014 20:31:33 UTC] PHP注意:未定義的索引:SCRIPT_NAME in /home/zongulsz/public_html/cron.php on line 39

[12-Mar-2014 20:31:33 UTC] PHP通知:未定義指數: SCRIPT_FILENAME在/home/zongulsz/public_html/cron.php第40行

[08-APR-2014 10時13分22秒美國/芝加哥] PHP的警告:PHP啓動: ù nable加載動態庫 '/opt/alt/php53/usr/lib64/php/modules/memcached.so' - libmemcached.so.11:無法打開共享對象文件:沒有這樣的文件或 目錄中的未知行0

它一次又一次的重複輸入。

這是cron作業命令我在的cPanel看到:

分鐘小時日月星期命令操作
13,29,31,49 * * * * PHP> /首頁/ zongulsz /的public_html /cron.php>的/ dev/null的

這是cron.php文件:

1 <?php 
2 /** 
3 * Magento 
4 * 
5 * NOTICE OF LICENSE 
6 * 
7 * This source file is subject to the Open Software License (OSL 3.0) 
8 * that is bundled with this package in the file LICENSE.txt. 
9 * It is also available through the world-wide-web at this URL: 
10 * http://opensource.org/licenses/osl-3.0.php 
11 * If you did not receive a copy of the license and are unable to 
12 * obtain it through the world-wide-web, please send an email 
13 * to [email protected] so we can send you a copy immediately. 
14 * 
15 * DISCLAIMER 
16 * 
17 * Do not edit or add to this file if you wish to upgrade Magento to newer 
18 * versions in the future. If you wish to customize Magento for your 
19 * needs please refer to http://www.magentocommerce.com for more information. 
20 * 
21 * @category Mage 
22 * @package Mage 
23 * @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com) 
24 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 
25 */ 
26 
27 // Change current directory to the directory of current script 
28 chdir(dirname(__FILE__)); 
29 
30 require 'app/Mage.php'; 
31 
32 if (!Mage::isInstalled()) { 
33  echo "Application is not installed yet, please complete install wizard first."; 
34  exit; 
35 } 
36 
37 // Only for urls 
38 // Don't remove this 
39 $_SERVER['SCRIPT_NAME'] = str_replace(basename(__FILE__), 'index.php', $_SERVER['SCRIPT_NAME']); 
40 $_SERVER['SCRIPT_FILENAME'] = str_replace(basename(__FILE__), 'index.php', $_SERVER['SCRIPT_FILENAME']); 
41 
42 Mage::app('admin')->setUseSessionInUrl(false); 
43 
44 umask(0); 
45 
46 $disabledFuncs = explode(',', ini_get('disable_functions')); 
47 $isShellDisabled = is_array($disabledFuncs) ? in_array('shell_exec', $disabledFuncs) : true; 
48 $isShellDisabled = (stripos(PHP_OS, 'win') === false) ? $isShellDisabled : true; 
49 
50 try { 
51  if (stripos(PHP_OS, 'win') === false) { 
52   $options = getopt('m::'); 
53   if (isset($options['m'])) { 
54    if ($options['m'] == 'always') { 
55     $cronMode = 'always'; 
56    } elseif ($options['m'] == 'default') { 
57     $cronMode = 'default'; 
58    } else { 
59     Mage::throwException('Unrecognized cron mode was defined'); 
60    } 
61   } else if (!$isShellDisabled) { 
62    $fileName = basename(__FILE__); 
63    $baseDir = dirname(__FILE__); 
64    shell_exec("/bin/sh $baseDir/cron.sh $fileName -mdefault 1 > /dev/null 2>&1 &"); 
65    shell_exec("/bin/sh $baseDir/cron.sh $fileName -malways 1 > /dev/null 2>&1 &"); 
66    exit; 
67   } 
68  } 
69 
70  Mage::getConfig()->init()->loadEventObservers('crontab'); 
71  Mage::app()->addEventArea('crontab'); 
72  if ($isShellDisabled) { 
73   Mage::dispatchEvent('always'); 
74   Mage::dispatchEvent('default'); 
75  } else { 
76   Mage::dispatchEvent($cronMode); 
77  } 
78 } catch (Exception $e) { 
79  Mage::printException($e); 
80  exit(1); 
81 } 
82 
+0

使用錯誤日誌向您的主機發送一張票。未設置$ _SERVER ['SCRIPT_NAME']和$ _SERVER ['SCRIPT_FILENAME']是他們的問題,因爲服務器上缺少memcached。要成功運行Magento,您通常需要一個足夠的託管服務提供商。 – bogatyrjov

+0

我的託管服務提供商似乎對此感到困惑,我不確定這是我負責的事情還是他們的系統因爲不允許Magento正常運行而發生故障。我會再次與他們取得聯繫。謝謝 – tiestobob

回答

0

嘗試把ini_set('display_errors',0);一nd error_reporting(0);cron.php文件的開頭。

+0

這會做什麼? – tiestobob

+0

這會關閉錯誤報告以殺死您收到的那些未定義的索引錯誤。這是由於在PHP中打開了未定義的變量以及E_NOTICE。或者,您可以添加'error_reporting(E_ALL&〜E_NOTICE);',除E_NOTICE之外的所有錯誤報告。 – seanbreeden

+0

謝謝肖恩。我只是擔心,如果關閉錯誤報告是正確的做法,而不是實際修復error_log正在報告的內容。你有什麼建議? – tiestobob

0

在服務器級別應該有一個應該設置爲禁止通知相關日誌的設置。

總之,你要麼在服務器級別,要麼通過一些PHP代碼。