2011-08-10 13 views
0

私は毎日PHPスクリプトを実行したいと思います。私は以下の行を含むbashスクリプトを持っています。私はそのスクリプトでそれをやっていました。このようにして、別のコンピュータから実行することができます。 webservername = "slmnbr"と言うと、どのボディもmyscriptをちょうどサーバーからPHPスクリプトを呼び出す方法bash?

xhttp://slmnbr/myscript.phpと呼ぶことができます。

私はちょうどサーバからそれを呼び出したいと思う。タスク(またはPHPスクリプト)毎日使用cronを実行するには、事前

+1

CLIで実行されているスクリプトは、実行中のスクリプトと同じではありませんCLIとApache間の環境が異なるためにApacheにある – ajreal

答えて

2

あなたはPHP CLI(コマンドラインを持っている必要がありますインターフェイス)を使用してこれを行います。多くの場合、PHPインストールパッケージ(または別のパッケージ)が付属しています。

@Jamesが言いましたように、スクリプト名の前にWindowsのCLI PHP実行ファイルを置く必要があります。このファイルは、インストールディレクトリのどこかにあるphp.exeです。

UN * Xシステムでは、/usr/binまたは/usr/local/binまたは/opt/local/binのどこかにあります。それがPATHにある場合は、単にこのようにそれを実行することができます。

php your_script.php 

しかし、サーバからスクリプトを実行すると、ウェブサーバから実行するのと同じではないだろうということを覚えておいてください。例えば、 POSTまたはGETの変数はありません。したがって、あなたのスクリプトは動作しないかもしれません。

更新

あなたはcronのは、HTTPデーモン(通常はwww-data)でPHPスクリプトを実行しているユーザーによってそれが読めないことによって、あなたのウェブサーバのための到達不能のスクリプトを実行することができます。

私は唯一のcronからそれを実行しているユーザーがそれを読みやすくすることをお勧めします

chown cronuser your_script.php 
chmod 0400 your_script.php 

アップデート2

あなたが同じユーザーとのcronでスクリプトを実行している場合Webサーバーが実行している場合、スクリプトの先頭に実行が停止されます。

if (!(php_sapi_name() == 'cli' && empty($_SERVER['REMOTE_ADDR']))) { 
    header('HTTP/1.1 403 Forbidden'); 
    exit; 
} 
+0

ありがとうKaraszı、 私はbashスクリプトで/ usr/bin/php myscript.phpを使用して問題を修正する必要がありますが、それでもこれはもっとxhttps:/ /slmnbr/cron/myscript.php。 cronはアクセス不能(403 Forbidden)ですが、myscript.phpにはまだアクセスできます。アクセス権や設定を変更することができますか? – kursat

+0

@kursadyo:答えを更新しました。 –

1

BASE_URL=http://`get-webservername` 
/usr/bin/wget --no-check-certificate --timeout=0 -O - "$BASE_URL/myscript.php" 

感謝。

このリンクには、外部からのアクセスを防止する方法など、必要な情報がすべて含まれています。 「PHP」のいずれかの最近のバージョンで

+0

tutsplusがstackoverflowよりも長生きしない場合に備えて、答えに必要なすべての情報を含めることをお勧めします。また、質問や回答の本質を得るために誰かがサイトを離れないようにするのは面白いです。 –

+0

クリスさん、ありがとうございます。もちろん、私はcronを使っています。私が学びたいのは、あなたのような外部アクセスを防ぐ方法です。 – kursat

0

スタンドアロンの実行ファイルが呼び出される必要があります。 「php.exe

ただ、そうのようにこれを実行します。

/usr/local/php.exe your_script.php 
+0

は '/ usr/local /'に 'php.exe'を持っているのですが少し狂っています:) –

+0

私はWindows XAMPしか持っていないので、* NIXディストリビューションのどこに行くのか分かりません。 –

+0

ああ、申し訳ありませんが、Windows XAMPは分かりません。 –

関連する問題