2016-01-19 3 views
0

пытался выяснить это в течение нескольких часов ...Cron Job - Magento - Reindexall не работает

Я получил установку хрон, и он работает, когда это предположит.

36 22 * * * php -f /home/user/public_html/shop/shell/indexer.php --reindexall 

Выходы

Error in argument 3, char 2: no argument for option - 
Usage: php [-q] [-h] [-s] [-v] [-i] [-f <file>] 
     php <file> [args...] 
    -a    Run interactively 
    -b <address:port>|<port> Bind Path for external FASTCGI Server mode 
    -C    Do not chdir to the script's directory 
    -c <path>|<file> Look for php.ini file in this directory 
    -n    No php.ini file will be used 
    -d foo[=bar]  Define INI entry foo with value 'bar' 
    -e    Generate extended information for debugger/profiler 
    -f <file>  Parse <file>. Implies `-q' 
    -h    This help 
    -i    PHP information 
    -l    Syntax check only (lint) 
    -m    Show compiled in modules 
    -q    Quiet-mode. Suppress HTTP Header output. 
    -s    Display colour syntax highlighted source. 
    -v    Version number 
    -w    Display source with stripped comments and whitespace. 
    -z <file>  Load Zend extension <file>. 
    -T <count>  Measure execution time of script repeated <count> times. 

Если я удалить -

36 22 * * * php -f /home/user/public_html/shop/shell/indexer.php reindexall 

выводит

Usage: php -f indexer.php -- [options] 

    --status <indexer>   Show Indexer(s) Status 
    --mode <indexer>    Show Indexer(s) Index Mode 
    --mode-realtime <indexer>  Set index mode type "Update on Save" 
    --mode-manual <indexer>  Set index mode type "Manual Update" 
    --reindex <indexer>   Reindex Data 
    info       Show allowed indexers 
    reindexall     Reindex Data by all indexers 
    help       This help 

    <indexer>  Comma separated indexer codes or value "all" for all indexers 

Если я запускаю эту же команду в SSH это работает прекрасно. .. есть идеи?

ответ

0

Вы должны добавить аргументы команды за --:

36 22 * * * php -f /home/user/public_html/shop/shell/indexer.php -- --reindexall 

в странице руководства для php предлагает:

php [options] [ -f ] file [[--] args...] 

В противном случае php пытается разобрать эти аргументы как свои собственные и не удается.

+0

Да. Первая ошибка показывает, что PHP недовольны аргументами. Вторая ошибка от индексатора и показывает, что параметры должны следовать за «-». Это два минуса и пробел. – marklark

+1

так это работает для вас или нет? Если нет, то каков фактический вопрос? – Jakuje

+0

Я пробовал несколько вариантов. Он просто не примет аргументы до и после по какой-то причине ... – JCastell

0

Лучшее решение, которое я мог понять, был ...

Создать PHP-файл, который заставляет модель Magento заново индекс это сам

// 
// Initiate Magento MAGE 
// 

$mage_php_url = "app/Mage.php"; 
// Include Magento's Mage.php file. 
require_once($mage_php_url); 

/* @var $indexCollection Mage_Index_Model_Resource_Process_Collection */ 
$indexCollection = Mage::getModel('index/process')->getCollection(); 
foreach ($indexCollection as $index) { 
    /* @var $index Mage_Index_Model_Process */ 
    $index->reindexAll(); 
} 

echo "<h1>Re-Index Completed.</h1>"; 

После установки хрон работу, чтобы запустить этот простой PHP файл ,

Смежные вопросы