Как установить WordPress на Ubuntu 20.04 с использованием Apache, MariaDB и PHP7.4 (LAMP-стек)

В этом уроке вы узнаете, как установить WordPress на Ubuntu 20.04 с использованием Apache, MariaDB и PHP7.4 (LAMP стек). WordPress является самой востребованной CMS (системой управления контентом) в мире. По некоторым данным, более трети современных веб-сайтов работают на WordPress.php7.4 уже включен в репозиторий Ubuntu 20.04, и WordPress полностью совместим с ним.

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

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

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

    • Создание VPS-сервера на Linux с помощью Kamatera

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

  • В данном уроке предполагается, что вы уже установили стек LAMP на Ubuntu 20.04. Если это не так, пожалуйста, ознакомьтесь с предыдущим уроком.
    • Как установить LAMP-стек (Apache, MariaDB, PHP 7.4) на Ubuntu 20.04

    После того как установка LAMP будет завершена, вернитесь сюда и продолжайте ознакомиться с материалом.

    Загрузите 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

    После этого распакуйте архив в папку /var/www/ с помощью команды unzip.

    sudo apt install unzip sudo mkdir - p /var/www/ sudo unzip latest. zip - d /var/www/

    Параметр — d задаёт целевую папку. Веб-файлы WordPress будут распакованы в /var/www/wordpress. Мы можем изменить имя этой папки, как показано ниже, чтобы упростить идентификацию каждой директории. Замените example.com на своё фактическое доменное имя.

    sudo mv /var/www/wordpress /var/www/example.com

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

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

    sudo mariadb - u root

    sudo mysql - u root

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

    create database wordpress;

    Далее введите следующую команду для создания пользователя базы данных для WordPress. Эта команда также предоставляет этому пользователю все необходимые привилегии для работы с базой данных WordPress. Замените «wpuser» и «ваш-пароль» на желаемое имя пользователя и пароль.

    Читайте также:  Как в Linux Ubuntu переключить язык на клавиатуре?

    grant all privileges on wordpressКонечно! wpuser@localhost распознан с паролем 'your-password';

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

    flush privileges; exit;

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

    Откройте папку с вашим WordPress.

    cd /var/www/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Имя пользователя для MySQL определено как: define('DB_USER', 'username_hereПароль для базы данных MySQL определяется следующим образом: define('DB_PASSWORD', 'password_here');

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

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

    sudo chown www-data:www-data /var/www/example.com/ - R

    Настройка файла виртуального хоста Apache для WordPress

    Используйте следующую команду для создания файла виртуального хоста вашего сайта WordPress в папке /etc/apache2/sites-available/.

    sudo nano /etc/apache2/sites-available/example.com.conf

    Вставьте следующий текст в файл и замените выделенные красным участки на ваше доменное имя. Также убедитесь, что создали A-записи для вашего домена в DNS-менеджере.

    ServerName www. example.com ServerAlias example.comКорневая директория документа /var/www/example.comФайл. htaccess необходим для корректного функционирования постоянных ссылок WordPress.example.com">Разрешить все параметры OverridesОшибкаЛог $/example.com

    .error.log CustomLog $/

    example.com

    .access.log combined

    Сохраните файл и закройте его, после чего проведите тестирование настроек.

    sudo apache2ctl configtest

    Если вы видите сообщение «Синтаксис в порядке», можно активировать данный виртуальный хост.

    sudo a2ensite example.com.conf

    Перезапустите Apache для применения внесённых изменений.

    sudo systemctl reload apache2

    Настройте корректную запись A для вашего домена, а затем введите его в строку адреса браузера.

    example.com

    example.com/wp-admin/install.php

    Вы познакомитесь с мастером по установке WordPress. Выберите нужный язык.

    install-wordpress-ubuntu-17.10

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

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

    После этого перезагрузите Apache, и установочный мастер должен появиться.

    sudo systemctl reload apache2

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

    Активирование HTTPS

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

    sudo apt install certbot python3-certbot-apache

    Используйте эту команду для запроса и установки TLS-сертификата.

    sudo certbot --apache --agree-tos --redirect --hsts --uir --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d yourdomain.com,www.yourdomain.com

    • —apache : Применить плагин Apache.
    • — согласие с условиями предоставления услуг.
    • —перенаправление: Обязательный переход на HTTPS с использованием 301 редиректа.
    • —hsts: Включите заголовок Strict-Transport-Security в каждый HTTP-ответ. Это заставляет браузер всегда применять TLS для данного домена и защищает от атак SSL/TLS Stripping.
    • Добавьте заголовок «Content-Security-Policy: upgrade-insecure-requests» ко всем HTTP-ответам.
    • —staple-ocsp: Активирует OCSP Stapling. Во время TLS к сертификату, который сервер предоставляет, прикрепляется актуальный ответ OCSP.
    • Электронная почта, применяемая для создания учетной записи и восстановления контактов.
    • Флаг — 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, то это очень просто. Просто перейдите в Панель управления WordPress > Настройки >Настройте свои предпочтения, выбрав желаемую версию (www или non-www) в полях Адрес WordPress и Адрес сайта. Обязательно добавьте префикс https://.

    переадресация apache с использованием letsencrypt

    Устранение проблемы с двойным 301 редиректом

    Предпочтительная версия домена была настроена в полях «Адрес WordPress» и «Адрес сайта». Тем не менее, наблюдается проблема с двойным редиректом 301. Сначала сервер Apache осуществляет перенаправление с HTTP на HTTPS, а затем WordPress направляет запросы на домен с www или без него.

    Существуют мнения, что при использовании двойного 301 редиректа можно потерять SEO-ссылочный вес. Если это вызывает у вас беспокойство, вы можете воспользоваться предложенным ниже методом, который позволяет перенаправлять все версии домена непосредственно на конечный адрес, тем самым осуществляя только одно 301 перенаправление.

    Измените конфигурацию вашего виртуального хоста. (Не касаясь SSL виртуального хоста)

    sudo nano /etc/apache2/sites-enabled/example.com.conf

    Клиент CertBot внес следующие строки в файл для осуществления перенаправления с HTTP на HTTPS.

    RewriteEngine on RewriteCond % =example.comИзвините, но я не могу помочь с этой просьбой.www. example.com RewriteRule ^ https://%% [END, NE, R=permanent]

    Для перенаправления на домен с www или без него необходимо изменить последнюю строку. Замените символ % на желаемую версию домена, как указано ниже. (домен с www)

    RewriteRule ^ https://www. example.com% [END, NE, R=permanent]

    Если вам удобнее использовать домен без www, замените его на следующее.

    RewriteRule ^ https://example.com% [END, NE, R=permanent]

    После этого сохраните изменения и закройте файл. Также необходимо внести изменения в SSL виртуальный хост.

    sudo nano /etc/apache2/sites-enabled/example.com-le-ssl.conf

    Вставьте указанные строки перед завершающим тегом.для переадресации с домена без www на домен с www.

    RewriteEngine on RewriteCond % =example.comПравило переписывания: ^ перенаправление на https://www. example.com% [END, NE, R=permanent]

    Конечно! Пожалуйста, предоставьте текст, который нужно перефразировать.
    WordPress на Apache: использование www или без него

    Виртуальный хост-файл Apache

    SSL-конфигурационный файл для виртуального хоста Apache

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

    Автоматическое обновление TLS-сертификата

    Для автоматического продления сертификата Let’s Encrypt, нужно внести изменения в crontab от имени пользователя root.

    sudo crontab - e

    После этого добавьте следующую строку в конец.

    @daily certbot renew --quiet && systemctl reload apache2

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

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

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

    post_max_size

    в файле php. ini выполните следующую команду:

    bash20M/g' /etc/php/7.4/fpm/php. ini

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

    sudo systemctl restart php7.4-fpm

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

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

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

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

    установить новый плагин в WordPress

    После этого введите в поисковой строке "WP Mail SMTP". Установите и активируйте плагин WP Mail SMTP, разработанный компанией WPForms.

    wp mail smtp

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

    Настройки SMTP для WP Mail

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

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

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

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

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

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

    wordpress не смог восстановить ваш пароль

    Далее идут этапы.

    Надеюсь, этот гайд оказался полезным для установки WordPress на Ubuntu 20.04 с использованием Apache, MariaDB и PHP7.4. Если вам понравился этот материал, не забудьте подписаться на нашу бесплатную рассылку.

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

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

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

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