Быстрая установка LAMP в Ubuntu 20.04

Данный мануал коротко расскажет, как установить все компоненты стека LAMP на сервер Ubuntu 20.04.

Примечание: Более подробную версию мануала вы найдете здесь.

Требования

Для работы вам понадобится сервер Ubuntu 20.04, настроенный согласно этому мануалу (включая пользователя с доступом к команде sudo и базовый брандмауэр).

1: Установка Apache и настройка брандмауэра

Установить Apache довольно просто, для этого вам нужен только пакетный менеджер apt:

sudo apt update
sudo apt install apache2

После завершения установки нужно разблокировать трафик HTTP в брандмауэре UFW. Чтобы сделать это, введите команду:

sudo ufw allow in "Apache"

Чтобы убедиться, что брандмауэр поддерживает входящий трафик по порту 80, посетите внешний IP своего сервера в браузере.

http://your_server_ip

На экране должна появиться стандартная страница Apache для Ubuntu 20.04:

It works!
This is the default welcome page used to test the correct operation of the Apache2 server after installation on Ubuntu systems. …

2: Установка MySQL

Теперь, когда веб-сервер установлен, пришло время установить MySQL. Это популярная в средах PHP система управления базами данных.

Чтобы установить MySQL, введите:

sudo apt install mysql-server

После установки системе MySQL требуется настройка. Чтобы защитить ваш экземпляр, можно запустить простой встроенный скрипт безопасности, который удалит потенциально рискованные настройки. Запустите этот скрипт:

sudo mysql_secure_installation

Сначала он предложит настроить Validate Password Plugin, который проверяет надежность вашего пароля. Если вы хотите включить этот плагин, введите Y, после чего вам будет предложено выбрать уровень проверки пароля. Наивысший уровень можно включить, нажав 2.

Затем сервер попросит вас выбрать и подтвердить пароль для пользователя root MySQL. MySQL по умолчанию не требует пароля, даже если пароль установлен; несмотря на это, вы должны определить здесь надежный пароль – в качестве дополнительной меры безопасности.

На остальные вопросы можно нажать Y и Enter. Это удалит анонимных пользователей и тестовые базы данных, отключит удалённый root логин и обновит текущие настройки MySQL.

Примечание: На момент написания этого мануала PHP-библиотека MySQL mysqlnd не поддерживает caching_sha2_authentication, метод аутентификации по умолчанию для MySQL 8. Потому при создании пользователей БД для приложений PHP на MySQL 8 вам необходимо убедиться, что они используют mysql_native_password. Подробнее об этом мы рассказываем в разделе 6 этого мануала.

3: Установка PHP

Чтобы установить PHP и его зависимости, введите:

sudo apt install php libapache2-mod-php php-mysql

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

php -v
PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

4: Создание виртуального хоста

Примечание: В данном мануале мы используем условный домен your_domain, который вы должны заменить своим доменом.

Веб-сервер Apache по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для обслуживания одного сайта, но, если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты.

Создайте структуру каталогов в /var/www для сайта your_domain, а /var/www/html оставьте как каталог по умолчанию, который будет обслуживаться, если запрос клиента не соответствует другим сайтам.

Создайте корневой каталог your_domain:

sudo mkdir /var/www/your_domain

Затем определите права на каталог с помощью переменной $USER, которая ссылается на вашего текущего пользователя:

sudo chown -R $USER:$USER /var/www/your_domain

Создайте новый файл в каталоге sites-available с помощью nano или другого текстового редактора:

sudo nano /etc/apache2/sites-available/your_domain.conf

Вставьте в пустой файл эту базовую конфигурацию:

<VirtualHost *:80>
ServerName your_domain
ServerAlias www.your_domain
ServerAdmin webmaster@localhost
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Сохраните и закройте файл. В nano для этого нажмите CTRL+X, Y и Enter.

Теперь вы можете использовать a2ensite для включения этого виртуального хоста:

sudo a2ensite your_domain

Чтобы отключить веб-сайт Apache по умолчанию, введите:

sudo a2dissite 000-default

Проверьте ошибки в конфигурации:

sudo apache2ctl configtest

Перезапустите Apache, чтобы обновить настройки:

sudo systemctl reload apache2

Теперь Apache обслуживает домен вашего нового сайта. Но пока что каталог /var/www/your_domain все еще пуст. Давайте мы создадим файл index.html, чтобы протестировать новый сайт.

nano /var/www/your_domain/index.html

Вставьте в файл такие строки:

<html>
<head>
<title>your_domain website</title>
</head>
<body>
<h1>Hello World!</h1>
<p>This is the landing page of <strong>your_domain</strong>.</p>
</body>
</html>

Откройте браузер и посетите домен или IP вашего сервера:

http://server_domain_or_IP

Вы должны увидеть такое сообщение:

It works!
This is the landing page of your_domain

5: Тестирование стека LAMP

Сейчас нужно убедиться в том, что веб-сервер взаимодействует с PHP. Для этого нужно создать простой сценарий PHP, info.php.

Создайте этот файл в корневом каталоге веб-сервера:

nano /var/www/your_domain/info.php

На экране появится пустой файл. Поместите в него такой код:

<?php
phpinfo();

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

Теперь попробуйте открыть его в браузере:

http://server_domain_or_IP/info.php

На экране появится веб-страница, содержащая информацию о сервере (она также может пригодиться вам при отладке). Если такая страница появилась, веб-сервер обслуживает файлы PHP.

Важно! После проверки обязательно удалите этот файл, иначе любой пользователь сможет получить доступ к конфиденциальным данным о среде PHP и о вашем сервере Ubuntu.

sudo rm /var/www/your_domain/info.php

В случае необходимости вы сможете быстро создать эту страницу снова.

Закажите у нас готовый стек LAMP или VPS c Ubuntu 20.04 и получите надежный сервис в придачу!

Читайте также: Создание сертификата Let’s Encrypt для Apache в Ubuntu 20.04

Tags: , , , , ,

Добавить комментарий