PHP cli usa arquivo php.ini diferente quando executado pelo cron

PHP cli usa arquivo php.ini diferente quando executado pelo cron

Meu script do console CakePHP está tendo problemas para executar no cron. Ele reclama de falta de conexões Mysql e coisas assim.

Depois de investigar um pouco, descobri que o php executado pelo cron usa um arquivo php.ini diferente de quando eu o executo no terminal.

O que é ainda mais estranho é que no terminal o php não usa a configuração cli:

PHP executado no terminal:

Arquivo de configuração (php.ini) Caminho: /usr/local/lib
Arquivo de configuração carregado: /usr/local/lib/php.ini
Procure arquivos .ini adicionais em: (nenhum)
Arquivos .ini adicionais analisados: (nenhum)

PHP executado pelo cron:

Arquivo de configuração (php.ini) Caminho: /etc/php5/cli
Arquivo de configuração carregado: /etc/php5/cli/php.ini
Procure arquivos .ini adicionais em: /etc/php5/cli/conf.d
Arquivos .ini adicionais analisados: /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

Não tenho ideia de por que não está usando os mesmos arquivos de configuração. Não percebo nada de especial nas ENVvariáveis ​​do terminal ou quando executo como cron.

Responder1

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.

Responder2

Talvez você não esteja usando o mesmo phpbinário no terminal e no cron, devido a uma PATHconfiguração diferente.

Entre which phpno terminal e coloque o caminho completo para o phpbinário em seu script cron.

Responder3

Concordo com o Oliver - você tem que colocar o caminho completo para o php no cron. Você também pode incluir um parâmetro PATH no arquivo cron, mas provavelmente é melhor incluir um caminho absoluto para php.

informação relacionada