Page tree

LAMP - набор программного обеспечения (Linux, Apache, MySQL, PHP) с открытым исходным кодом, который обычно устанавливается на сервер для отображения динамических веб-сайтов и веб-приложений. 

В статье описан процесс установки LAMP на сервер с операционной системой Ubuntu 16.04.

LAMP также можно установить автоматически: при заказе VDS на сайте или создании нового сервера в панели управления, а также при переустановке ОС.

Установка Apache

Для установки веб-сервера выполните команды ниже:

sudo apt update
sudo apt-get install apache2

Далее добавьте Apache в автозагрузку:

sudo systemctl enable apache2

И запустите веб-сервер:

sudo systemctl start apache2

Чтобы проверить, что все работает корректно, введите в адресной строке браузера IP-адрес вашего сервера. Если установка прошла успешно, вы увидите стандартное приветственное окно Apache:

Настройка виртуальных хостов

Важной особенностью Apache является возможность создания виртуальных хостов, настраиваемых независимо друг от друга, что позволяет размещать на VDS-сервере сразу несколько сайтов. За конфигурацию каждого сайта будет отвечать конкретный виртуальный хост. Даже если на начальном этапе вы планируете размещать только один сайт на сервере, мы рекомендуем в любом случае использовать виртуальные хосты. Это обеспечит вам удобство администрирования и обслуживания вашего проекта, а в дальнейшем и легкость расширения при необходимости.

Перед настройкой виртуального хоста добавьте домен сайта в раздел "Домены". Вы можете перенести существующий домензарегистрировать новый или воспользоваться бесплатным техническим доменом, чтобы протестировать работу сайта на сервере. По ссылкам вы найдете необходимые инструкции для данных процедур.

Создайте директорию сайта (в примере используется site1, укажите вместо него удобное вам имя сайта / директории):

sudo mkdir /var/www/site1
sudo mkdir /var/www/site1/public_html

Установите права доступа:

sudo chmod -R 755 /var/www

По умолчанию Apache содержит стандартный файл конфигурации 000-default.conf, который хранится в директории /etc/apache2/sites-available. Файлы новых виртуальных хостов будут храниться здесь же.

Сначала отключите стандартный файл конфигурации командой:

sudo a2dissite 000-default

После чего создайте конфигурационный файл нового хоста:

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

Приведите его содержимое к следующему виду:

<VirtualHost *:80>
    ServerName site1.com
    ServerAlias www.site1.com
    ServerAdmin admin@localhost
    DocumentRoot /var/www/site1/public_html
 
<Directory /var/www/site1/public_html>
    AllowOverride All
    Require all granted
    </Directory>
 
    ErrorLog /var/www/site1/error.log
    CustomLog /var/www/site1/access.log combined
</VirtualHost>

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

Поясним приведенные выше параметры.

  • Блок <VirtualHost> включает в себя набор директив, задающих настройки для конкретного виртуального хоста.
  • ServerName - имя созданного хоста, полное доменное имя вашего сайта.
  • ServerAlias - альтернативное имя, по которому сайт тоже должен быть доступен. 
  • ServerAdmin - e-mail администратора сервера.
  • DocumentRoot - путь до корневой директории, в которой хранятся файлы сайта site1.
  • Блок <Directory> задает настройки, которые будут применены для конкретной папки (/var/www/site1/public_html). В данном случае это: AllowOverride All - разрешение допускать настройки, заданные в .htaccess; и Require all granted - доступ к каталогу разрешен всем.
  • ErrorLog - расположение файла с логами ошибок (по умолчанию логи размещаются в директории /etc/apache2/error.log, доступ к которой имеет только root-пользователь; поэтому для удобства обращения к логам можно задать для них другой путь).
  • CustomLog - расположение файла с логами доступа.

Этого набора директив достаточно для функционирования виртуального хоста, хотя список не является исчерпывающим. Со списком всех возможных директив и их описанием можно ознакомиться на сайте Apache.

Далее включите сайт следующей командой:

sudo a2ensite site1

И перезапустите Apache:

sudo systemctl restart apache2

На этом этапе настройка виртуального хоста завершена. Для того, чтобы проверить корректность его работы, создайте индексный файл сайта:

nano /var/www/site1/public_html/index.html

Внесите в него любой html-код для проверки и сохраните документ. Например:

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Удалось!</title>
 </head>
 <body>
  <h1>Виртуальный хост работает!</h1>
 </body>
</html>

Теперь введите в браузере адрес сайта, для которого вы настраивали виртуальный хост. Если все настройки были выполнены корректно, на экране будет выведено содержимое созданного выше индексного файла.

Установка MySQL / MariaDB

Следующий этап - установка СУБД, то есть системы управления базами данных.

Самый распространенный вариант - это MySQL, но вместо нее можно, например, установить MariaDB. Управление MariaDB принципиально не отличается от MySQL, и вы можете без особых затруднений попробовать использовать именно MariaDB, чтобы самостоятельно оценить работу с ней. Почти полная совместимость MariaDB с MySQL позволит вам в случае необходимости легко заменить одну СУБД на другую (аналогичной версии) без опасения потерять какие-либо данные и необходимости изменять настройки остального ПО.

  • Если вы устанавливаете MySQL, выполните команду:
sudo apt-get install mysql-server

Далее будет необходимо задать пароль суперпользователя БД и нажать Enter, после чего повторить ввод пароля:

  • Если вы устанавливаете MariaDB, выполните команду:
sudo apt-get install mariadb-server mariadb-client

Следующие шаги практически идентичны для обеих СУБД.

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

sudo mysql_secure_installation

Далее последовательно ответьте на запросы системы.

В случае с MySQL:

  • Enter current password for root - введите пароль суперпользователя БД.
  • Would you like to setup VALIDATE PASSWORD plugin - плагин валидации паролей. Его использование необязательно; при включении данного плагина все пароли, которые не соответствуют требованиям безопасности (слишком слабые) будут отвергаться MySQL. Для включения плагина нажмите y; либо нажмите любую другую клавишу, чтобы продолжить без запуска плагина.
  • Change the root password - нажмите n, чтобы не менять пароль.

В случае с MariaDB:

  • Enter current password for root - нажмите Enter.
  • Change the root password - нажмите y, чтобы задать пароль root-пользователя базы данных.
  • New password - введите нужный пароль.
  • Re-enter new password - повторно введите пароль.

Далее для обеих СУБД:

  • Remove anonymous users - нажмите y, чтобы удалить анонимных пользователей.
  • Disallow root login remotely - введите y, чтобы запретить удаленный доступ для root.
  • Remove test database and access to it - нажмите y, чтобы удалить тестовую базу.
  • Reload privilege tables now - введите y, чтобы обновить таблицы привилегий пользователей.

База данных установлена.

Для подключения к БД используйте команду:

mysql -u root -p

Далее потребуется ввести пароль root, заданный при настройке БД.

Для выхода из консоли MySQL введите \q.

Для удобства работы с базами данных вы также можете установить phpMyAdmin по нашей инструкции.

Установка PHP

Установить PHP c несколькими основными модулями можно командой ниже:

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

Можно добавить необходимые модули в команду выше или установить их по отдельности, также командой "apt-get install имя_модуля".

Получить дополнительную информацию по каждому модулю можно с помощью команды:

sudo apt show имя_модуля

После того, как необходимые модули будут установлены, проверьте работу PHP. Для этого создайте php-файл в директории сайта:

nano /var/www/site1/public_html/test.php

Внесите в него следующее содержимое и сохраните файл:

<?php
phpinfo();
?>

Теперь перейдите по адресу http://IP-адрес-сервера/test.php (либо http://вашдомен/test.php) - если всё в порядке, будет отображена страница с параметрами php.

При необходимости тестовый файл можно удалить командой ниже:

nano rm /var/www/site1/public_html/test.php


На этом установка LAMP на ваш сервер завершена.

  • No labels