Docker の中の Apache で PHP の shell_exec() すると実行できるときとできないときがある

Webブラウザから PHP の exec 系統のコマンドを実行する

ある程度のセキュリティはちゃんと意識した上で、シェルスクリプトを Webブラウザ 上から叩くときなどに便利です。

Docker 上だと

が、Docker 上の Apache(PHP)だと「実行できたりできなかったり」する。原因は分からない。完全に実行できないなら調べようもあるとは思うが……。

ハマっている時間もないので、Docker ではやらないことにしました*1

エラーログ

こんな感じ。

[Fri Mar 10 02:41:17.459441 2017] [:error] [pid 26519] [client 192.168.160.102:57781] PHP Warning:  shell_exec(): Unable to execute '/bin/echo hello' in /var/www/html/hogehoge/exec.php on line 6

補足

シェルスクリプトなどは実行権限を適切に設定することを忘れずに。あと、パスも適切に書くことも忘れずに*2

*1:たぶん権限系?

*2:何でもかんでもフルパスで書けば安全っちゃあ安全

Powered by はてなブログ