web-dev-qa-db-ja.com

PHPスクリプトを実行するBashスクリプト

Bashスクリプトを使用して実行したいphpスクリプトがあるので、Cronを使用して1分ごとにphpスクリプトを実行できます。

私の知る限り、PHPスクリプトを処理するbashスクリプトを作成する必要があります。これにより、Cronツール/タイマーを使用できるようになります。

これまでのところ、私は置く必要があると言われました:

#!/pathtoscript/testphp.php

私のphpスクリプトの開始時に。ここから何をすべきかわからない...

何かアドバイス?ありがとう。

40
mmmbaileys

PHP=コマンドラインツールとしてインストールされている場合(端末にphpを発行して、動作するかどうかを確認してください)、Shebang(#!)行が必要です。このように見える:

#!/usr/bin/php

それをスクリプトの先頭に置き、実行可能(chmod +x myscript.php)にし、Cronジョブを作成してそのスクリプトを実行します(bashスクリプトを実行するのと同じ方法)。

php myscript.phpを使用することもできます。

70
Rafe Kettler
#!/usr/bin/env bash
PHP=`which php`
$PHP /path/to/php/file.php
14
FDisk

前のポスターは言った..

PHPコマンドラインツールとしてインストールされている場合... Shebang(#!)行は次のように見える必要があります:#!/usr/bin/php

これはcould trueであるが、phpを入力できるからといって、必ずしもphpがどこにあるかを意味するわけではない... /usr/bin/phpは一般的な場所…他のシバンと同様に…あなたのenvに合わせて調整する必要があります。

特定の実行可能ファイルが$PATHにある場所を見つける簡単な方法、試してみてください。which -a php ENTER、私にとっては….

php is /usr/local/php5/bin/php
php is /usr/bin/php
php is /usr/local/bin/php
php is /Library/WebServer/CGI-Executables/php

最初のものは、コマンドプロンプトでphpを入力した場合に取得するデフォルトです...しかし、Shebangで使用することも、直接使用することもできます...実行可能ファイル名をenvよく見られますが、/ trust thatについてはあまり知りません。 XO XO。

12
Alex Gray

あなただけを設定する必要があります:

/usr/bin/php path_to_your_php_file

crontabで。

7
Spyros

このようなものがあなたが探しているものだと確信しています:

#!/bin/sh

php /pathToScript/script.php

目的のスクリプト名(runPHP.shなど)で保存し、実行権限を付与すると、好きなように使用できます。

編集:間違っていなければ、bashスクリプトをまったく使用せずに、「php ...」コマンドをcrontabに追加することもできます。

幸運を!

7
Sergio Morales

Bashスクリプトは次のようになります。

#!/bin/bash
/usr/bin/php /path/to/php/file.php

実行可能ファイル(通常は/ usr/binにあります)および実行するphpスクリプトのパスが必要です。これで、このbashスクリプトをcrontabに配置するだけで完了です!

特定の実行可能ファイルが$ PATHにある場所を簡単に見つける方法を試してください。

phpがどこにあるかを見つけるより簡単な方法...

whereis php

私はdebian以上のコマンドを実行しています

php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz

お役に立てば幸いです。

2
Eddie B

Phpスクリプトを実行する以外にbashスクリプトで何もしない場合は、/ usr/bin/php /path/to/your/file.phpなどのコマンドを使用して、cronからphpスクリプトを実行するだけで済みます。

0
Costi Ciudatu

サーバーでphp-cgiを見つけました。そしてその環境パス上で、どこからでも走ることができました。成功しましたfile.php私のbashスクリプトで。

#!/bin/bash
php-cgi ../path/file.php

そして、スクリプトはphpスクリプトが実行された後にこれを返しました:

X-Powered-By:PHP/7.1.1コンテンツタイプ:text/html; charset = UTF-8

できました!

ところで、コマンドphp-cgi -v

0
Luis H Cabrejo