• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:cronでエラー)

cronでエラーが発生!ライブラリがなくて動かない問題の回避方法とは?

このQ&Aのポイント
  • PHPのプログラムをcronを動かしている際に、ライブラリがなくてエラーが発生します。
  • エラーメッセージは「PHP Warning: Unknown(): Unable to load dynamic library './php_gd2.dll' - ./php_gd2.dll: cannot open shared object file: No such file or directory in Unknown on line 0」と表示されます。
  • この問題を回避する方法があるのか、ご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.1

この手のエラーは、chrootしているときか、環境変数がただしく設定されていない時、またスクリプトが特定のカレントディレクトリを想定して書かれている時に起きることが多いです。 当然手動で動かしたときにはちゃんと動作するのですよね。 .profileとか.cshrcなどで設定している環境変数はcronで起動したときには設定されないので、必要な環境変数を設定するシェルスクリプトなどを介してPHPを起動する必要があるのかも知れません。 cronに pwd > /tmp/pwd.out env > /tmp/printenv.out などといった1行スクリプトをcronに登録して、環境変数とカレントディレクトリを調べてみて、自分の対話シェルでの環境変数と比べてみればいかがでしょうか。

wonder_dct
質問者

お礼

a-saitoh さんご回答ありがとうございます。 > 当然手動で動かしたときにはちゃんと動作するのですよね。 エラーは出ますが、PHPのプログラムは正常に動作しています。 > pwd > /tmp/pwd.out ---------------------------------------- /root ---------------------------------------- > env > /tmp/printenv.out ---------------------------------------- SHELL=/bin/sh PATH=/usr/bin:/bin PWD=/root SHLVL=1 HOME=/root LOGNAME=root _=/usr/bin/env ---------------------------------------- と書き出されていました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

あれ、LinuxベースでDLLを読み込んでるんですか? 通常は.soとかになりませんでしたっけ。 間違ってるならphp.iniでモジュールはずしてみたらどうですかね。

すると、全ての回答が全文表示されます。

関連するQ&A