Centos6サーバー内。 Apacheユーザーとしてcronジョブでphpスクリプトを実行したいのですが、残念ながら機能しません。
こちらがcrontabのエディションです(crontab -uapache -e)
24 17 * * * php /opt/test.php
そして、「Apache」ユーザーが所有者として問題なく機能する「test.php」ファイルのソースコードを次に示します。
<?php exec( 'touch /opt/test/test.txt');?>
Phpをphpのフルパス(/ usr/local/php/bin/php)に置き換えようとしましたが、動作しません
事前に感謝、私を助けてください
Cronは、Linux/Unixに似たコンピューターオペレーティングシステムの時間ベースのスケジューリングサービスです。 cronジョブは、定期的に実行されるコマンドをスケジュールするために使用されます。設定した時間に繰り返し実行されるコマンドまたはスクリプトをセットアップできます。 Cronは、LinuxまたはUNIXのようなオペレーティングシステムで最も便利なツールの1つです。 cronサービス(デーモン)はバックグラウンドで実行され、/ etc/crontabファイル/ etc /を常にチェックしますcron。/ *ディレクトリ。また、/ var/spool/cron /ディレクトリもチェックします。
次の例では、以下に示すcrontabコマンドは、10分ごとにcronタスクを自動的にアクティブにします。
*/10 * * * * /usr/bin/php /opt/test.php
上記のサンプルでは、/10 * * * *はタスクがいつ発生するかを表します。最初の図はminutesを表します–この場合、「10」分ごとに。他の数字はそれぞれ、hour、day、monthおよび曜日。
*
はワイルドカードで、「毎回」を意味します。
コマンドラインに入力して、[〜#〜] php [〜#〜]バイナリを見つけることから始めます。
whereis php
出力は次のようになります。
php:/ usr/bin/php /etc/php.ini /etc/php.d/usr/lib64/php/usr/include/php/usr/share/php /usr/share/man/man1/php.1 .gz
コマンドでフルパスを正しく指定してください。
crontab -e
取得した内容を確認するにはcrontab。
保存せずにvimエディターを終了するには、次をクリックします。
Shift+:
そして、q!
私も同じ問題を抱えていました...ユーザーとして実行する必要がありました。
00 * * * * root /usr/bin/php /var/virtual/hostname.nz/public_html/cronjob.php
PHPスクリプトを実行する権限を持つユーザーとしてcronジョブを実行する必要がある場合があります。コマンドrunuser
(man runuser
)。または、システムcrontableを作成し、@ Philipが説明したように、許可ユーザーとしてPHPスクリプトを実行します。
このstackoverflowの投稿でcronの使用方法に関する詳細な回答を提供します。