Linux Mint 17を使用しています。PHP 7.1またはPHP 7.2 nginxを使用して設定しようとしていますが、phpスクリプトにアクセスするたびに500 Internal Server Error
を取得します。 nginxまたはPHPを再起動しても、エラーは発生しません。
/etc/nginx/conf.d/default.conf
の内容は次のとおりです。
server {
listen 80;
listen [::]:80 default_server ipv6only=on; ## listen for ipv6
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/Host.access.log main;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
location ~ \.php$ {
proxy_pass http://127.0.0.1;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass unix:/var/run/php7.2-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
私は緊急にこれを機能させる必要があるので、どんな助けでも大歓迎です。
500エラーを修正するには、worker_rlimit_nofile 100048
を追加し、worker_connections
を100048
に変更します。残念ながら、現在は「エラーが発生しました」と表示され、ログに次のように表示されます。
2018/02/11 21:53:23 [crit] 13219#13219: *1012 open() "/usr/share/nginx/html/50x.html" failed (24: Too many open files), client: 127.0.0.1, server: localhost, request: "GET /info.php HTTP/1.0", upstream: "http://127.0.0.1:80/info.php", Host: "127.0.0.1"
2018/02/11 21:53:48 [crit] 13263#13263: *56464 connect() to 127.0.0.1:80 failed (99: Cannot assign requested address) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /info.php HTTP/1.0", upstream: "http://127.0.0.1:80/info.php", Host: "127.0.0.1"
おっしゃったworker
の設定とは何の関係もないと思います。
また、2つの場所location ~ \.php$ {
を指定しても意味がありません。私はあなたがalradeyが最初のものを取り除いたとあなたのコメントから読みました:
location ~ \.php$ {
proxy_pass http://127.0.0.1;
}
良い。
次に、PHP-fpmが機能しない理由を調べます。
PHP-fpmがインストールされ、実行されていますか? service php7.2-fpm status
で確認する
ソケットファイルはどこに行きましたか?ソケット設定ファイルの設定をここで確認してください/etc/php/7.2/fpm/pool.d/
PHP-fpmがアプリケーションフォルダーに対する権限を持つ正しいユーザーを使用しているかどうかを確認します。
その他のnginx構成の問題:
try_files
を追加:
location / {
try_files $uri $uri/ /index.php?$args;
}
root html;
セクションからlocation ~ \.php$ {
行を削除します。
これらの2行をlocation
セクションに記述しないでください。 location / { }
なしで追加してください:
root /usr/share/nginx/html;
index index.php index.html index.htm;