![PHP-FPM:nginx / error.logで「該当するファイルまたはディレクトリが見つかりません」エラーが発生しました。パスまたは権限の問題がありますか? [閉鎖]](https://linux33.com/image/146731/PHP-FPM%EF%BC%9Anginx%20%2F%20error.log%E3%81%A7%E3%80%8C%E8%A9%B2%E5%BD%93%E3%81%99%E3%82%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%8D%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E3%83%91%E3%82%B9%E3%81%BE%E3%81%9F%E3%81%AF%E6%A8%A9%E9%99%90%E3%81%AE%E5%95%8F%E9%A1%8C%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
ブラウザバーにwikiアドレスを入力すると、「FastCGI sent on stderr: "Cannot open main script: /var/www/mediawiki/index.php (No such file or Directory)"エラーが発生します。これは私のPHP-FPM www .conf ファイルです。
[www]
user = nginx
group = nginx
listen = /var/run/php/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
;chroot =
;chdir =
;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
php_value[opcache.file_cache] = /var/lib/php/opcache
これは私のnginx conf.dファイルです。
# HTTP requests will be redirected to HTTPS
server {
listen 80;
listen [::]:80;
server_name wiki.example.com;
return 301 https://$host$request_uri;
}
# HTTPS Configuration
server {
listen 443 ssl;
listen [::]:443;
server_name wiki.example.com;
root /var/www/mediawiki;
index index.php;
autoindex off;
# SSL Certification Configuration
ssl_certificate
/etc/letsencrypt/live/wiki.example.com/fullchain.pem;
ssl_certificate_key
/etc/letsencrypt/live/wiki.example.com/privkey.pem;
client_max_body_size 5m;
client_body_timeout 60;
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?title=$1&$args;
}
location ^~ /maintenance/ {
return 403;
}
#PHP-FPM Configuration NGINX
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
try_files $uri /index.php;
expires max;
log_not_found off;
}
location = /_.gif {
expires max;
empty_gif;
}
location ^~
^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {
deny all;
}
location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-
config|resources|serialized|tests)/ {
internal;
}
# Security for 'image' directory
location ~* images/.*.(html|htm|shtml|php)$ {
allow all;
types {}
default_type text/plain;
}
# Security for 'image' directory
location ^~ /images/ {
allow all;
try_files $uri /index.php;
}
}
これが権限の問題であるように見えたり、php-fpmデーモンが重複したファイルパスなどを探しているようです。次のように、nginx conf.dファイルを介してFPMに絶対パスを渡そうとしました。
fastcgi_param SCRIPT_FILENAME /var/www/mediawiki/index.php;
役に立たない。したがって、正しい方向を指していることはわかりますが、まだ同じエラーが発生し、権限の問題があると信じています。私も次のことを試しました。
setenforce 0
しかし、それも動作しません。 index.phpファイルを含むディレクトリ全体にchmod 777があります。
いくつかの背景:
私は新しいバージョンのPHP(7.0+)を必要とするWikimedia拡張をインストールしたいと思い、CentOS 7の基本インストールに付属の5.4を実行しています。 PHPのアップデート方法がわからないので、誤ってphp*を削除し、remiからphp73をインストールして削除し、php 5.4を再インストールしましたされました。基本パッケージ。しかし、その過程で.confとphp.iniファイルが失われました。
編集する:
/var/log/nginx/error.log ブラウザで私のウェブサイトにアクセスするとき:
2019/01/22 16:58:19 [error] 10876#0: *1 FastCGI sent in stderr: "Unable to
open primary script: /var/www/mediawiki/index.php (No such file or
directory)" while reading response header from upstream, client:
10.11.190.1, server: wiki.example.com, request: "GET / HTTP/1.1",
upstream: "fastcgi://unix:/var/run/php/php-fpm/php-fpm.sock:", host:
"wiki.example.com"
/var/log/php-fpm/www-access.log:
- 22/Jan/2019:16:58:19 -0700 "GET /index.php" 404
/var/www/mediawiki/index.php /var/www/mediawiki /index.php /index.php
答え1
cgi.fix_pathinfo=0
問題を解決しました。質問について正しい方向を教えてくれたChristopherに感謝します。php.ini。
彼の具体的な質問では問題は解決されませんでしたが、近くのcgi.fix_pathinfo=0
設定を試みました。php.iniそして、PHP-FPMからエラー以外のエラーメッセージを受け取ることができました/var/www/mediawiki/index.php
。 。
この問題を解決するのに5日かかりました。クリストファーのご協力ありがとうございます!
私は最終的に次の行にコメントしました。php.ini:
;cgi.fixpathinfo=0
;user_dir=/var/www/mediawiki **This is the one that changed the error message
変更後、5.4> 7.1にアップグレードしたときにインストールされていないInvalidArgumentException
エントリが発生しました。php-mysqlnd
一度インストールすると、Mapsoka、Wikiがバックアップされ、実行されました。
建物の中を5周回してみたいです。私に正しい方向を教えてくれたChristopherにもう一度感謝します!
ヨルダン