2017-10-29 20 views
1

私は、デバイスをバックアップする2つのスクリプトを呼び出すスクリプトを持っています。CronジョブとPHPスクリプト

問題は、私が画面セッションで他の2つを開くメインスクリプトを手動で呼び出すと、すべて正常に動作します。 2つのスクリプトは、基本的にPHPスクリプトを介してSQL Serverにデータを送信します。

IE 私はラインそれが正常に動作します(私のユーザーディレクトリから実行される)を手動で実行

$link = mysql_connect("server ip", "username", "password", "database"); 

を持っています。

私はcronジョブの実行を持っている場合は、それがポイントに正常に動作します、それはスクリプトのPHPのセクションになったとき、それは手動で私ならば、それは正常に動作するということで、それでエラー

PHP Fatal error: Call to undefined function mysql_connect() in /export/home/myname/my_Scripts/php_script_its_running 

を取得それを実行すると、私はcronを介してそれを実行するとき、私はそれが別のPHPインスタンスを実行しているかのいずれかであると仮定していますか?または、idk、100%まだcronジョブに精通していない。 5.4

ないにそれを変更する簡単な方法があるかどうか確認してくださいにcomparred私はより多くのそれをデバッグしている間そう、それは私のユーザーアカウントを使用しているものよりもPHPの異なるバージョンを使用しているように見えます

、5.1私のユーザーアカウントphpの設定を使用しますか?残念ながら、私はボックスへのルートアクセス権を持っていません。

Answer 私は動作していたスクリプトを実行し、phpinfo()を追加してパス情報を取得し、それをデフォルトに上書きするようにcronjobに追加しました。

のでcronジョブファイルの先頭には、

SHELL =/binに/ bashの PATH = /usr/kerberos/bin:/app/php-5.4.3/bin

+0

ようになります見てみてください。 [編集ヘルプ](http://stackoverflow.com/editing-help)を参照してください。 – Cyrus

+0

もしわからなければ、 'which php'でcronジョブをスケジュールして、正しいインスタンスかどうかを確認することができます。私はあなたのスクリプトのパーミッションもチェックします(またはパーミッションが問題であるかどうかテストするために777に設定するだけです)。 –

+0

これは素晴らしい夜でした。質問を投稿した後でそれを理解し、他の誰かがこの問題を抱えている場合は質問を編集します。 – Rob

答えて

1

回答だから、のようになります私は作業スクリプトを実行し、phpinfo()を追加し、パス情報を取得してデフォルトに上書きするようにcronjobに追加しました。

ので、cronジョブファイルの先頭が

SHELL =/binに/ bashのパス= /usr/kerberos/bin:/app/php-5.4.3/bin