Используем Redis для кэширования WordPress

Использование Redis для хранения кэша страниц WordPress является хорошей альтернативной использованию fastcgi_cache в Nginx. Для работы кэша нам необходимо установить Redis сервер и немного изменить настройки хоста в Nginx. За выполнения функции кэширования будет отвечать специальный PHP-скрипт.

Для работы скрипта необходимо наличие на сервере установленного PHP-модуля PhpRedis. Модуль можно собрать из исходников, либо установить в Debian напрямую из deb пакета с помощью команды apt-get. Данный вариант подходит в том случае, если вы используете на вашем сервере PHP5.

На своем сервере я использую PHP7. Несмотря на все мои попытки, собратьPphpRedis для работы в PHP7 мне так и не удалось. Поэтому, в качестве альтернативы для работы с сервером Redis я буду использовать PHP библиотеку Predis. Для тех кто хочет поэкспериментировать, вот ссылка на ветку PhpRedis для PHP7.

Скачать скрипт кеширования можно c репозитория на сайте GitHub. Необходимо скопировать все файлы в корневую директорию сайта. Для работы кешировани необходимо в конфигурацию виртуальнго хоста Nginx добавить следующие строки:

server {
    listen 80;

    server_name localhost;
    root /usr/share/nginx/html;
   
    index index.php;

    location /index.php {
        alias /www/codebeer.ru/wordpress/wp-cache.php;
    }

    location / {
        index wp-cache.php;
        try_files $uri $uri/ /wp-cache.php?$args;
    }

    location /wp-admin/ {
        index index.php;
        try_files $uri $uri/ /index.php$args;
    }

    rewrite /wp-admin$ $scheme::/$host$uri/ permanent;

    location ~ .php$ {
        try_files $uri = 404;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}