Php-scriptを定期的に実行しようとしています。ですから、crontabは良い考えだと思いました。私が使用しているサーバーは、Linuxを使用しているため、あまり慣れていません。したがって、私が抱えている問題は、スクリプトをPHPから実行可能にする方法がわかりません。スクリプトを参照するか、コマンドラインからphpを実行できるフォルダーに配置する必要があります。だから私は私のcrontabを与えるためのパスがわからない、例えば:
5 * * * * var/www/some/path/script.php
私はこのphp実行可能ファイルについての漠然とした情報を見つけました
/usr/bin/php
しかし、そこにphpファイルが見つかりません。おそらくインストールされていませんか?私のphp5とApacheのインストールは次の場所にあります。
/etc/php5
だから私の質問になります、とにかくphp-scriptを他のフォルダーでcrontabで実行するのですか、それともusr/bin/phpにphp実行可能ファイルがないのですか?
まず、コマンドラインで次のように入力します。
whereis php
これは、cronジョブを実行するユーザーとして実行します。これにより、実行可能ファイルへのパスが表示されます。次に、cronエントリでそのパスを使用できます(PATH変数にまだ含まれていない場合)。
5 * * * * /your/path/to/php /var/www/some/path/script.php
編集: Apache PHPモジュールがインストールされている場合、php5-cli
(Ubuntuパッケージ名)パッケージをインストールする必要があります。これにより、コマンドラインから実行できるバイナリ実行可能ファイル。
これは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
実行可能ファイルを見つけるには、トレイルをたどる必要がありました。
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
そのため、/ usr/bin/php5をphp実行可能ファイルへのパスとして含める必要があります。
andy@ararat:~$crontab -e
#*/1 * * * * /usr/bin/php5 /home/andy/www/dev.com/corp_rewards_cron.php
env を使用することもできます。phpを見つけて起動します。
/usr/bin/env php /var/www/some/path/script.php
または、script.phpにシバンを配置することもできます(1行目):
#!/usr/bin/env php
次に、それを実行可能にして、最初の例のようにcrontabで直接呼び出すようにします。
5 * * * * /var/www/some/path/script.php
ローカルでwgetコマンドを使用できます。
5 * * * * wget http://localhost/some/path/script.php
このようにすることをお勧めします
*/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を試してみましたが、それは機能します。
元に戻してみてください。