Não tenho certeza se esse é um comportamento padrão ou não, mas você sempre pode adicionar
-c /usr/local/lib/php.ini
ao comando para usar uma configuração personalizada.
Meu script de console do CakePHP está tendo problemas para executar sob o cron. Ele reclama sobre a falta de conexões Mysql e tal.
Depois de um pouco de investigação descobri que php executado pelo cron usa um arquivo php.ini diferente comparado ao quando eu o executo no terminal.
O que é ainda mais estranho é que no terminal, o php não usa o cli config:
PHP executado no terminal:
Configuration File (php.ini) Path: /usr/local/lib Loaded Configuration File: /usr/local/lib/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
PHP executado pelo cron:
Configuration File (php.ini) Path: /etc/php5/cli Loaded Configuration File: /etc/php5/cli/php.ini Scan for additional .ini files in: /etc/php5/cli/conf.d Additional .ini files parsed: /etc/php5/cli/conf.d/memcache.ini, /etc/php5/cli/conf.d/mysql.ini, /etc/php5/cli/conf.d/mysqli.ini, /etc/php5/cli/conf.d/pdo.ini, /etc/php5/cli/conf.d/pdo_mysql.ini, /etc/php5/cli/conf.d/suhosin.ini, /etc/php5/cli/conf.d/xcache.ini
Eu não tenho idéia porque não está usando os mesmos arquivos de configuração. Eu não noto nada de especial nas variáveis ENV
no terminal ou quando executado como cron.
Não tenho certeza se esse é um comportamento padrão ou não, mas você sempre pode adicionar
-c /usr/local/lib/php.ini
ao comando para usar uma configuração personalizada.
Você talvez não esteja usando o mesmo php
binário no terminal e no cron, por causa de uma configuração PATH
diferente.
Digite which php
no terminal e coloque o caminho completo para o binário php
em seu script cron.
Concordo com o Oliver - você tem que colocar o caminho completo para php no cron. Você também pode incluir um parâmetro PATH no arquivo cron, mas provavelmente o melhor para um caminho absoluto para o php.