21

定期的にphpスクリプトを実行しようとしています。だから私はcrontabが良い考えだと思っていました。私が使用しているサーバーは、あまり慣れていないLinux上にあります。だから私が抱えている問題は、phpからスクリプトを実行可能にする方法がわからないということです。スクリプトを参照するか、コマンド ラインから php を実行できるフォルダーに配置する必要があります。したがって、crontab に指定するパスがわかりません。たとえば、次のようになります。

5  * * * * var/www/some/path/script.php

このphp実行可能ファイルが次の場所にあるという漠然とした情報を見つけました

/usr/bin/php

しかし、そこにphpファイルが見つかりません。インストールしていない可能性がありますか? 私のphp5とApacheのインストールは次のとおりです。

/etc/php5

だから私の質問は、とにかく他のフォルダーでcrontabを使用してphpスクリプトを実行することはありますか、それともusr/bin/phpにphp実行可能ファイルがないだけですか?

4

6 に答える 6

32

コマンドラインで次のように入力して開始します。

whereis php

これは、cron ジョブが実行されるユーザーとして実行します。これにより、実行可能ファイルへのパスが表示されます。次に、cron エントリでそのパスを使用できます (PATH 変数にまだない場合)。

5 * * * * /your/path/to/php /var/www/some/path/script.php

編集:php5-cli Apache PHP モジュールがインストールされているだけの場合は、(Ubuntu パッケージ名) パッケージをインストールする必要がある場合があります。これにより、コマンド ラインから実行できるバイナリ実行可能ファイルが提供されます。

于 2010-04-22T08:40:44.070 に答える
7

これはLinuxシステムですか?

新しいLinuxディストリビューションには、実際に は、ユーザーによるcrontabへの入力を必要としない
便利なcrontabセットアップシステムがあります。
たとえば、SuSE Linuxでは、ディレクトリがあります

/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.monthly/
/etc/cron.weekly/

呼び出しスクリプト(konno_php_start)をこれらのディレクトリのいずれかに配置するだけです。

/etc/cron.hourly/konno_php_start

これは実行可能(chmod 755程度)で、次のものが含まれています。

#!/bin/sh
cd /var/www/some/path/
php  script.php >> logfile.txt 2>&1

cronデーモンを再起動します。それでおしまい。


ログファイルから、phpインタープリターがPATHにあるかどうかを確認できます。そうでない場合は、/ etc / cron.hourly/konno_php_startの行を次のように変更します。

/full/path/to/php  script.php >> logfile.txt 2>&1

よろしく

rbo

于 2010-04-22T08:47:37.820 に答える
7

wget コマンドをローカルで使用できます。

5  * * * * wget http://localhost/some/path/script.php
于 2015-10-30T03:21:32.123 に答える
5

実行可能ファイルを見つけるために、トレイルをたどる必要がありました。

andy@ararat:~$ type php
php is /usr/bin/php

andy@ararat:~$ file /usr/bin/php
/usr/bin/php: symbolic link to `/etc/alternatives/php'

andy@ararat:~$ file /etc/alternatives/php
/etc/alternatives/php: symbolic link to `/usr/bin/php5'

andy@ararat:~$ file /usr/bin/php5
/usr/bin/php5: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

そのため、次のように、php 実行可能ファイルへのパスとして /usr/bin/php5 を含める必要があります。

andy@ararat:~$crontab -e
#*/1 * * * * /usr/bin/php5 /home/andy/www/dev.com/corp_rewards_cron.php
于 2011-09-22T09:08:41.600 に答える
2

envを使用することもできます。これは、php を見つけて起動します。

/usr/bin/env php /var/www/some/path/script.php

または、script.php にシバンを配置することもできます (最初の行):

#!/usr/bin/env php

次に、最初の例のように、実行可能にし、crontab で直接呼び出すようにします。

5  * * * * /var/www/some/path/script.php
于 2010-04-22T09:06:43.320 に答える
0

このようにすることをお勧めします。

*/5 * * * * /path/gridmon2.pl 1> /dev/null 2> /dev/null

.pl コードのどこで、wget または次のようなものを使用して grep する必要があります。

wget "/www/root/index.php"

または、次のようにすることもできます。

/usr/bin/wget "/www/root/index.php"

これは単なる私の提案です。ローカルではなく外部サイトに wget を試してみただけで、うまくいきました。

元に戻してみてください。

于 2010-04-22T09:14:32.110 に答える