前提・実現したいこと
■環境
EC2 AmazonLinux2
nginx + PHP 7.4.11
PHP fpm
nginx環境下でphpを実行する際、chroot環境下で実行できるようにしたいと考えています。
具体的には
/home/ec2-user/index.php <?php echo(exec("ls /"));
のようなファイルを用意し、chrootを/home/ec2-user
に設定します。
(chroot環境下の場合、ルートディレクトリ直下にindex.phpがあるという状態になります)
その状態でnginxを経由しindex.phpに接続したいと考えております。
(アクセスするとecho(exec("ls /"));
が実行され、chrootの/
配下、つまりindex.phpという文言が出力される想定です)
発生している問題・エラーメッセージ
現状発生している問題として、nginxに接続するためのURL(仮にexample.comとします)にアクセスした際以下の文言が表示されます。
File not found.
またnginxのerror.log(/var/log/nginx/error.log)には以下が出力されます(xx.xx.xx.xxとしている箇所はIPアドレスになります)
*125 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: xx.xx.xx.xx, server: , request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/www.sock:",
以下参考になりそうな設定値です
■/etc/nginx/nginx.conf
index index.php index.html index.htm; root /home/ec2-user; location ~ .php$ { fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; }
■/etc/php-fpm.d/www.conf
chroot = /home/ec2-user
この状態を打開しchroot環境下のindex.phpにnginx経由でアクセスしたいと考えております。
試したこと
/etc/php-fpm.d/www.conf
にchrootの設定をしない場合、nginx経由でindex.phpを参照できることは確認しております。
chrootを設定しphp-fpmをrestartすることでFile not foundが発生するという状態です。
初めてのご質問につき、情報不足あるかと思いますがその場合ご連絡いただければすぐに補足情報お送りいたしますのでお気軽にご連絡ください!
お手数ですが、ご確認いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/30 08:49