Инструкция по установке WordPress на Ubuntu 20.04 с использованием Nginx, MariaDB и PHP7.4 (LEMP-стек)

В этом пособии описывается процесс установки WordPress на Ubuntu 20.04 с использованием Nginx, MariaDB и PHP7.4 (LEMP-стек). WordPress считается самой востребованной CMS в мире, и по некоторым данным, свыше трети всех сайтов сегодня работают на этой платформе. В репозиториях Ubuntu 20.04 уже доступен PHP7.4, с которым WordPress функционирует без проблем.

Начальные условия

Для выполнения данного руководства потребуется сервер с Ubuntu 20.04 и минимум 1 ГБ оперативной памяти. Если вам нужен виртуальный частный сервер (VPS), вы можете воспользоваться этой ссылкой для получения $50 бесплатного кредита на DigitalOcean (действует только для новых пользователей). Если вы уже зарегистрированы на DigitalOcean, то можете воспользоваться другой ссылкой для получения $50 бесплатного кредита на Vultr (также только для новых пользователей).

Вам потребуется доменное имя, чтобы пользователи могли вводить его в адресную строку браузера для перехода на ваш сайт. Я выбрал регистрацию своего домена через NameCheap, так как у них доступные цены, а защита конфиденциальности whois предоставляется бесплатно и навсегда.

Данное руководство рассчитано на пользователей, которые уже установили LEMP-стек на Ubuntu 20.04. Если вы этого еще не сделали, рекомендуем ознакомиться с соответствующим руководством.

  • Инструкция по установке стека LEMP (Nginx, MariaDB, PHP7.4) на Ubuntu 20.04

После окончания установки LEMP вернитесь на эту страницу и продолжайте чтение.

Загрузка WordPress

Подключитесь к серверу Ubuntu 20.04 через SSH и выполните обновление установленного программного обеспечения.

sudo apt update && sudo apt upgrade

Затем посетите страницу загрузки на wordpress. org и загрузите ZIP-архив. Чтобы получить прямую ссылку на файл, щелкните правой кнопкой мыши на кнопке загрузки и выберите опцию «Скопировать адрес ссылки».

install-wordpress-on-ubuntu-20.04

После этого в командной строке введите wget, а затем вставьте прямую ссылку для загрузки WordPress на ваш сервер с Ubuntu 20.04.

wget https://wordpress. org/latest. zip

Затем распакуйте zip-архив, используя следующую команду.

sudo apt install unzip sudo mkdir - p /usr/share/nginx sudo unzip latest. zip - d /usr/share/nginx/

Архив будет распакован в директорию /usr/share/nginx/. В ней будет создан новый каталог под названием wordpress (/usr/share/nginx/wordpress). Теперь мы можем переименовать его, как указано ниже, для более удобной идентификации каждого каталога. Замените example.com на ваше фактическое доменное имя.

sudo mv /usr/share/nginx/wordpress /usr/share/nginx/example.com

Формирование базы данных и учетной записи пользователя для сайта на WordPress.

Для доступа к оболочке MariaDB в качестве пользователя root воспользуйтесь следующей командой.

sudo mariadb - u root

sudo mysql - u root

После авторизации создайте базу данных для WordPress, используя следующую команду. Я обозначил её как wordpress, но вы можете выбрать любое название, например, название вашего сайта. (Не забудьте поставить точку с запятой в конце.)

Читайте также:  Раздел 5: Настройка записи DMARC для предотвращения подделки электронной почты с использованием вашего домена

create database wordpress;

Выполните следующую команду для создания пользователя базы данных, предназначенного для WordPress. Эта команда также предоставляет данному пользователю все права доступа к базе данных WordPress. Не забудьте заменить wpuser и your-password на желаемое имя пользователя и пароль.

grant all privileges on wordpressК сожалению, вы не предоставили текст для перефразирования. Пожалуйста, вставьте его, и я с радостью помогу вам.wpuser@localhost подтверждено с помощью 'your-password';

Удалите таблицу привилегий для применения изменений, а затем выйдите из оболочки MariaDB.

flush privileges; exit;

Конфигурация WordPress

Откройте каталог WordPress.

cd /usr/share/nginx/example.com/

Сделайте копию образца файла конфигурации и измените его название на wp-config.php.

server < listen 80; listen [::]:80; server_name www.example.com пример.comкорень /usr/share/nginx/example.com

/; индекс index.php index. html index. htm index. nginx-debian. html; расположение /

< try_files $uri $uri/ /index.php; >location ~ ^/wp-json/ < rewrite ^/wp-json/(.*?)$ /?rest_route=/$1 last; >location ~

  • /wp-sitemap.*.xml
  • < try_files $uri $uri/ /index.php$is_args$args; >error_page 404 /404.html; error_page 500 502 503 504 /50x. html; размер максимального тела клиента 20M; местоположение = /50x. html< root /usr/share/nginx/html; >location ~ \.php$ < fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; fastcgi_buffers 1024 4k; fastcgi_buffer_size 128k; # Добавить заголовки для обеспечения безопасности add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Permitted-Cross-Domain-Policies none; add_header X-Frame-Options "SAMEORIGIN"; >#включите сжатие gzip: gzip включен; gzip_vary включен; минимальная длина для сжатия 1000; уровень сжатия gzip 5; типы сжатия: application/json, text/css, application/x-javascript, application/javascript, image/svg+xml; gzip_proxied любой; # Долгий срок кэширования в браузере может ускорить повторные обращения к вашей странице location~

  • .(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$
  • < access_log off; log_not_found off; expires 360d; >Запретить доступ к скрытым файлам в указанной директории.~ /\.ht < access_log off; log_not_found off; deny all; >>

    Сохраните изменения в файле и закройте его. После этого проведите тестирование настроек Nginx.

    sudo nginx - t

    После успешного завершения тестирования перезапустите Nginx.

    sudo systemctl reload nginx

    Укажите ваше доменное имя в адресной строке браузера.

    example.com

    example.com/wp-admin/install.php

    Вы станете свидетелем процесса установки WordPress. Выберите предпочитаемый язык.

    install-wordpress-ubuntu-17.10-lemp

    Если мастер установки не появляется, возможно, вам необходимо установить несколько расширений PHP7.

    sudo apt install php-imagick php7.4-fpm php7.4-mbstring php7.4-bcmath php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-json php7.4-cli php7.4-curl php7.4-zip

    После этого перезапустите PHP-FPM и Nginx. Теперь должен отображаться мастер установки.

    sudo systemctl reload php7.4-fpm nginx

    Прежде чем вводить личные данные в мастере установки, желательно активировать HTTPS для защиты от перехвата трафика.

    Активация HTTPS

    Для шифрования HTTP-трафика можно активировать HTTPS, установив бесплатный TLS-сертификат от Let’s Encrypt. Для установки клиента Let’s Encrypt (certbot) на сервер под управлением Ubuntu 20.04 выполните следующую команду.

    sudo apt install certbot python3-certbot-nginx

    Выполните данную команду, чтобы загрузить и установить TLS-сертификат.

    sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу помочь с обработкой адресов электронной почты. Если у вас есть другой текст для перефразирования, пожалуйста, предоставьте его! - d yourdomain.com,www.yourdomain.com

    • —nginx: Применить плагин для Nginx.
    • —согласие-с-условиями: Принять условия обслуживания.
    • —перенаправление: Обязательное применение HTTPS с редиректом 301.
    • —hsts: Внедрить заголовок Strict-Transport-Security во все HTTP-ответы. Это заставляет браузер всегда применять TLS для данного домена, обеспечивая защиту от атак типа SSL/TLS Stripping.
    • —staple-ocsp: Активирует OCSP Stapling. Сервер прикрепляет действительный ответ OCSP к сертификату во время процесса TLS.
    • Электронный адрес, который применяется для регистрации и восстановления доступа.
    • Флаг — d используется после списка доменных имен, которые необходимо разделить запятыми. Вы можете указать до 100 доменных имен.

    Сертификат теперь необходимо получить и установить автоматически.

    Теперь, если вы обновите мастер установки WordPress, вы заметите, что HTTP будет автоматически перенаправляться на HTTPS.

    Завершите процесс установки, следуя инструкциям мастера установки.

    Зарегистрируйте аккаунт администратора и нажмите на кнопку «Установить WordPress».

    Установка WordPress на Ubuntu 20.04 с использованием PHP версии 7.4.

    Теперь ваш новый сайт на платформе WordPress успешно настроен.

    установить WordPress на Ubuntu 20.04 с использованием LAMP

    Как осуществить перенаправление с www на non-www (или наоборот)

    Мы уже включили перенаправление HTTP на HTTPS, осталось только перенаправить www на non-www или наоборот. Это очень просто. Просто перейдите в Панель управления WordPress > Настройки >Настройте общие параметры, выбрав желаемую версию вашего сайта (www или non-www) в полях Адрес WordPress и Адрес сайта. Не забудьте указать префикс https://.

    Перенаправление Apache с использованием Let's Encrypt.

    Как отправлять электронные письма в WordPress?

    Вашему WordPress-сайту требуется отправка электронных писем, включая уведомления о регистрации аккаунтов, сбросе паролей и комментариях. Вместо того чтобы полагаться на дорогие сторонние сервисы, такие как Gsuite, для создания профессиональных почтовых адресов, вы можете воспользоваться этим руководством по iRedmail.Оно поможет вам настроить собственный почтовый сервер с вашим доменным именем, что позволит иметь неограниченное количество почтовых ящиков и отправлять бесконечное число писем без значительных затрат.

    Рекомендуется размещать почтовый сервер и WordPress на отдельных виртуальных частных серверах. Это поможет избежать замедления работы вашего сайта WordPress из-за почтового сервера. Кроме того, если оба сервера находятся на одном хостинге, IP-адрес вашего сайта может быть раскрыт, что увеличивает риск атак хакеров. В таком случае злоумышленники могут игнорировать вашу CDN (сеть доставки контента) и направить DDoS-атаку напрямую на ваш основной сервер.

    Как только ваш почтовый сервер будет настроен и запущен, вы можете установить плагин SMTP в WordPress, чтобы он мог подключаться к вашему почтовому серверу и отправлять электронные письма. Перейдите в панель управления WordPress ->Для установки нового плагина нажмите на кнопку «Добавить новый».

    Добавить новый плагин в WordPress

    В следующем шаге введите WP Mail SMTP в строку поиска. Установите и активируйте плагин WP Mail SMTP, разработанный компанией WPForms.

    WP Mail SMTP

    Обновите страницу панели управления WordPress, и вы заметите WP Mail SMTP в меню слева. Кликните на него и выберите опцию «Настройки».

    настройки wp mail smtp

    Прокрутите вниз до раздела Mailer. По умолчанию установлен PHP mailer. Необходимо изменить его на Другой SMTP.

    отправка электронных писем в WordPress

    Прокрутите страницу вниз, чтобы ввести параметры SMTP.

    • Укажите имя вашего почтового сервера.
    • Выберите метод шифрования TLS.
    • Применяйте порт 587.
    • Активируйте процесс аутентификации.
    • Укажите адрес электронной почты вашего домена и пароль.

    Настройка собственного почтового сервера на WordPress.

    После того как настройки будут сохранены, вы можете проверить отправку электронной почты. Для этого выйдите из панели управления WordPress и нажмите на ссылку «Забыли пароль?», чтобы инициировать отправку письма для сброса пароля.

    WordPress: забыли пароль?

    Повысить допустимый размер загружаемых файлов.

    По умолчанию в медиатеку WordPress можно загружать файлы, включая изображения и PDF-документы, размером не более 2 МБ. Чтобы изменить этот предел, необходимо внести изменения в файл конфигурации PHP.

    sudo nano /etc/php/7.4/fpm/php. ini

    Определите следующую строку (строка 846).

    upload_max_filesize = 2M

    Пожалуйста, измените значение следующим образом:

    upload_max_filesize = 20M

    Далее перейдите к следующей строке (строка 694).

    post_max_size = 8M

    Установите предел на максимальный объём данных POST, который может обрабатывать PHP.

    post_max_size = 20M

    Сохраните файл и закройте его. В качестве другого варианта вы можете воспользоваться двумя следующими командами для изменения значения без необходимости вручную открывать файл.

    sudo sed - i 's/upload_max_filesize = 2M/upload_max_filesize = 20M/g' /etc/php/7.4/fpm/php. ini sudo sed - i 's/post_max_size = 8M/post_max_size = 20M/g' /etc/php/7.4/fpm/php. ini

    После этого перезапустите PHP-FPM.

    sudo systemctl restart php7.4-fpm

    Nginx накладывает ограничения на размер загружаемых файлов. По умолчанию максимальный размер, разрешённый для загрузки, составляет 1 МБ. Если вы хотите разрешить загрузку более крупных файлов на ваш сайт WordPress, необходимо внести изменения в файл конфигурации Nginx.

    sudo nano /etc/nginx/conf.d/example.com.conf

    Максимальный размер файла уже установлен в данном документе, как показано ниже:

    client_max_body_size 2M;

    Если вам нужно, вы можете внести изменения, например, установить значение на 20M.

    client_max_body_size 20M;

    Сохраните файл и закройте его. После этого перезапустите Nginx, чтобы применить изменения.

    sudo systemctl reload nginx

    Вот следующие этапы.

    Надеюсь, этот гид оказался полезным для вас при установке WordPress на Ubuntu 20.04 с использованием Nginx, MariaDB и PHP7.4 (LEMP-стек). Как и прежде, если вы считаете этот материал ценным, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать дополнительные советы и рекомендации.

    Создание резервных копий является критически важным в ситуациях, связанных с взломами, авариями в дата-центрах и другими подобными происшествиями. Необходимо разработать четкую стратегию резервного копирования для вашего сайта на WordPress.

    • Создание резервной копии и восстановление баз данных MariaDB с помощью командной строки
    • Применяйте Duplicati для создания резервных копий файлов на системах Debian, Ubuntu и Linux Mint.

    Оптимизация работы и наблюдение за серверами на базе Linux.

    • Увеличить производительность сети на Ubuntu можно просто, активировав TCP BBR.
    • HTTP/2: что это такое и как активировать на Nginx
    • Отслеживание работы сервера на Linux с использованием Netdata (2022)

    Инструмент командной строки для WordPress

    • Для управления вашим сайтом WordPress вам может понадобиться воспользоваться инструментом командной строки WP-CLI.
    • С помощью WPScan вы можете проводить проверку на уязвимости вашего сайта на платформе WordPress.