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

12 set 2022 4 min di lettura
Как установить Linux Nginx MySQL PHP (LEMP) в Ubuntu 20.04 LTS
Indice dei contenuti

Введение

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

В этом руководстве мы установим LEMP на Ubuntu 20.04 LTS Focal Fossa.

Если вы хотите установить LEMP на удаленный сервер, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Теперь вы подключены к своему серверу, вы готовы начать установку LEMP.

Установка Nginx

Официальные репозитории пакетов Ubuntu включают обновленную версию Nginx. Затем мы можем установить необходимые пакеты, используя apt.

Обновите список пакетов Ubuntu, чтобы иметь последнюю версию списков репозитория, с терминала:

sudo apt update

Чтобы установить Nginx, откройте терминал и введите следующие команды:

sudo apt install nginx

Если брандмауэр Ubuntu активен, вам необходимо включить трафик для Nginx:

sudo ufw allow 'Nginx HTTP'

На данный момент сервер готов с конфигурациями по умолчанию. Просто подключитесь к вашему общедоступному IP-адресу или локальному хосту:

http://localhost

Чтобы перезапустить Nginx:

sudo service nginx restart

Чтобы остановить Nginx:

sudo service nginx stop

Чтобы запустить Nginx:

sudo service nginx start

Установить MySQL

Вы можете установить MySQL, используя официальный репозиторий Ubuntu с помощью apt. Установите MySQL:

sudo apt install mysql-server

Защита MySQL

Запустите скрипт MySQL, чтобы изменить некоторые настройки:

sudo mysql_secure_installation

Вам будет предложено ввести пароль для пользователя root, который вы будете использовать для входа на сервер MySQL.

Введите «y» для «да» или любую другую букву для «нет».

Вас спросят, хотите ли вы проверить безопасность пароля.

Затем рекомендуется нажать «y», затем «yes».

  • Удалить анонимных пользователей
  • Удаленно отключить root-вход
  • Удалить тестовую базу данных
  • Обновите новые правила

Изменить метод аутентификации

Начиная с версии MySQL 5.7, корневой пользователь MySQL по умолчанию настроен на аутентификацию через плагин auth_socket вместо пароля.

Чтобы использовать пароль для подключения к MySQL в качестве пользователя root, вам необходимо изменить метод аутентификации с auth_socket на mysql_native_password.

Поскольку пароль еще не установлен, вы можете подключиться к серверу MySQL, просто используя команду mysql или sudo mysql, если вы вошли в систему как обычный пользователь. Затем вам нужно будет использовать команду mysql -u root -p от имени пользователя root, в противном случае sudo mysql -u root -p от имени обычного пользователя.

Итак, если вы вошли в систему как root, введите в терминале:

mysql

В противном случае, если вы вошли в систему как обычный пользователь с привилегиями sudo:

sudo mysql

Чтобы проверить метод аутентификации, связанный с учетными записями mysql:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Вы должны получить сообщение, подобное этому:

+------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | user | authentication_string | plugin | host |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | debian-sys-maint | $A$005$u3KbW* y@aUv+#3LNVNBBcGIT0Q2RfuDwKRUDgRa2wnAAFeL4m2I06vi/| caching_sha2_password | localhost |
 | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
 | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
 | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
 | root | | auth_socket | localhost |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 5 rows in set (0.00 sec)

Как видите, метод аутентификации auth_socket установлен по умолчанию для пользователя root.

Чтобы использовать аутентификацию по паролю для учетной записи root, внесите следующие изменения:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'TUA_PASSWORD';
Осторожность:Your password does not satisfy the current policy requirements.этот учебник

Обновите таблицы:

FLUSH PRIVILEGES;

Теперь вы можете проверить новый метод аутентификации, связанный с пользователем root:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Вы должны получить сообщение, подобное этому:

+------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | user | authentication_string | plugin | host |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | debian-sys-maint | $A$005$u3KbW* y@aUv+#3LNVNBBcGIT0Q2RfuDwKRUDgRa2wnAAFeL4m2I06vi/| caching_sha2_password | localhost |
 | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
 | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
 | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
 | root | *13097EDBBF2AB852D55D47ED1477E2901F60DFE1 | mysql_native_password | localhost |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 5 rows in set (0.00 sec)

Выйдите из приглашения MySQL:

exit;

Чтобы снова войти на сервер MySQL теперь вам нужно будет ввести пароль, затем из терминала:

Если вы вошли в систему как root, введите в терминале:

mysql -u root -p

В противном случае, если вы вошли в систему как обычный пользователь с привилегиями sudo:

sudo mysql -u root -p

Установить PHP

Чтобы установить PHP из терминала:

sudo apt install php-fpm php-mysql

ВНИМАНИЕ: На момент написания PHP 7.4 является последней версией, поэтому вам, возможно, придется изменить путь к файлу на версию, которую вы используете.

Чтобы сделать установку PHP более безопасной, введите следующую команду:

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

Найдите эту строку cgi.fix_pathinfo, удалите ";" и вставьте параметр "0". Следовательно:

cgi.fix_pathinfo=0

Перезапустите PHP:

sudo systemctl restart php7.4-fpm

Настройте Nginx для использования PHP:

sudo nano /etc/nginx/sites-available/default

ВНИМАНИЕ: На момент написания PHP 7.4 является последней версией, поэтому вам, возможно, придется изменить путь к файлу на версию, которую вы используете внутри блока location ~\.php$.

Внесите необходимые изменения, добавив:

index.php
 location ~ \.php$
 fastcgi_pass unix:/var/run/php/php7.X-fpm.sock;

Следовательно:

server {
 listen 80 default_server;
 listen [::]:80 default_server;
 root /var/www/html;
 index index.php index.html index.htm index.nginx-debian.html;
 server_name server_domain_or_IP;
 location /{
 try_files $uri $uri/=404;
 }
 location ~ \.php$ {
 include snippets/fastcgi-php.conf;
 fastcgi_pass unix:/run/php/php7.4-fpm.sock;
 }
 location ~ /\.ht {
 deny all;
 }
 }

Проверим правильную конфигурацию:

sudo nginx -t

Перезапустите Nginx:

sudo service nginx restart

Давайте проверим установку PHP. Создадим файл с расширением.php:

sudo nano /var/www/html/info.php

Вставьте этот код:

<?php phpinfo(); ?>

Сохраните и закройте файл.

Подключитесь к вашему общедоступному IP-адресу или локальному хосту:

http://localhost/info.php

Вывод

Базовая установка и настройка веб-сервера Nginx с MySQL и PHP на Ubuntu 20.04 LTS завершена.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.