質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
OpenSSL

OpenSSLはSSL/TLSのプロトコルと一般的な暗号のライブラリを導入するオープンソースのソフトウェアのツールキットです。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

4938閲覧

phpinfoが表示されず、ダウンロードされてしまうか、ソースそのままの表示。

EveryoneCanEat

総合スコア35

OpenSSL

OpenSSLはSSL/TLSのプロトコルと一般的な暗号のライブラリを導入するオープンソースのソフトウェアのツールキットです。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/07/28 07:59

編集2020/07/28 08:07

大変、お世話になっております。インフラ関連を勉強させて頂いております者です。

今回、最低限、TLS1.3とHTTP2対応を先に済ませたくて、opensslとnginxのソースからのダウンロードとビルド、そしてLetsencryptでhttps対応を致しまして、それから、phpinfoのテストを行いましたが、順番を間違えたようで、phpinfoが表示される代わりに、<?php phpinfo.php ?>のそのままのソースが表示される、あるいは、そのソースのダウンロードになってしまい、phpinfoが表示されず、全てやり直しをしなければならないのか、手段はあるのかご教授頂きたく、投稿致しました。

現状、nginxをソースからビルド致しまして、"sites-available"と"default.conf"が検索しても見つからず、国内のサイトは散々、調べさせて頂きましたが、「解決が早いのか」「一からやり直しが早いのか」判断に迷っております。

幸い、私はAWSを使わせて頂いておりますので、時間を要するエラーの場合は、ec2立て直しのみで、簡単にやり直しが可能ですが、この状況で、解決の手段があるのかどうか、ご教授頂きたい次第でございます。

次に、nginx.confの該当部分のソースを掲載致します。

user

1worker_processes 1; 2 3#error_log logs/error.log; 4#error_log logs/error.log notice; 5error_log /opt/nginx/logs/error.log; 6 7pid /opt/nginx/logs/nginx.pid; 8 9 10events { 11 worker_connections 1024; 12} 13 14 15http { 16 include mime.types; 17# default_type application/octet-stream; 18 19 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 20 # '$status $body_bytes_sent "$http_referer" ' 21 # '"$http_user_agent" "$http_x_forwarded_for"'; 22 23 access_log /opt/nginx/logs/access.log; 24 25 sendfile on; 26 #tcp_nopush on; 27 28 #keepalive_timeout 0; 29 keepalive_timeout 65; 30 31 #gzip on; 32 33 server { 34# listen 80; 35 listen 80 default_server; 36 listen [::]:80 default_server ipv6only=on; 37 server_name localhost; 38 return 301 https://$host$request_uri; 39 40 #charset koi8-r; 41 42 #access_log logs/host.access.log main; 43 44 location / { 45 root /opt/nginx/var/www; 46 index index.php index.html; 47 } 48 location = /favicon.ico { 49 log_not_found; 50 }
location ~ .php$ { try_files $uri = 404; fastcgi_split_path_info ^(.+.php)(/.+)$; root /opt/nginx/var/www; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # fastcgi_param PATH_INFO $fastcgi_script_name; include fastcgi.conf; include fastcgi_params; }
server { listen 443 ssl http2; server_name localhost; add_header Strict-Transport-Security max-age=15768000; ssl_certificate /etc/letsencrypt/live/***/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/***/privkey.pem; root /opt/nginx/var/www; index index.php; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; } }

どうぞ宜しくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

te2jiさんが指摘している通りですが、 httpsのサーバーの設定にphpに関するものが入っていません

server { listen 443 ssl http2; server_name localhost; add_header Strict-Transport-Security max-age=15768000; ssl_certificate /etc/letsencrypt/live/***/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/***/privkey.pem; root /opt/nginx/var/www; index index.php; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location ~ .php$ { # 以下の部分はhttpサーバー設定のコピペ try_files $uri = 404; fastcgi_split_path_info ^(.+.php)(/.+)$; root /opt/nginx/var/www; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # fastcgi_param PATH_INFO $fastcgi_script_name; include fastcgi.conf; include fastcgi_params; } } }

蛇足ですが、phpに関する設定は、httpサーバー側には不要だと思います。

return 301 https://$host$request_uri;

という行があるので、httpでアクセスされて来てもhttpsにリダイレクトしてしまうので…

投稿2020/07/28 08:46

YakumoSaki

総合スコア2027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

EveryoneCanEat

2020/07/28 08:58

httpsでも、phpinfo、表示されました! httpのみでなく、httpsにも、phpの設定が必要だと、良く、解りました! 本当に、ありがとうございます!
guest

0

最近触ってないんで、具体的なところの指摘ができませんがlocation ~ .php$ {}listen 443 ssl http2に対して、効いてないんだと思います。

どのルールが適用されたかデバッグできたはずなので、探してみてください。
また、設定内容全体を確認することもできたはずです。

ちょっと時間ないので、情報の確認をしておらず、ほとんど丸投げですけれど参考まで^^;

投稿2020/07/28 08:14

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

EveryoneCanEat

2020/07/28 08:30

ありがとうございます。只今、httpsのブロックをコメントアウトして実行致しましたところ、phpinfoが表示されました。 ご教授の通り、phpの設定が、httpsに効いていないと思います。
EveryoneCanEat

2020/07/28 08:36

本当、感謝申し上げます。自分でも、その原因につきまして、調べさせて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問