LAMP представляет собой набор серверных программ с открытым исходным кодом, который устанавливается на сервер как комплект софта, предназначенный для размещения веб-сайтов. Данная четырёхбуквенная аббревиатура обозначает, что:
- в операционной системе семейства Linux (
L
) - разворачивается веб-сервер Apache (
A
) - и устанавливается система управления базами данных MySQL (
M
) - для создания веб-страниц на языке PHP (
P
).
В качестве сервера будем использовать VPS, работающий под управлением Ubuntu Server 20.04. Предварительно, перед установкой LAMP, необходимо будет произвести первоначальную настройку операционной системы. О том, как это сделать, у нас есть специальное руководство.
Установка Apache
Основа LAMP — это веб-сервер, а именно, веб-сервер Apache, один из популярнейших веб-серверов, который до возникновения Nginx являлся стандартным веб-сервером для большей части сайтов в интернете.
Как всегда перед установкой нового софта необходимо обновить список пакетов нашего сервера:
$ sudo apt update
Непосредственно установка Apache запускается следующей командой:
$ sudo apt install apache2
Настройка брандмауэра
Если вы производили настройки межсетевого экрана на основе нашей инструкции, то теперь вы можете воспользоваться одним из готовых профилей брандмауэра для Apache:
Apache
– открывает доступ на 80-й порт;Apache Full
– открывает доступ на 80-й и 443-й порт;Apache Secure
– открывает доступ только на 443-й порт.
В случае, если для доступа к своим веб-ресурсам вы планируете использовать сертификат SSL, то вам потребуется открыть доступ к портам 80 и 443. Если такой необходимости нет, то достаточно открыть доступ только к порту 80. В нашем примере мы применяем настройку брандмауэра по первому варианту:
$ sudo ufw allow Apache
Увидеть, какие порты открыты в UFW, можно с помощью следующей команды:
$ sudo ufw status
Теперь можно будет проверить работу веб-сервера. Для этого необходимо перейти в браузере на страницу вашего сервера:
http://XXX.XXX.XXX.XXX
В данном случае, XXX.XXX.XXX.XXX
– IP-адрес вашего VPS.
Если все было настроено правильно, вы увидите дефолтную страницу установленного веб-сервера:
Установка MySQL
Следующий этап — это установка системы управления базами данных, а именно, MySQL.
MySQL является довольно популярной СУБД. MySQL используется для хранения данных сайта и довольно часто используется в приложениях, написанных с помощью PHP.
Команда для инсталляции выглядит следующим образом:
$ sudo apt install mysql-server
После завершения процесса можно проверить версию установленного пакета:
$ mysql -V
Команда должна вернуть строку подобную следующей:
Теперь необходимо произвести настройку СУБД, которая позволит изменить некоторые параметры безопасности, используемые системой по умолчанию. Для того, чтобы это сделать, нужно запустить специальный скрипт. Запуск скрипта производится командой:
$ sudo mysql_secure_installation
Во-первых, скрипт попросит вас включить валидацию паролей пользователей. Для согласия на включение следует нажать y
или Y
.
Во-вторых, если вы включили компоненту валидации, потребуется выбрать её уровень. Выбирать нужно набирая цифры: 0
– низкий, 1
– средний, 2
– высокий.
Далее, система запросит установить пароль для учётной записи root
, которая будет использоваться при подключении к MySQL.
Для всех остальных вопросов нужно выбирать Y
и нажимать <Enter>
в каждом из шагов диалога. Выбрав эти ответы, вы удалите анонимных пользователей, тестовую базу данных, а так же отключите возможность удаленного входа для пользователя root
, после чего новые правила будут активированы в MySQL.
В некоторых случаях на этапе установки нового пароля для учётной записи
root
система выдаёт сообщение следующего вида:
… Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
Чтобы устранить данную ошибку, необходимо:
● прервать работу скрипта завершив SSH-сессию
● подключиться к MySQL:
sudo mysql
● сбросить пароль
root
‘а:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'NewPassForRoot';
(здесьNewPassForRoot
– новый пароль, вместо которого вам, конечно же, необходимо придумать и ввести свой)● выйти из MySQL:
exit
● повторно запустить на исполнение скрипт:
sudo mysql_secure_installation
В качестве проверки работоспособности MySQL попробуйте подключиться к нему из командной строки. Для подключения вам понадобится пароль пользователя root
:
$ mysql -u root -p
Для выхода из консоли MySQL используйте следующую команду:
mysql> exit
Более подробно процесс установки и настройки MySQL на Ubuntu 20.04 описан в нашей статье, посвящённой именно этой СУБД.
Установка PHP
PHP — скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. Поддерживается большинством провайдеров и позволяет выполнять приложения написанные на PHP.
Для дальнейшей работы вам также понадобится библиотека libapache2-mod-php
для обработки PHP в Apache и библиотека php-mysql
для PHP, используемая для подключения к MySQL из PHP.
Чтобы проинсталлировать PHP, а также необходимые библиотеки, используйте следующую команду:
$ sudo apt install php libapache2-mod-php php-mysql
По завершению установки есть возможность посмотреть версию установленного пакета:
$ php -v
На данном этапе уже можно использовать связку LAMP для своей работы. Однако, для того, чтобы, провести тест работоспособности PHP, логично было бы предварительно настроить виртуальный хост Apache. В нём будут содержаться каталоги и файлы вашего сайта.
Создание виртуального хоста для сайта
В этом разделе мы создадим виртуальный хост с использованием веб-сервера Apache, в котором будут инкапсулироваться данные конфигурации нашего веб-сайта. В качестве сайта мы будем использовать my-domain.host
. Естественно, вместо него на своём сервере вы должны использовать имя вашего онлайн-ресурса.
По умолчанию на веб-сервере Apache присутствует единственный серверный блок, конфигурация которого настроена на каталог /var/www/html
. Если вы уверены, что на вашем сервере будет работать только один веб-сайт, то можно разместить его там. Мы же поместим наш хост в отдельную директорию, а /var/www/html
оставим в качестве дефолтного каталога.
Для начала необходимо создать директорию для нашего сайта (не забывайте подставлять имя своего хоста вместо my-domain.host
):
$ cd /var/www
$ sudo mkdir my-domain.host
Далее, нужно будет назначить соответствующие права на созданный каталог. Права будем назначать при помощи переменной среды $USER
. Через эту переменную владеть директорией сможет текущий системный пользователь:
$ sudo chown -R $USER:$USER /var/www/my-domain.host
На следующем шаге необходимо создать конфигурационный файл в каталоге веб-сервера. Создавать его будем при помощи редактора nano
:
$ cd /etc/apache2/sites-available
$ sudo nano my-domain.host.conf
В пустой созданный файл вставьте следующий текст (не забывайте про то, что нужно подставлять имя именно вашего сайта):
<VirtualHost *:80>
ServerName my-domain.host
ServerAlias www.my-domain.host
ServerAdmin webmaster@localhost
DocumentRoot /var/www/my-domain.host
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
При выходе из текстового редактора сохраните внесённые в файл изменения.
Теперь можно активировать новый виртуальный хост:
$ sudo a2ensite my-domain.host
Если есть необходимость отключить дефолтный виртуальный хост, то сделать это можно при помощи команды:
$ sudo a2dissite 000-default
Далее, нужно проверить конфигурацию нашего хоста на предмет отсутствия синтаксических ошибок:
$ sudo apache2ctl configtest
Если проверка выдаст сообщение вида Syntax OK
, то перезапустите веб-сервер для применения внесённых изменений:
$ sudo systemctl reload apache2
Таким образом, мы активировали наш сайт, но он ещё не имеет никакого содержимого. Поэтому теперь необходимо создать для него стартовую страницу. Для этого в директории /var/www/my-domain.host
нужно будет создать файл index.html
:
$ cd /var/www/my-domain.host
$ nano index.html
В качестве примера наполните созданный файл следующим содержимым:
<p>My Apache site - my-domain.host</p>
<p>You see my Apache site my-domain.host on Ubuntu 20.04</p>
Закройте файл сохранив изменения, после чего попробуйте перейти на созданную страницу. Для этого введите IP-адреса вашего VPS в строке браузера. Более того, если имя вашего сайта имеет привязку A-записи к IP-адресу вашего сервера, то вы сможете перейти на страницу вашего сайта набрав в строке браузера его имя.
Отображение браузером страницы, созданной при помощи файла index.html
, будет означать, что ваш виртуальный хост функционирует.
Поскольку мы настаиваем веб-сервер для создания сайта на PHP, то скорее всего ваша начальная страница будет содержаться в файле вида index.php
. Когда такой файл вы поместите в каталог вашей онлайн-страницы, файл index.html
можно будет удалить. Вернее, это нужно будет сделать, так как по умолчанию index.html
имеет приоритет над файлом index.php
. С другой стороны, настройку приоритетов тоже можно будет изменить.
Таким образом, можно переходить к проверке корректности установки и настройке пакета PHP.
Настройка PHP
Теперь мы поместим на наш ресурс тестовый PHP-скрипт, который поможет нам убедиться, что веб-сервер Apache способен работать с PHP.
В директории /var/www/my-domain.host/
(вместо my-domain.host
вам нужно использовать имя своего хоста) создайте файл info.php
:
$ cd /var/www/my-domain.host
$ nano info.php
Файл info.php
должен содержать следующий текст:
<?php
phpinfo();
Закройте файл сохранив внесённые в него изменения, после чего перейдите в браузере по адресу http://XXX.XXX.XXX.XXX/info.php
, где XXX.XXX.XXX.XXX
– IP-адрес вашего виртуального сервера. В результате в вашем браузере должна открыться конфигурационная страница PHP:
Поскольку на выведенной странице содержится большое количество конфиденциальной информации о вашей системе, лучше удалить файл info.php
после того, как вы теперь убедились, что PHP настроен корректно:
$ sudo rm /var/www/my-domain.host/info.php
Заключение
Таким образом, в результате проделанной работы мы развернули универсальный инструмент для хостинга и разработки онлайн-ресурсов. В итоге, теперь вы можете создавать веб-страницы на PHP, используя MySQL в качестве системы управления базами данных. При этом как веб-сервер в данном мануале мы использовали такое программное обеспечение как Apache.
А на кой в статье фигурирует установка mysql?
2023-05-27 at 20:17