質問: ### 前提・実現したいこと webサイトにアクセスした際に、dockerコンテナの生成をしたい。 こんにちは。卒業研究で学習サイトを作成しています。 そこでsample.phpにアクセスした際にhoge.shを読み込んで、dockerを生成したいです。 環境はubuntuにnginx、php、dockerを入れています。docker上にnginxを立てているわけではありません。 またwebにアクセスした際にdockerを起動する別の良い方法があれば教えていただきたいです。 よろしくお願いいたします。 ### 発生している問題・エラーメッセージ ``` webへのアクセス時、/var/log/nginx/error.logとwebブラウザ(php.iniでエラー表示するように設定済み)には何も表示されません。 ``` ### 該当のソースコード ``` sample.php ``` ``` hoge.sh #!/bin/sh docker run -d centos /sbin/init ``` ### 試したこと php sample.php とCUIで実行した場合にはコンテナが立ち上がりました。 ### 補足情報(FW/ツールのバージョンなど) selinuxは無効です。ubuntu16.04, php7.0, docker18.06.1-ce
回答: shell_exec > > 注意: > > > この関数は、エラーが発生した場合だけでなくプログラムが何も出力しなかった場合にも NULL を返します。 そのため、実行に失敗したノかどうかをこの関数では判断できません。 プログラムの終了コードを調べる必要があるときには exec() を使いましょう > > > とのことなので、exec()で実行してエラーを取得するところからトライしてみると良いと思います。 参考 勘としては、 * Apacheの実行ユーザに実行権限が無いパーミッションになっている * `./hoge.sh`をフルパスでの指定に変更する あたりで何とかなりそうな気がします。