В этом пособии описывается процесс установки WordPress на Ubuntu 20.04 с использованием Nginx, MariaDB и PHP7.4 (LEMP-стек). WordPress считается самой востребованной CMS в мире, и по некоторым данным, свыше трети всех сайтов сегодня работают на этой платформе. В репозиториях Ubuntu 20.04 уже доступен PHP7.4, с которым WordPress функционирует без проблем.
Содержание статьи
- 1 Начальные условия
- 2 Загрузка WordPress
- 3 Формирование базы данных и учетной записи пользователя для сайта на WordPress.
- 4 Конфигурация WordPress
- 5 Активация HTTPS
- 6 Завершите процесс установки, следуя инструкциям мастера установки.
- 7 Как осуществить перенаправление с www на non-www (или наоборот)
- 8 Как отправлять электронные письма в WordPress?
- 9 Повысить допустимый размер загружаемых файлов.
- 10 Вот следующие этапы.
Начальные условия
Для выполнения данного руководства потребуется сервер с 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-архив. Чтобы получить прямую ссылку на файл, щелкните правой кнопкой мыши на кнопке загрузки и выберите опцию «Скопировать адрес ссылки».

После этого в командной строке введите 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, но вы можете выбрать любое название, например, название вашего сайта. (Не забудьте поставить точку с запятой в конце.)
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. Выберите предпочитаемый язык.
Если мастер установки не появляется, возможно, вам необходимо установить несколько расширений 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 успешно настроен.

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

Как отправлять электронные письма в WordPress?
Вашему WordPress-сайту требуется отправка электронных писем, включая уведомления о регистрации аккаунтов, сбросе паролей и комментариях. Вместо того чтобы полагаться на дорогие сторонние сервисы, такие как Gsuite, для создания профессиональных почтовых адресов, вы можете воспользоваться этим руководством по iRedmail.Оно поможет вам настроить собственный почтовый сервер с вашим доменным именем, что позволит иметь неограниченное количество почтовых ящиков и отправлять бесконечное число писем без значительных затрат.
Рекомендуется размещать почтовый сервер и WordPress на отдельных виртуальных частных серверах. Это поможет избежать замедления работы вашего сайта WordPress из-за почтового сервера. Кроме того, если оба сервера находятся на одном хостинге, IP-адрес вашего сайта может быть раскрыт, что увеличивает риск атак хакеров. В таком случае злоумышленники могут игнорировать вашу CDN (сеть доставки контента) и направить DDoS-атаку напрямую на ваш основной сервер.
Как только ваш почтовый сервер будет настроен и запущен, вы можете установить плагин SMTP в WordPress, чтобы он мог подключаться к вашему почтовому серверу и отправлять электронные письма. Перейдите в панель управления WordPress ->Для установки нового плагина нажмите на кнопку «Добавить новый».

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

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

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

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

После того как настройки будут сохранены, вы можете проверить отправку электронной почты. Для этого выйдите из панели управления 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.


