Apacheのアクセス許可が設定されている場合でもブラウザでBashスクリプトを実行する
Dockerコンテナーに配置するプログラムがあります。ブラウザページに移動してDockerコンテナを実行し、プログラムが起動できるようにします。 そこで、Dockerコマンド(runcontainer.sh)を実行するbashスクリプトを作成しました。 #!/bin/sh sudo docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix myproject 次に、そのシェルスクリプト(webscript.php)を実行するPHPファイルを作成しました。 <?php exec('/usr/lib/cgi-bin/runcontainer.sh'); ?> apache2をインストールした状態でubuntu 16.04を実行しています。 問題: bashターミナルで 実行するphp webscript.phpとプログラムが実行されます。コンテナが起動し、プログラムが起動します。ただし、Webブラウザー(firefox)から試しても、そうではありません。 http://localhost/cgi-bin/webscript.phpにアクセスすると、ページが表示されますが、Dockerコンテナーが起動しません。そこで、/ var / log / apache2 / error.logを見て、次のエラーを見ました:sudo: no tty present and no askpass program specified。 同様の質問に基づいてsudo apachectl -S、Apacheユーザーとグループの名前を見に走り ました。両方のwww-dataです。そこで、ユーザーとグループを/ usr / lib / cgi-bin /ディレクトリにwww-dataに設定します。 www-dataに完全なアクセス許可がある場合でも、sudo: …