Search code examples
phpnginxjoomlapathfastcgi

Debian 9 + PHP7.0-FPM + NGINX 1.10.3-1 path_info issue


I'm using DigitalOcean Debian 9 + PHP 7.0 + NGINX 1.10.3-1 and trying to install Joomla! CMS, but at the very first installation screen (example.com/installation/index.php) I've noticed a broken image (which is the Joomla logo), and it looks like this:

enter image description here

img src attribute for that image contains "/template/images/joomla.png", but the image is actually located at "/installation/template/images/joomla.png" which means I'm missing the "/installation/" part.

Here is my nginx conf part for the PHP:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}

The "cgi.fix_pathinfo" line at "/etc/php/7.0/fpm/php.ini" is uncommented and the value changed to 0.

And the "/snippets/fastcgi-php.conf" file contains the following:

# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+\.php)(/.+)$;

# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;

# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;

fastcgi_index index.php;
include fastcgi.conf;

I've noticed that the image is loading once I comment the PATH_INFO part:

set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;

But all my further attempts to figure out the root of the problem are unsuccessful, please help me to fix this.


Solution

  • One of our clients had the same problem, and we explained how to fix it in this post. Essentially, your try_files line is incorrect.

    By the way, the cgi.fix_pathinfo must be set to 1, and not to zero (it defaults to 0, so uncommenting it does not solve the problem.)