Оглавление Как установить Linux, Nginx, MySQL, PHP (LEMP) на Ubuntu Как установить WordPress на Ubuntu с LEMP (Linux, Nginx, MySQL, PHP) Как привязать домен к сайту на примере хостинга Fornex.
Программный стек LEMP — это группа программного обеспечения, которая может использоваться для обслуживания динамических веб-страниц и веб-приложений. Это аббревиатура, которая описывает операционную систему Linux с веб-сервером Nginx. Данные хранятся в базе MySQL, а динамическая обработка происходит с помощью PHP.
Это руководство показывает, как установить стек LEMP на сервере Ubuntu 18.04.
Устанавливать будем на хостинг Fornex.com. Почему на SSD VPS Fornex?
В этой статье мы поговорим о том как настроить высокопроизводительный стек LEMP, в следующей мы установим на наш готовый сервер движок WordPress.
И так приступим.
Заходим на хостинг, кликаем по вкладке «VPS» и выбираем наш сервер.
Список виртуальных серверов | FORNEX
Затем переходим во вкладку «Настройки», получаем IP адрес сервера, логин и пароль, для доступа по SSH.
Настройки виртуального сервера | FORNEX
Теперь мы можем подключиться по SSH к нашему VPS. Если у вас Linux или Mac OS можете воспользоваться для подключения стандартным терминалом просто набрав команду.
ssh root@IP_address
Если Windows то я рекомендую использовать SSH клиент под названием PuTTY.
PuTTY — SHH и Telnet клиент для Windows
Для того чтобы установить последние обновления необходимо ввести следующие команды.
apt update
apt upgrade
apt autoclean
apt autoremove
Чтобы отображать веб-страницы посетителям нашего сайта, мы собираемся использовать Nginx, быстрый и современный веб-сервер.
Все программное обеспечение, используемое в этой процедуре, будет взято из репозиториев пакетов Ubuntu по умолчанию. Это означает, что мы можем использовать пакет apt для установки.
Установить Nginx можно командой.
apt install nginx
Важно. Как мы уже говорили, чем лучше скорость сайта, тем лучше он ранжируется в поисковиках. Поэтому настоятельно рекомендую ознакомиться со статьей по сборке Nginx с модулем ngx_pagespeed. Данный модуль уменьшает размер страниц и повышает скорость сайта. Несмотря на то, что инструкция написана для Debian, она также должна работать и на Ubuntu. Такая оптимизация позволила мне набрать 99 балов на Google PageSpeed Insights.
После установки Nginx автоматически запустится, поэтому проверить установку можно просто введя ваш IP адрес в браузере.
http://server_domain_or_IP
Если вы все сделали правильно, то должны увидеть следующее.
Теперь, когда у вас есть веб-сервер, вам нужно установить MySQL (систему управления базами данных) для хранения и управления данными для вашего сайта.
Установить MySQL можно набрав.
apt install mysql-server
Установка сервера MySQL на виртуальный сервер
Программное обеспечение базы данных MySQL установлено, но его конфигурация еще не завершена.
Чтобы обезопасить установку, MySQL поставляется со скриптом, который спрашивает, хотим ли мы изменить некоторые небезопасные значения по умолчанию. Запустите скрипт, набрав.
mysql_secure_installation
Этот скрипт спросит, хотите ли вы настроить VALIDATE PASSWORD PLUGIN.
Настройка VALIDATE PASSWORD PLUGIN
Введите Y для подтверждения, или что-либо еще, чтобы продолжить.
Если вы включили проверку, сценарий также попросит вас выбрать уровень проверки пароля. Имейте в виду, что если вы введете 2 — для самого сильного уровня — вы будете получать ошибки при попытке установить любой пароль, который не содержит цифр, прописных и строчных букв и специальных символов или который основан на общих словарных словах.
Настройка сложности пароля MySQL
Далее вам будет предложено ввести и подтвердить пароль root.
Создание нового пароля
Для остальных вопросов, вы должны нажать Y и нажимать клавишу ENTER в каждом вопросе. Это приведет к удалению некоторых анонимных пользователей и тестовой базы данных, отключению удаленных учетных записей root и загрузке этих новых правил, чтобы MySQL сразу учитывал сделанные нами изменения.
Обратите внимание, что в системах Ubuntu, работающих под управлением MySQL 5.7 (и более поздних версий), корневой пользователь MySQL настроен на аутентификацию с использованием плагина auth_socket по умолчанию, а не с паролем. Это позволяет повысить безопасность и удобство использования во многих случаях, но также может усложнить ситуацию, когда вам необходимо разрешить доступ внешней программы (например, phpMyAdmin).
Если вы используете плагин auth_socket для доступа к MySQL и это вас устраивает, то можете перейти сразу к шагу 5. Если, однако, вы предпочитаете использовать пароль при подключении к MySQL от имени пользователя root, вам необходимо переключить метод аутентификации с auth_socket на mysql_native_password. Для этого откройте приглашение MySQL из вашего терминала.
mysql
Затем, проверьте, какой метод аутентификации каждая из ваших учетных записей пользователей MySQL использует с помощью следующей команды.
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Проверка метода аутентификации пользователей MySQL
В этом примере вы можете видеть, что пользователь root действительно аутентифицируется с помощью плагина auth_socket. Чтобы настроить учетную запись root для аутентификации с помощью пароля, выполните следующую команду ALTER USER. Обязательно смените password на надежный пароль по вашему выбору.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Затем выполните FLUSH PRIVILEGES, чтобы применить ваши новые изменения.
mysql> FLUSH PRIVILEGES;
Снова проверьте методы аутентификации, используемые каждым из ваших пользователей, чтобы убедиться, что root больше не аутентифицируется с помощью плагина auth_socket.
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Проверка метода аутентификации пользователей MySQL
На картинке вы видите, что корневой пользователь MySQL теперь аутентифицируется с помощью пароля и вы можете выйти из оболочки MySQL.
mysql> exit
Примечание. После настройки вашего корневого пользователя MySQL для аутентификации по паролю вы больше не сможете получить доступ к MySQL с помощью команды mysql, использовавшейся ранее. Вместо этого вы должны выполнить следующее.
mysql -u root -p
После ввода пароля, который вы только что установили, вы увидите приглашение MySQL.
Теперь ваша система баз данных настроена, и вы можете перейти к установке PHP.
Теперь у вас установлен Nginx для обслуживания ваших страниц и MySQL для хранения ваших данных и управления ими. Однако у вас все еще нет ничего, что могло бы генерировать динамический контент.
Поскольку Nginx не содержит нативную обработку PHP, как некоторые другие веб-серверы, вам необходимо установить php-fpm, что означает «fastCGI process manager». Nginx будет передавать запросы PHP к этому обработчику.
Установите модуль php-fpm вместе с дополнительным вспомогательным пакетом php-mysql, который позволит PHP взаимодействовать с вашей базой данных базы данных. При установке будут загружены необходимые файлы ядра PHP. Сделайте это, набрав.
apt install php-fpm php-mysql
Теперь у вас установлены все необходимые компоненты стека LEMP, но вам все же нужно внести несколько изменений в конфигурацию, чтобы указать Nginx использовать процессор PHP для динамического содержимого.
Это делается на уровне серверных блоков (блоки серверов аналогичны виртуальным хостам Apache). Для этого создайте новый файл конфигурации блока сервера в каталоге /etc/nginx/sites-available/. В этом примере новый файл конфигурации блока сервера называется example.com, хотя вы можете назвать свой как хотите.
nano /etc/nginx/sites-available/example.com
Отредактировав новый файл конфигурации блока сервера, а не файл по умолчанию, вы сможете легко восстановить конфигурацию по умолчанию, если вам когда-либо понадобится.
Добавьте следующий контент, который был взят и слегка изменен из файла конфигурации блока сервера по умолчанию, в ваш новый файл конфигурации блока сервера.
/etc/nginx/sites-available/example.com
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name example.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Вот что делает каждая из этих директив и блоков:
После добавления этого содержимого сохраните и закройте файл. Включите новый блок сервера, создав символическую ссылку из нового файла конфигурации блока сервера (в каталоге /etc/nginx/sites-available/) на каталог /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Затем уберите ссылку на файл конфигурации по умолчанию из каталога /sites-enabled/.
unlink /etc/nginx/sites-enabled/default
Примечание. Если вам когда-либо понадобится восстановить конфигурацию по умолчанию, вы можете сделать это, воссоздав символическую ссылку.
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
Проверьте ваш новый файл конфигурации на наличие синтаксических ошибок, набрав.
nginx -t
Проверка файла конфигурации Nginx
Если сообщается о каких-либо ошибках, вернитесь и перепроверьте файл, прежде чем продолжить.
Когда вы будете готовы, перезагрузите Nginx, чтобы внести необходимые изменения.
systemctl reload nginx
На этом установка и настройка вашего стека LEMP завершена. Однако целесообразно проверить, что все компоненты могут взаимодействовать друг с другом.
Ваш стек LEMP теперь должен быть полностью настроен. Вы можете проверить его, чтобы убедиться, что Nginx может правильно передавать файлы .php на обработчик PHP.
Для этого используйте текстовый редактор, чтобы создать PHP-файл с именем info.php в корневом каталоге вашего документа.
nano /var/www/html/info.php
/var/www/html/info.php
<?php
phpinfo();
Когда вы закончите, сохраните и закройте файл.
Теперь вы можете посетить эту страницу в своем веб-браузере, набрав доменное имя или публичный IP-адрес вашего сервера, а затем /info.php.
http://your_server_domain_or_IP/info.php
Вы должны увидеть веб-страницу, созданную PHP, с информацией о вашем сервере.
Информация о PHP установленном на наш SSD VPS
Если вы видите страницу, которая выглядит следующим образом, вы успешно настроили обработку PHP с Nginx.
Убедившись, что Nginx правильно отображает страницу, лучше удалить созданный вами файл, поскольку он может дать не авторизованным пользователям некоторые подсказки о вашей конфигурации, которые могут помочь им попытаться взломать этот файл. Вы всегда можете восстановить этот файл, если он понадобится вам позже.
Сейчас удалите файл, набрав.
rm /var/www/html/info.php
Теперь у вас есть полностью настроенный и работающий стек LEMP на вашем сервере Ubuntu 18.04.
Вот и все. Если есть вопросы пишите их в комментариях.
В следующей статье мы установи на наш сервер движок WordPress.