![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
過去の質問や他サイトを参考にしても実行できなかったので、ここに質問させていただきます。
cakePHPを用いてa.ctpからb.ctpにredirectする処理の裏で別の処理を実行させるという、いわゆる非同期処理を試しています。
具体的に言うと、DBを更新する処理を書いたhoge.phpを外部ファイル実行しているものです。
その外部ファイル実行時のコマンドで悩んでいます。
「exec("php C:/hoge/hoge.php > /dev/null 2>&1")」 や
「popen('start /B cmd /c "C:/pleiades/xampp/php.exe C:/hoge/hoge.php > /dev/null 2>&1"',"r")」
などいくつか試してみたのですが実行されていません。
DB更新処理自体は、hoge.phpを単体で動かして動作確認が取れたので問題無しと考えます。
質問としては、
・execないしpopenのコマンドの書き方はこれでいいのか。
・そもそも外部ファイル(hoge.php)は上記のように自由な場所に置いていいのか。
となります。
どうかご教授ください。
よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> hoge.phpを単体で動かして動作確認が取れたので問題無しと考えます
本当に問題無いのでしょうか?
私はwindows上でPHPを動かしたことが無いので分かりませんが・・
Linuxではコマンドを実行するのにユーザーの権限が必要になります。コマンドラインで実行するユーザーとapacheのユーザーは大抵の場合別なので、コマンドラインで実行できた=execが通るなど断言できません。というよりもむしろ動かないほうが多いです。
windows上だとどうなるのか知りませんが、少なくてもexecコマンドで呼び出すPHPの中でログをはき出すなど動作確認すべきでは?
また、
> DBを更新する処理を書いたhoge.phpを外部ファイル実行
cakePHPでもDBは更新できますが、なぜわざわざフレームワーク外にあるPHPで更新させる必要があるのでしょう?
>・execないしpopenのコマンドの書き方はこれでいいのか。
popenは使ったことが無いので分かりませんが、execコマンドに関してはcakeだろうが素のPHPだろうが同じです。フレームワークに依存しない処理なので関係ありません。
>・そもそも外部ファイル(hoge.php)は上記のように自由な場所に置いていいのか。
Windowsは知りませんがLinuxであれば「自由な場所」にPHPを置くことは出来ません。
アクセス権限があるディレクトリ以下に配置するのがセオリーでしょう。
また、cakeの中に置くのであれば/vendorsか/app/vendorsに置くのがセオリーです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript ifreamをリロードしたい 1 2022/05/03 16:15
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- PHP PHPの変わった閉じタグの必要性と意味を教えてください。 1 2022/08/28 15:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysql複数レコードをまとめて削...
-
Switch文における、returnとbre...
-
hudson×phingの連携
-
PHPでMysqlにデータがあるかど...
-
PHPからシェルコマンドの実行
-
PHPからバッチファイルの実行
-
PHPスクリプトからサービスの再...
-
php実行中に実行中のphpファイ...
-
phpからエクセルのマクロを実行...
-
PHPファイルをcronで実行す...
-
フォントの色を変えるには?
-
【BAT(バッチ)ファイル】Web...
-
PHP8を使うと、大量のWarningが...
-
バッチを用いたフォルダの自動移動
-
ファイル一覧を表示しその画面...
-
文字化けについて
-
PHPのif文でその処理を途中で抜...
-
eclipseのエラーの意味
-
透過PNGが透過されない!!
-
空メールの作り方教えて欲しい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysql複数レコードをまとめて削...
-
php実行中に実行中のphpファイ...
-
phpからエクセルのマクロを実行...
-
ヒアドキュメントの中で演算子...
-
PHPからバッチファイルの実行
-
PHPのコマンドをnobodyオーナで...
-
copy() で属性保存
-
$argv[1]) && $argv[1]・同じ
-
PHPで外部プログラムのバックグ...
-
Prompt入力値をphp変数として取...
-
PHPでサーバーにインストールさ...
-
require_onceが動いていない
-
現在、レンタルサーバ(コアサー...
-
PHPで、C#のプログラムを実行す...
-
query、prepare、executeの違い
-
phpスクリプトのみで定期実行
-
【PHP】命令は記述順に処理...
-
PHP(Windows)でコマンド実行
-
PHPでコマンドプロンプトを実行...
-
IIS + PHP からのWindowsコマン...
おすすめ情報