Подготовка Nginx и PHP-FPM окружения для запуска Wordpress-сайта

И это видимо самая типовая задача из тех с которыми мне приходится сталкиваться, но я на всякий случай ее опишу.

 
 
Логотип GITA-DEV

Автор: Черноусов Антон aka Gita-Dev
Опубликовано: 07 Ноя 2018 (последние правки 2 месяца)

apt-get aptitude dev fpm install live mysql nginx php ssl tar

Устанавливаем  PHP-FPM и Nginx:

# aptitude install nginx
# aptitude install php-fpm

Устанавливаем дополнительные модули PHP:

# aptitude install php7.0-mysql php-zip
# aptitude install php-cli php-dev php-cgi php-mysql php-xmlrpc php-curl php-gd php-pear php-imap php-mcrypt php-pspell

Конфигурация Nginx для запуска Wordpress как PHP-FPM приложения выглядит следующим образом:

server {
    listen 80;
    server_name staging.avtoshkola-vl.ru;
    return 301 https://staging.avtoshkola-vl.ru$request_uri;
}

server {
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/staging.avtoshkola-vl.ru/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/staging.avtoshkola-vl.ru/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot

    server_name staging.avtoshkola-vl.ru;

    access_log /var/log/nginx/staging.avtoshkola-vl.ru.log;
    error_log /var/log/nginx/staging.avtoshkola-vl.ru-error.log;

    #add_header Strict-Transport-Security "max-age=63072000;";
    client_max_body_size 256M;

    root /var/www/staging.avtoshkola-vl.ru/;
    index index.php;

    gzip on; # включаем сжатие gzip
    gzip_disable "msie6";
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

    location ~ /\. {
        deny all;
    }

    location ~* /(?:uploads|files)/.*\.php$ {
        deny all; # запрет для загруженных скриптов
    }

    location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
        access_log off;
        log_not_found off;
        expires max; # кеширование статики
    }

    location / {
        try_files $uri $uri/ /index.php?$args; # permalinks
    }

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

Дополнительно для работы Wordpress требуется установить Mysql:

# add-apt-repository -y ppa:ondrej/mysql-5.6
# apt-get update
# aptitude install mysql-server-5.7

Опционально можно использовать GUI для Mysql (для локальной разработки):

# aptitude install mysql-workbench

Похожие статьи

Установка облачного хранилища NextCloud в окружение Nginx+PHP-FPM

Установка облачного хранилища NextCloud в окружение Nginx+PHP-FPM

Представляем вашему вниманию подробную инструкцию по настройке NextCloud (с установкой плагинов и ssl-сертификатов для реализации защищенного https-протокола). Nextcloud - пакет клиент-серверного программного обеспечения для создания облачного хранилища. Фактически, программное обеспечение аналогично DropBox, Яндекс.Диск и GoogleDrive, но при этом является отрытым ПО и может быть установлено на вашем сервере и интегрироваться с сервисами компании, такими как Active Directory. Функционал облачного хранилища может быть расширен при помощи плагинов и при некотором желании из облачного хранилища можно построить небольшую CRM.


Обновление PHP до версии 7.2 в Debian Jessie (Debian GNU/Linux 8.11)

Обновление PHP до версии 7.2 в Debian Jessie (Debian GNU/Linux 8.11)

Сегодня рассмотрим довольно типовую задачу которую приходится решать довольно часто последнее время и я решил ее задокументировать, чтобы в дальнейшем просто следовать подготовленному плану. Как вы наверное поняли, я буду обновлять PHP в Debian Jessie до текущей стабильной версии.


Отзывы и комментарии