Как установить Linux, Nginx, MySQL, PHP (LEMP) на Ubuntu — TechCave

Оглавление Как установить Linux, Nginx, MySQL, PHP (LEMP) на Ubuntu Как установить WordPress на Ubuntu с LEMP (Linux, Nginx, MySQL, PHP) Как привязать домен к сайту на примере хостинга Fornex.

Как установить Linux, Nginx, MySQL, PHP (LEMP) на Ubuntu

FORNEX – Хостинг с немецким качеством

Как установить Linux, Nginx, MySQL, PHP (LEMP) на Ubuntu

Оглавление

  1. Как установить Linux, Nginx, MySQL, PHP (LEMP) на Ubuntu
  2. Как установить WordPress на Ubuntu с LEMP (Linux, Nginx, MySQL, PHP)
  3. Как привязать домен к сайту на примере хостинга Fornex.com

Введение

Программный стек LEMP — это группа программного обеспечения, которая может использоваться для обслуживания динамических веб-страниц и веб-приложений. Это аббревиатура, которая описывает операционную систему Linux с веб-сервером Nginx. Данные хранятся в базе MySQL, а динамическая обработка происходит с помощью PHP.

Это руководство показывает, как установить стек LEMP на сервере Ubuntu 18.04.

Устанавливать будем на хостинг Fornex.com. Почему на SSD VPS Fornex?

  • Во первых это известный, проверенный временем хостинг с доступными ценами и немецким качеством (сервера размещены в Германии, но также можно выбрать размещение в России, Украине и Нидерландах).
  • Если вам необходимо хранить персональные данные на вашем сайте (вы подпадаете под закон о хранении персональных данных на территории России), то хостинг предоставит вам сервера находящиеся на территории РФ.
  • Во вторых это быстрая русскоязычная техподдержка, что очень важно новичкам.
  • Есть хорошая защита от DDoS атак. Не стоит забывать, у всех сайтов есть конкуренты, и многие из них готовы использовать некрасивые методы.
  • Также многие известные сайты пользуются этим хостингом, такие как, Pikabu, Yaplakal, LetyShops, Ad1, Admitad. Почему они выбрали именно этот хостинг? Я могу ответить и на этот вопрос. Дело в том, что современные поисковики, такие как Google и Яндекс учитывают скорость сайта как один из факторов ранжирования. Чем быстрее сайт, тем выше его позиции в выдаче поисковых систем. Хотите быть в ТОПе выбирайте качественный быстрый хостинг.

В этой статье мы поговорим о том как настроить высокопроизводительный стек LEMP, в следующей мы установим на наш готовый сервер движок WordPress.

И так приступим.

Шаг 1 — Подключаемся к нашему VPS серверу

Заходим на хостинг, кликаем по вкладке «VPS» и выбираем наш сервер.

Список виртуальных серверов | FORNEX

Затем переходим во вкладку «Настройки», получаем IP адрес сервера, логин и пароль, для доступа по SSH.

Настройки виртуального сервера | FORNEX

Теперь мы можем подключиться по SSH к нашему VPS. Если у вас Linux или Mac OS можете воспользоваться для подключения стандартным терминалом просто набрав команду.

ssh root@IP_address

Если Windows то я рекомендую использовать SSH клиент под названием PuTTY.

PuTTY — SHH и Telnet клиент для Windows

Шаг 2 — Обновляем Ubuntu

Для того чтобы установить последние обновления необходимо ввести следующие команды.

apt update
apt upgrade
apt autoclean
apt autoremove

Шаг 3 — Установка веб-сервера Nginx

Чтобы отображать веб-страницы посетителям нашего сайта, мы собираемся использовать Nginx, быстрый и современный веб-сервер.

Все программное обеспечение, используемое в этой процедуре, будет взято из репозиториев пакетов Ubuntu по умолчанию. Это означает, что мы можем использовать пакет apt для установки.

Установить Nginx можно командой.

apt install nginx

Важно. Как мы уже говорили, чем лучше скорость сайта, тем лучше он ранжируется в поисковиках. Поэтому настоятельно рекомендую ознакомиться со статьей по сборке Nginx с модулем ngx_pagespeed. Данный модуль уменьшает размер страниц и повышает скорость сайта. Несмотря на то, что инструкция написана для Debian, она также должна работать и на Ubuntu. Такая оптимизация позволила мне набрать 99 балов на Google PageSpeed Insights.

После установки Nginx автоматически запустится, поэтому проверить установку можно просто введя ваш IP адрес в браузере.

http://server_domain_or_IP

Если вы все сделали правильно, то должны увидеть следующее.

Приветственная страница Nginx

Шаг 4 — Установка MySQL для управления данными сайта

Теперь, когда у вас есть веб-сервер, вам нужно установить 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.

Шаг 5 — Установка PHP и настройка Nginx для использования 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;
        }
}

Вот что делает каждая из этих директив и блоков:

  • listen — определяет, какой порт будет прослушивать Nginx. В этом случае он будет прослушивать порт 80, порт по умолчанию для HTTP.
  • root — определяет корень, в котором хранятся файлы, обслуживаемые веб-сайтом.
  • index — Настраивает Nginx для определения приоритетности файлов с именем index при запросе файла.
  • server_name — определяет, какой блок сервера должен использоваться для данного запроса к вашему серверу. Направьте эту директиву на доменное имя вашего сервера или публичный IP-адрес.
  • location / — Первый блок location содержит директиву try_files, которая проверяет наличие файлов, соответствующих запросу URI. Если Nginx не может найти подходящий файл, он вернет ошибку 404.
  • location ~ \.php$ — Этот блок location фактически занимается обработкой PHP, указывая Nginx на файл конфигурации fastcgi-php.conf и файл php7.2-fpm.sock, который объявляет, какой сокет связан с php-fpm.
  • location ~ /\.ht — последний блок location имеет дело с файлами .htaccess, которые Nginx не обрабатывает. При добавлении директивы deny all, если какие-либо файлы .htaccess окажутся в корне документа, они не будут отданы посетителям.

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

Шаг 6 — Создание файла PHP для проверки конфигурации

Ваш стек 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.

Оглавление

12:35
137

RSS
Нет комментариев. Ваш будет первым!

Авторизация

Войти с помощью

Пользователи

GeekBrains

КАРКАМ

Нетология