猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

未分類

CakePHPからphpスクリプトをバックグラウンドで起動する

投稿日:

時間のかかる処理がある場合、
phpスクリプトをキックするだけで画面ではレスポンスを返したい場合があります。

app/Console/Command/text.php
に実行したいphpスクリプトを置きます。
ディレクトリの権限には注意する必要があります。

コントローラー側では以下のようにスクリプトを呼び出します。

public function phpexcute(){

    $cmd='/usr/bin/php /var/www/html/cakephp/app/Console/Command/test.php > /dev/null &';
    Debugger::dump(exec($cmd));
}

ポイントは
/usr/bin/php の引数として実行したいphpファイルを指定することと、
/dev/null &
です。

/dev/null &
をいれないと、処理が終了するまで画面がとまってしまいます。

Gooleアドセンス用336

Gooleアドセンス用336

-未分類
-,

執筆者:

関連記事

PHP execで別exeが実行できない

他のサイトでも色々紹介されていますので、あまり紹介されていないパターンのご紹介です。 どうしても実行できないときは、まずexecを呼び出しているときのカレントワーキングディレクトリを確認してください。 …

CakePHPの初期画面を変更する

/Config/routes.phpを編集すればOKです。 もちろん事前に対応するページを作成しておかなくてはいけません。 まずはbakeコマンドでサンプルページを作成しておけばスムーズに開発できるで …

CakePHP query時のキャッシュをオフにする方法

Controllerのアクション内で 更新とSELECTをループすると正常な値が取得できません。 それはCakePHPがキャッシュを見てしまうからです。 キャッシュをオフにするには、 第二引数をfal …

CakePHP FormHelperでhidden属性を設定する

ユーザーIDなどのラベルなどで使用する変更できない値などを渡す場合に便利です。 echo $this->Form->hidden(‘User.cust_code’ ,array(‘valu …

PDO SQLSRVが認識しない

Windows上でPHPを使ってSQLSERVERに接続するためには PDO SQLSERVERというエクステンションを追加するのが一般的だと思います。 がどうしてもうまく認識してくれません。 認識し …