For many many years, my PHP location in Nginx looked like this:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
I never questioned it, it's just been copy-pasted a billion times over and over from thousands of online resources with PHP and WordPress tutorials.
Today, while writing the Nginx configuration lesson, I decided to question it, and tried to understand what every single line does, and why it's necessary.
Turns out, it's mostly redundant. The fastcgi-php.conf
snippet was created for admins to avoid having to define a SCRIPT_FILENAME
(and PATH_INFO
in some older tutorials) manually, as well as include the default fastcgi_params
.
Not sure why so many tutorials decided to add this snippet, without removing the redundant bits. My new location block now looks like this:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
}
And this makes me happy.
Sometimes it's worth questioning things we do a certain way, simply because we've been doing them this way for many years.
Top comments (0)