LAMP стек — набор программного обеспечения с открытым исходным кодом, которой обычно устанавливается на сервер для отображения динамических веб-сайтов и веб-приложений. Эта аббревиатура обозначает Linux(операционная система) с установленным веб-сервером Apache, MySQL(база данных) для хранения данных и PHP с помощью которого обрабатывается динамический контент.
В данной инструкции будет описан по шагам процесс установки LAMP на VPS сервер с установленной Ubuntu 16.04 server. Ubuntu — подходит для LAMP, так как это операционная система на базе Linux.
Перед тем как продолжить работу, у нас должен быть сервер, виртуальный сервер или VPS с установленным дистрибутивом Ubuntu 16.04 Server, а также возможность подключения к серверу по SSH для пользователя с административными (sudo) привилегиями. Собственно сам пользователь с правами sudo.
Инструкция по настройке LAMP стек (linux, apache, mysql, php) на Ubuntu 16.04 server
Шаг № 1 Установка Apache веб-сервера
Веб сервер Apache самый популярный в настоящее время и более прост в освоении начинающим чем Nginx. Он хорошо описан и в интернете достаточно примеров по его настройке и оптимизации.
Это отличный выбор для хостинга веб-сайтов.
Для установки Apache в Ubuntu 16.04 воспользуемся менеджером пакетов apt. Менеджер пакетов позволит установить большую часть программного обеспечения из репозиториев Ubuntu
Для начала установки выполним команды:
1 2 |
sudo apt update sudo apt install apache2 |
Поскольку мы используем команду sudo
, будет запрошен пароль на повышение привилегий пользователя до sudo и команды будут выполняться с привилегиями root.
Настройка глобальной переменной Apache ServerName
После установки нам нужно добавить в файл конфигурации /etc/apache2/apache2.conf
для устранения предупреждения о синтаксических ошибка. Настроить переменную ServerName необходимо, что бы не получать предупреждение каждый раз при проверке конфигурации Apache:
Открываем конфигурационный файл командой:
1 |
sudo nano /etc/apache2/apache2.conf |
Добавим в конец файла переменную ServerName
, указывающую на ваше основное доменное имя. Если для вашего сервера не настроено доменное имя, вы можете использовать публичный IP-адрес сервера.
Выполняем перезапуск веб сервера Apache командой:
1 |
sudo service apache2 restart |
Проверяем результат установки набрав в браузере localhost или публичный IP адрес сервера (если это например VPS).
1 |
http://домен_или_IP_адрес_сервера |
в браузере должна открыться стандартная страница веб сервера Apache, как на примере:
Если вы видите эту страницу, ваш веб-сервер корректно установлен и работает.
Шаг 2 — Установка MySQL
Веб сервере Apache установлен и работает. Устанавливаем MySQL систему управления базами данных. MySQL обеспечит работу и доступ к базам данных в которых будет хранится информация веб сайта.
Установим MySQL следующей командой:
1 |
sudo apt install mysql-server |
В процессе установки необходимо задать пароль для пользователя «root» для MySQL. Этот пользователь будет управлять всей системой управления базами данных MySQL.
Для каждого из сайтов, который будут использовать MySQL в целях безопасности нужно создавать отдельного пользователя для управления базами данных для каждого из сайтов.
После установки MySQL выполним настройки безопасности следующей командой:
1 |
sudo mysql_secure_installation |
Система запросит пароль root (администратора) MySQL. И предложит включит модуль валидации
1 2 3 4 |
VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? |
Нажимаем No и пропускаем этот шаг.
Если выбрать Yes пароли, которые не соответствуют указанным критериям, будет отклонены системой MySQL как ошибка. Это вызовет проблемы, если вы используете слабый пароль в программах, которые автоматически настраивают учетные данные пользователя MySQL (например PhpMyAdmin). Безопаснее отключить этот параметр и использовать надёжные уникальные пароли.
Следующим шагом удаляем возможность создания баз данных анонимным пользователем (используется в тестовых средах для продакшин не подходит)
1 2 3 4 5 6 7 8 |
By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) : |
Нажимаем Yes
Отключаем возможность подключатся к MySQL пользователем root удаленно.
1 |
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : |
Нажимаем Yes
Удаляем тестовые базы
1 2 3 4 5 6 |
By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : |
Нажимаем Yes
MySQL установлен и выполнены общие настройки безопасности.
Шаг 3 — Установка PHP
PHP это компонент, который будет обрабатывать код для отображения динамического контента. Он может запускать скрипты, подключаться к нашим базам данных MySQL для получения информации и передавать обработанный контент в веб-сервер для отображения.
Для установки PHP выполним следующую команду:
1 |
sudo apt install php libapache2-mod-php php-mcrypt php-mysql |
После установки нужно добавить возможность исполнения файлов с расширением .php
Выполним следующую команду и добавим index.php в файл dir.conf:
1 |
sudo nano /etc/apache2/mods-enabled/dir.conf |
Содержимое файла должно выглядеть следующим образом (добавили index.php):
1 2 3 |
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule> |
после добавления index.php сохраняем и закрываем файл.
Перезапускаем веб сервер apache командой:
1 |
sudo service apache2 restart |
Стек LAMP установлен. Теперь проверим работу PHP
Проверка работы PHP на веб сервере
Для проверки работы php создадим тестовый php файл test.php и разместит его в корень веб сайта. По умолчанию эта директория находится по адресу /var/www/html/
1 |
sudo nano /var/www/html/test.php |
И добавим в него php код, который выводит информацию о сервере:
1 2 3 4 5 |
<?php phpinfo(); ?> |
Сохраняем и закрываем файл.
В браузере вводим адрес:
1 |
http://домен_или_IP_адрес_сервера/test.php |
Если все сделано правильно увидим примерно собеседующую информацию в браузере:
Данная страница содержит информацию о вашем сервере с точки зрения PHP. Она полезна для отладки и чтобы удостовериться в корректности применения настроек.
После проверки файл нужно удалить командой:
1 |
sudo rm /var/www/html/test.php |
Когда LAMP стек установлен, у вас есть возможность размещать свои сайты и предоставлять контент своим пользователям.