CakePHP3 コントローラーからシェル内のプログラムを実行する方法

ControllerからShellのプログラムを実行させたかったので、調べたら[exec]を使用して出来ることがわかったので、

やろうとしたら!ハマりました…

 

Controllerの処理

●●●●は開発環境に合わせてください。

[注意]

「whoami」を使用して現在のユーザー名を表示して、ユーザー名を確認した方がいいです。

  • Controller側で確認する方法

  • Linuxコマンドで確認する方法

エディタからサーバーにログインし「whoami」入力してEnter

[ハマった理由]

ユーザー名「hoge」の開発環境で、いくら[exex]をやってもshellのプログラムが処理されない!

何かと思ったら…Controller側でユーザー名が「ec2-user」になっていた!

Linuxコマンドで確認したら「hoge」だった。

Controller側では開発環境のユーザーが「ec2-user」になっていて、サーバーのユーザーが「hoge」で、

「ec2-user」「hoge」が異なっていると、どうやらうまくいかないらしい…

 

[exec]は簡単に利用できて便利だけど、うまくいかないとハマることがわかった。

エラーも出ないし、戻り値がないので余計に苦労しました。

 

投稿者: samancha