Magento indexer přes SSH

Pokračující diskuze z Indexing hell:

Pokud máte přístup na server přes SSH pak lze celkem jednoduše přepočítávat jednotlivé indexy v příkazové řádce namísto přepočítávání přes admin rozhraní.

Obecný postup:

1 - Běžte do složky ‘shell’ v Magento instalaci:

cd shell

2 – Spuštění přepočítání všech reindexů provedete příkazem:

php -f indexer.php reindexall

Seznam všech dostupných voleb Magento indexeru dostanete příkazem:

php -f indexer.php help

Výhodné je pouště reindexy jeden po druhém. Všechny dostupné indexy zjistíte příkazem:

php -f indexer.php info

Magento má v základů následujících 8 indexů:

catalog_product_attribute     Product Attributes
catalog_product_price         Product Prices
catalog_url                   Catalog Url Rewrites
catalog_product_flat          Product Flat Data
catalog_category_flat         Category Flat Data
catalog_category_product      Category Products
catalogsearch_fulltext        Catalog Search Index
cataloginventory_stock        Stock status

Jednotlivé indexy přepočítate příkazy:

php indexer.php --reindex catalog_product_attribute
php indexer.php --reindex catalog_product_price
php indexer.php --reindex catalog_url
php indexer.php --reindex catalog_product_flat
php indexer.php --reindex catalog_category_flat
php indexer.php --reindex catalog_category_product
php indexer.php --reindex catalogsearch_fulltext
php indexer.php --reindex cataloginventory_stock
php indexer.php --reindex tag_summary

Enem se blbě zeptám: má nějakou výhodu poštět indexer z bashe oproti spouštění přes Admin GUI? PHP Timeout, nebo něco jiného? Díky!

Maximální doba čekání na PHP skript je stejný. Výhodou příkazového řádku - schopnost spustit indexování najednou nebo naplánovat aby se snížilo zatížení na serveru
cat /etc/crontab

SHELL=/bin/sh
PATH=/usr/local/bin:/usr/bin:/bin:/usr/games:/sbin:/usr/sbin
5 */12 * * * root /usr/bin/php -f /home/user/www/public_html/indexer.php --reindex catalog_product_attribute
15 */12 * * * root /usr/bin/php -f /home/user/www/public_html/indexer.php --reindex catalog_product_price
25 */12 * * * root /usr/bin/php -f /home/user/www/public_html/indexer.php --reindex catalog_url