Установка WordPress на Ubuntu 24.04 с использованием Nginx, MariaDB и PHP 8.3 (LEMP)

WordPress считается самой востребованной системой управления контентом в мире. По оценкам, более трети современных веб-сайтов функционируют на платформе WordPress.php 8.3 доступен в репозиториях Ubuntu 24.04, и последняя версия WordPress полностью совместима с этой версией PHP.

Предварительные требования

Чтобы воспользоваться этим руководством, вам понадобится операционная система Ubuntu 24.04, установленная на удаленном сервере. Если вам нужен виртуальный частный сервер (VPS), я советую обратить внимание на Kamatera VPS, который предоставляет:

  • Бесплатный тестовый период на 30 дней.
  • Стоимость начинается от 4 долларов в месяц (1 ГБ оперативной памяти).
  • Производительный VPS, основанный на технологии KVM.
  • Девять дата-центров расположены в различных странах, включая США, Канаду, Великобританию, Германию, Нидерланды, Гонконг и Израиль.

Воспользуйтесь руководством, представленным ниже, чтобы настроить свой сервер Linux VPS на платформе Kamatera.

  • Создание VPS-сервера на базе Linux в Kamatera.

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

Этот учебник рассчитан на тех, кто уже установил стек LEMP на Ubuntu 24.04. Если у вас его еще нет, пожалуйста, изучите следующий материал.

  • Установка LEMP-стека (Nginx, MariaDB, PHP 8.3) на Ubuntu 24.04.

После того как установка LEMP будет завершена, вернитесь на эту страницу и продолжайте изучение.

Загрузите WordPress

Подключитесь к вашему серверу Ubuntu 24.04 с помощью SSH и обновите установленное программное обеспечение.

sudo apt update && sudo apt upgrade - y

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

Установите WordPress на Ubuntu 24.04 с использованием LEMP.

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

Читайте также:  Backup с помощью archiso в Linux

create database wordpress;

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

create user wpuser@localhost был идентифицирован с помощью 'your-password';

Предоставляет пользователю полный доступ ко всем возможностям базы данных WordPress.

grant all privileges on wordpresswpuser@localhost;

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

flush privileges; exit;

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

Откройте папку WordPress.

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

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

sudo cp wp-config-sample.php wp-config.php

Теперь измените новый конфигурационный файл с помощью текстового редактора в командной строке, такого как Nano.

sudo nano wp-config.php

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

/** Имя базы данных для WordPress */ define('DB_NAME', 'database_name_here

phpusername_hereПароль для базы данных MySQL определяется следующим образом: define(‘DB_PASSWORD’, ‘password_here‘);

Прокрутите страницу вниз, чтобы увидеть следующую строку.

$table_prefix = 'wp_';

По умолчанию все имена таблиц в базе данных WordPress начинаются с префикса wp_. Для повышения уровня безопасности рекомендуется изменить этот префикс на другой. Лучше использовать случайные символы, как указано ниже.

$table_prefix = '9OzB3g_';

Закройте файл после его сохранения. В текстовом редакторе Nano для сохранения файла нажмите Ctrl+O, затем подтвердите нажатием Enter. После этого используйте комбинацию Ctrl+X, чтобы выйти из редактора.

Так как данный файл защищён паролем, мы вводим следующую команду, чтобы гарантировать, что только его владелец имеет доступ к его содержимому.

sudo chmod 640 wp-config.php

Также необходимо назначить пользователя Nginx (www-data) владельцем каталога сайта WordPress с помощью следующей команды.

sudo chown www-data:www-data /usr/share/nginx/example.com/ - R

Настройка блока сервера Nginx для WordPress

Создадим файл конфигурации блока сервера в папке /etc/nginx/conf.d/. Имя этого файла должно иметь окончание.conf.

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

Сохраните указанные тексты в документ. Подмените красные строки на название вашего домена. Убедитесь, что вы создали A-записи для вашего домена в DNS-менеджере.

server < listen 80; listen [::]:80; server_name www.example.com пример.comкорень /usr/share/nginx/example.com/n; index index.php index. html index. htm index. nginx-debian. html; файл_ошибок /var/log/nginx/wordpress. error; файл_доступа /var/log/nginx/wordpress. access; местоположение /< 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; location = /50x. html< root /usr/share/nginx/html; >location ~ \.php$ < fastcgi_pass unix:/run/php/php8.3-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; >

nginx~

  • .(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. Выберите желаемый язык.

Читайте также:  Как установить PhotoQT Image Viewer на Ubuntu 16.04 и Linux Mint 18

install-wordpress-ubuntu-17.10-lemp

Если мастер установки не виден, скорее всего, вам потребуется установить дополнительные расширения PHP.

sudo apt install php-imagick php8.3-fpm php8.3-mbstring php8.3-bcmath php8.3-xml php8.3-mysql php8.3-common php8.3-gd php8.3-cli php8.3-curl php8.3-zip

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

sudo systemctl reload php8.3-fpm nginx

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

Активируем HTTPS

Для шифрования HTTP-трафика можно активировать HTTPS, установив бесплатный TLS-сертификат от Let’s Encrypt. Для этого выполните следующую команду, чтобы установить клиент Let’s Encrypt (certbot) на сервер Ubuntu 24.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-стриминга.
  • —staple-ocsp: Активирует OCSP Stapling. При этом действительный ответ OCSP добавляется к сертификату, который сервер предоставляет в процессе TLS-соединения.
  • Электронный адрес, который применяется для регистрации и связи в процессе восстановления.
  • Флаг — d следует с перечнем доменных имен, разделённых запятыми. Можно указать до 100 доменных имен.

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

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

Завершение установки при помощи помощника настройки

Зарегистрируйте учетную запись администратора и нажмите на кнопку для установки WordPress.

WordPress на Ubuntu 20.04 с PHP 7.4.

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

установить WordPress на Ubuntu 24.04 LTS

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

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

перенаправление apache с letsencrypt

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

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

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

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

Читайте также:  Как установить и настроить PyCharm в Ubuntu шаг за шагом

установить новый плагин в 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 утерян

Повышение предела на размер загружаемых файлов

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

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

Перейдите к строке 850. В текстовом редакторе Nano для этого нажмите Ctrl+/ и введите 850.

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/8.3/fpm/php. ini sudo sed - i 's/post_max_size = 8M/post_max_size = 20M/g' /etc/php/8.3/fpm/php. ini

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

sudo systemctl restart php8.3-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 24.04 с использованием Nginx, MariaDB и PHP 8.3 (LEMP-стек). Если информация была вам полезна, подписывайтесь на нашу бесплатную рассылку, чтобы получать больше полезных советов и рекомендаций.

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

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

Оптимизация и контроль производительности сервера на Linux

  • Можно улучшить производительность сети в Ubuntu, активировав TCP BBR.
  • HTTP/2 — это обновленная версия протокола передачи гипертекста, которая улучшает производительность веб-сайтов за счет более эффективной загрузки ресурсов. Чтобы активировать HTTP/2 на сервере Nginx, необходимо убедиться, что сервер поддерживает данную версию протокола и работает через HTTPS. Затем в файле конфигурации Nginx нужно внести изменения, добавив директивуhttp2в блоке настройки виртуального хоста. После этого перезапустите сервер для применения изменений.
  • Анализ производительности сервера на базе Linux с использованием Netdata (2022)

Командная строка для управления WordPress

  • Также доступен инструмент командной строки WP-CLI, который позволяет вам управлять вашим сайтом на WordPress.
  • WPScan позволяет проверить ваш сайт на наличие уязвимостей в WordPress.