0

I am getting a "FastCGI sent in stderr: "Unable to open primary script: /var/www/mediawiki/index.php (No such file or directory)"" error when I enter my wiki address in a browser bar. Here is my PHP-FPM www.conf file:

[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

Here is my nginx conf.d file:

# 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;
}

}

I feel like it is a permissions issue or the php-fpm daemon is looking in a redundant file path or something. I tried passing an absolute path to FPM via the nginx conf.d file by doing:

fastcgi_param SCRIPT_FILENAME /var/www/mediawiki/index.php;

to no avail. So I know I'm pointing it in the right direction but it still gives me the same error which makes me believe I have a permissions issue. I've also tried:

setenforce 0

but this also doesn't work. I've chmod 777 the entire directory up to and including the index.php file.

Some background:

I wanted to install a wikimedia extension which required a new version of php (7.0+) and I was running 5.4 since it came with the base install of CentOS 7. I wasn't familiar with how to update PHP so I accidentally yum remove php*, installed php73 from remi, removed that, re-installed php 5.4, and finally figured out I could yum update with remi-php71.repo enabled to update my base packages. However, I lost my .conf and php.ini files in this process.

Edit:

/var/log/nginx/error.log when I go to my website in a browser:

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

closed as unclear what you're asking by Scott, RalfFriedl, msp9011, Mr Shunz, Archemar Jan 24 at 13:05

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Added nginx error log and php-fpm access log. Thank you! – Jordan Jan 23 at 0:01
  • Just tried it; same exact error in both php-fpm access log and nginx error log. – Jordan Jan 23 at 15:13
1

I fixed it, thanks to Christopher for pointing me in the right direction with his query about cgi.fix_pathinfo=0 in php.ini. His specific question did not fix the issue, but I continued to play around with settings near cgi.fix_pathinfo=0 in php.ini and was able to get a different error message with NO error from PHP-FPM complaining about not being able to open /var/www/mediawiki/index.php. This problem took me a solid 5 days to resolve. I REALLY appreciate the help Christopher!

I ended up commenting the following lines in php.ini:

;cgi.fixpathinfo=0
;user_dir=/var/www/mediawiki    **This is the one that changed the error message

Once I changed that, I got a InvalidArgumentException which was due to me not installing php-mysqlnd when I upgraded from 5.4 > 7.1. Once I installed that, bam, wiki is back up and running. I feel like running around the building five times. Thanks again to Christopher for pointing me in the right direction!

Jordan

  • Yes I was bummed there wasn't more information in the error logs and/or fpm access logs. I already had the logs set to 'debug' -- the highest output verbosity available. Thanks again for your help Christopher. – Jordan Jan 25 at 17:09

Not the answer you're looking for? Browse other questions tagged or ask your own question.