Agora a partir da versão 1.9.1 do Magento para para que os emails sejam enviados corretamente é preciso configurar o Cron do servidor para rodar o arquivo cron.sh.
Ou seja, agora não basta apenas instalar a loja magento e sair usando, é preciso essa configuração a mais dentro do Magento, outros recursos que ficam a cargo do cron são:
- Controlar a regra de preços do catálogo
- Enviar Malas diretas disparadas do Magento (Newsletters)
- Gerar Google sitemaps
- Alertas/Notificações (Mudança de preço do produto, Aviso de que o produto voltou a ter estoque…)
- Atualização automática de moedas
Na prática é mais percebido porque sem essa configuração o admin não envia email para o cliente, não envia o email de pedido realizado com sucesso, não inicia ou encerra uma promoção com tempo definido.
Muitos artigos que encontrei não conseguiram resolver meu problema, então agora que finalmente resolvi, posso compartilhar a solução com todos.
Configurando o Cron no Magento com cpanel (Cron Tab ou Tabalho Cron)
No cpanel clique no ícone do cron ou digite cron na pesquisa pra mostrar facilmente. Caso não tenha um email configurado, configure um, assim você será informado caso ocorra algum erro. A configuração é a seguinte:
Por padrão do cpanel fica assim:
*/5 * * * * /bin/sh /home/[usuário cpanel]/public_html/cron.sh
Com essa configuração você receberá um email toda vez que o cron for rodado (cada 5 minutos) deixe receber algumas vezes pra saber se está rodando corretamente ou se virá alguma mensagem de erro. Depois disso pode acrescentar o comando >/dev/null 2>&1
para não receber mais os emails, ficando assim
*/5 * * * * /bin/sh /home/[usuário cpanel]/public_html/cron.sh >/dev/null 2>&1
Configurando Crontab no Magento com Shell
Aqui é preciso ter permissão para fazer essa alteração no acesso ssh
Com o Shell aberto rode os comandos:
- Cria ou edita um crontab para o usuario apache:
crontab -u apache-user-name -e - Um editor de texto é exibido (You might need to choose a text editor first.) entre com o seguinte texto
*/5 * * * * /bin/sh /[diretório da loja]/cron.sh - Salve suas alterações para o crontab e saia do editor
Simples assim, sem códigos mirabolantes ou instalação de módulos extras, mesmo que esse codigo tenha funcionado nos vários servidores que já usei pode ser que no seu seja necessário alguma diferença, então se tiver alguma dificuldade deixe um comentário aqui embaixo
Um abraço e até a próxima.
fonte: http://devdocs.magento.com/guides/m1x/install/installing_install.html#install-cron
Respostas de 15
Parabéns pelo tutorial, esse foi mais a fundo que os que eu tinha pesquisado, obrigado pela ajuda!
de quanto em quanto tempo é interessante manter o cron para rodar?
de 5 em 5 minutos? deixei 1 vez a cada 1 hora, o que acham?
A cada cinco minutos é o ideal e o recomendado pelo Magento
Olá, estou com uma dúvida, no meu caso não tenho cPanel, estou usando AWS e tenho acesso via SSH, para configurar o cron preciso utilizar a opção com Shell?
Obrigado
Oi, Não tenho como é pelo ssh, se é aplicando o comando direto ou se tem que editar algum arquivo, mas a linha de comando que usei aqui será a igual no cron via shell.
Parabéns Ronaldo pela matéria. Eu agendei o cron corretamente, mas não me atentei a possibilidade de enviar um email na execução do Cron, ate ler sua matéria.
Agora descobri que esta apresentando um erro na execução do cron:
Failed loading /opt/php54/lib/php/extensions/no-debug-non-zts-20100525/ioncube_loader_lin_5.4.so: /opt/php54/lib/php/extensions/no-debug-non-zts-20100525/ioncube_loader_lin_5.4.so: undefined symbol: zend_new_interned_string
Failed loading /opt/php54/lib/php/extensions/no-debug-non-zts-20100525/ZendGuardLoader.so: /opt/php54/lib/php/extensions/no-debug-non-zts-20100525/ZendGuardLoader.so: undefined symbol: zend_new_interned_string
Content-type: text/html
Fatal error: Uncaught exception ‘Zend_Db_Adapter_Exception’ with message ‘The PDO extension is required for this adapter but the extension is not loaded’ in /home/trind571/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php:344
Stack trace:
#0 /home/trind571/public_html/lib/Zend/Db/Adapter/Abstract.php(248): Zend_Db_Adapter_Pdo_Abstract->setFetchMode(2)
#1 /home/trind571/public_html/app/code/core/Mage/Core/Model/Resource.php(175): Zend_Db_Adapter_Abstract->__construct(Array)
#2 /home/trind571/public_html/app/code/core/Mage/Core/Model/Resource.php(110): Mage_Core_Model_Resource->_newConnection(‘pdo_mysql’, Object(Mage_Core_Model_Config_Element))
#3 /home/trind571/public_html/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(320): Mage_Core_Model_Resource->getConnection(‘core_write’)
#4 /home/trind571/public_html/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(350): Mage_Core_Model_Resource_Db_Abstract->_getConnection(‘write’)
#5 /home/trind571/public_html/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(335) in /home/trind571/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php on line 344
Estou utilizando o PHP 5.4.45
Sabe o que poder ser?
Não tenho certeza, parece que falta um complemento, mas é estranho porque sua versão do php é compatível com Magento.
De qualquer forma experimenta colocar a versão 5.5 ou 5.6 do php
vlw Ronaldo,
depois que fiz a pergunta atualizei para a versão para a 5.6, mas continuo com o mesmo problema. Quando utilizo a função phpinfo(), para ver dados do php da minhas hospedagem, la aparece que tem a extensão do PDO.
Estou achando que deve ser problema na minha hospedagem ha Hostgator, abri um chamado com eles. Vou aguarda a resposta.
Ronaldo Diniz. Unico tutorial que resolveu efetivamente o caso do não envio dos emails. Unico tutorial que inclusive mencionou que agora a partir do magento 1.9.xx não é apenas instalar o magento. E olha que tem muita informação para se ler a este respeito. Agradeço sua ajuda, foi demais!
O meu aparece esse erro
/home/easypathserver/public_html/loja/cron.sh: line 26: $’\r’: command not found
/home/easypathserver/public_html/loja/cron.sh: line 54: syntax error: unexpected end of file
sabe o que pode ser amigo
não entendo tanto de ssh assim, mas parece que há erros no arquivo cron.sh
Olá o diretório da minha loja é o diretório raiz, como ficaria no comando citado acima por gentileza
/home/[o que colocar aqui]/public_html/cron.sh >/dev/null 2>&1
obrigado
isso mesmo
Boa tarde, estou fazendo um site com magento instalei a versão 1.9.3.8 cadastro os produtos mas não aparece nada na página home. Pode me dizer o que pode ser.
Grato
Marcelo
podem ser vários motivos: