To set up Nginx to handle PHP-FPM FastCGI caching, you can follow these steps:
Install Nginx and PHP-FPM on your server if you haven't done so already. You can use your package manager (e.g., apt, yum, etc.) to install them.
Configure PHP-FPM to use a Unix socket by editing the PHP-FPM configuration file. Find the line that specifies the listen directive and change it to use a socket instead of a TCP address. For example:
listen = /var/run/php-fpm.sock
Restart PHP-FPM to apply the changes:
sudo service php-fpm restart
Configure Nginx to use PHP-FPM by editing the Nginx server block configuration file. Usually, it's located in /etc/nginx/sites-available/default
or /etc/nginx/conf.d/default.conf
. Add or modify the following lines within the server block:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php-fpm.sock;
}
Enable FastCGI caching by adding the following lines to the server block:
fastcgi_cache_path /path/to/cache levels=1:2 keys_zone=cache_zone:10m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header updating http_500;
fastcgi_cache_valid 200 302 10m;
fastcgi_cache_valid 404 1m;
fastcgi_ignore_headers Cache-Control Expires;
Add the following lines within the location block to enable FastCGI caching for PHP scripts:
fastcgi_cache cache_zone;
fastcgi_cache_valid 200 30s;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
add_header X-Cache $upstream_cache_status;
Test the Nginx configuration for syntax errors:
sudo nginx -t
If the configuration test is successful, reload Nginx to apply the changes:
sudo service nginx reload
Now, Nginx is set up to handle PHP-FPM FastCGI caching. Make sure to adjust the cache settings according to your needs and server resources.