
Ich erhalte die Fehlermeldung „FastCGI sent in stderr: „Primäres Skript konnte nicht geöffnet werden: /var/www/mediawiki/index.php (Keine solche Datei oder kein solches Verzeichnis)““, wenn ich meine Wiki-Adresse in eine Browserleiste eingebe. Hier ist meine PHP-FPM-Datei 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
Hier ist meine Nginx-conf.d-Datei:
# 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;
}
}
Ich habe das Gefühl, dass es sich um ein Berechtigungsproblem handelt oder dass der PHP-FPM-Daemon in einem redundanten Dateipfad oder so etwas sucht. Ich habe versucht, einen absoluten Pfad über die Datei nginx conf.d an FPM zu übergeben, indem ich Folgendes getan habe:
fastcgi_param SCRIPT_FILENAME /var/www/mediawiki/index.php;
ohne Erfolg. Ich weiß also, dass ich in die richtige Richtung leite, aber es wird immer noch derselbe Fehler angezeigt, was mich glauben lässt, dass ich ein Berechtigungsproblem habe. Ich habe auch Folgendes versucht:
setenforce 0
aber das funktioniert auch nicht. Ich habe das gesamte Verzeichnis bis einschließlich der Datei index.php mit chmod 777 ausgeführt.
Einige Hintergründe:
Ich wollte eine Wikimedia-Erweiterung installieren, die eine neue Version von PHP (7.0+) erforderte, und ich verwendete 5.4, da es mit der Basisinstallation von CentOS 7 geliefert wurde. Ich wusste nicht, wie man PHP aktualisiert, also habe ich versehentlich yum remove php* ausgeführt, php73 von remi installiert, das entfernt, PHP 5.4 neu installiert und schließlich herausgefunden, dass ich yum update mit aktiviertem remi-php71.repo ausführen konnte, um meine Basispakete zu aktualisieren. Dabei habe ich jedoch meine .conf- und php.ini-Dateien verloren.
Bearbeiten:
/var/log/nginx/error.log, wenn ich meine Website in einem Browser aufrufe:
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
Antwort1
Ich habe es behoben, danke an Christopher, der mich mit seiner Frage in die richtige Richtung gelenkt cgi.fix_pathinfo=0
hatphp.ini.
cgi.fix_pathinfo=0
Seine spezifische Frage hat das Problem nicht behoben, aber ich habe weiter mit Einstellungen in der Nähe herumgespieltphp.iniund konnte eine andere Fehlermeldung ohne Fehler von PHP-FPM erhalten, in der bemängelt wurde, dass es nicht geöffnet werden konnte /var/www/mediawiki/index.php
.
Ich habe volle 5 Tage gebraucht, um dieses Problem zu lösen. Ich bin Christopher WIRKLICH dankbar für seine Hilfe!
Ich habe am Ende die folgenden Zeilen kommentiert inphp.ini:
;cgi.fixpathinfo=0
;user_dir=/var/www/mediawiki **This is the one that changed the error message
Nachdem ich das geändert hatte, erhielt ich ein InvalidArgumentException
Problem, weil die Installation php-mysqlnd
bei der Aktualisierung von 5.4 auf 7.1 fehlschlug.
Nachdem ich das installiert hatte, zack, war das Wiki wieder einsatzbereit.
Ich habe das Gefühl, ich müsste fünfmal um das Gebäude herumlaufen. Nochmals vielen Dank an Christopher, der mir den richtigen Weg gezeigt hat!
Jordanien