Lamp для linux ubuntu

Установка LAMP в Ubuntu 20.04

LAMP — это популярный набор программного обеспечения для работы с веб-сервером. LAMP назван по первым буквам входящих в его состав компонентов: Linux — операционная система, Apache — веб-сервер, MySQL — СУБД, PHP — язык программирования, используемый для создания веб-приложений.

В этой статье мы рассмотрим, как установить LAMP Ubuntu 20.04 несколькими способами: с помощью утилиты tasksel и вручную с помощью пакетного менеджера.

Установка LAMP в Ubuntu 20.04

1. Установка пакетов LAMP с помощью утилиты tasksel

Утилита tasksel позволяет устанавливать наборы пакетов различных программ буквально в одну команду. Она разработана для Debian, но может использоваться и в Ubuntu. Для её установки выполните в терминале команду:

sudo apt -y install tasksel

Далее, чтобы установить Lamp на Ubuntu, достаточно выполнить команду:

sudo tasksel install lamp-server

Установка займёт определенное время, так как утилите необходимо скачать все необходимые пакеты. После завершения установки вы получите полностью работающий стек LAMP.

2. Установка пакетов LAMP вручную

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

Для начала необходимо установить веб-сервер Apache2:

sudo apt -y install apache2

Далее необходимо установить СУБД MySQL:

sudo apt -y install mysql-server

Установка интерпретатора языка программирования PHP и расширений, необходимых для его работы с Apache и MySQL:

sudo apt -y install php7.4 libapache2-mod-php7.4 php7.4-mysql

На момент написания статьи актуальной версией PHP в официальных репозиториях Ubuntu считалась версия 7.4. Самая же последняя официальная версия PHP от разработчиков 8.0.9 по состоянию на 29 июля 2021 года.

Также необходимо установить дополнительные расширения для языка PHP, которые понадобятся для создания будущих проектов и их дальнейшей публикации на хостинг:

sudo apt -y install php-curl php-json php-cgi php-gd php-zip php-mbstring php-xml php-xmlrpc

3. Настройка брандмауэра

По умолчанию брандмауэр закрывает все неразрешённые входящие подключения. Поэтому, чтобы к вашему веб-серверу можно было получить доступ извне, необходимо добавить его порт в исключения:

sudo ufw allow in 80/tcp

4. Проверка работы LAMP

Для начала необходимо убедиться, что веб-сервер Apache и СУБД MySQL успешно запустились и при необходимости запустить их. Смотрим статус apache, выполнив команду в терминале:

sudo systemctl status apache2


В разделе Active должно быть active (running). Те же самые действия необходимо сделать для проверки MySQL:

sudo systemctl status mysql

Если в статусах вместо active будет inactive (dead), то сервисы необходимо запустить вручную:

sudo systemctl start apache2
sudo systemctl status mysql

Для проверки наберите в адресной строке браузера IP-адрес сервера, куда вы устанавливали LAMP, в качестве примера выбран localhost:

Если при открытии вы увидели страницу, которая изображена на скриншоте выше, это означает что веб-север apache успешно запущен и работает. Теперь необходимо проверить правильно ли работает PHP. Создайте файл в директории /var/www/html при помощи следующей команды:

sudo vi /var/www/html/phpinfo.php

Вместо vi можно использовать любой другой текстовый редактор на ваш выбор (nano, emacs, gedit и др.).
В файл phpinfo.php впишите следующую команду:

Далее откройте адрес localhost/phpinfo.php в браузере. Если всё работает, вы должны увидеть страничку, которая изображена ниже на скриншоте:

Также можно проверить, работает ли интеграция с СУБД MySQL. Если расширение PHP для MySQL установлено, то на странице с phpinfo будет размещен блок с информацией:

Читайте также:  Создаем shell для windows

На данном этапе процесс проверки пройден успешно. Далее мы перейдем к настройке стека LAMP на Ubuntu 20.04.

5. Настройка Apache

Для обработки запросов будет использоваться модуль mpm_prefork. Данный модуль запускает по отдельному процессу на каждый запрос. Иначе говоря, каждый процесс одновременно обрабатывает только 1 поток на одно соединение. Для начала необходимо выключить mpm_event и mpm_worker и только потом включить модуль mpm_prefork:

sudo a2dismod mpm_event

sudo a2dismod mpm_worker

sudo a2enmod mpm_prefork

Включаем модуль mod_rewrite. Это модуль, предназначенный для преобразования URL адресов. Модуль использует в своей работе правила, которые могут быть описаны как в конфигурации сервера (httpd.conf), так и в файлах .htaccess непосредственно в файловой структуре Вашего сайта.

sudo a2enmod rewrite

Если вы хотите использовать файлы httaccess для настроек, то необходимо в файле /etc/apache2/apache2.conf изменить значение AllowOverride с None на All для нужных местоположений, например, для /var/www.
Откройте файл apache2.conf при помощи любого текстового редактора:

sudo vi /etc/apache2/apache2.conf

Найдите следующий блок:

Options Indexes FollowSymLinks
AllowOverride None
Require all granted

И замените AllowOverride None на AllowOverride All, затем сохраните изменения и закройте файл. Перезапустите apache:

sudo systemctl restart apache2

6. Настройка PHP

По умолчанию короткие теги, обрамляющие скрипты PHP, отключены. Это может привести к тому, что некоторые скрипты, использующие эти теги, могут не выполнятся. Для включения этой возможности откройте файл php.ini при помощи любого текстового редактора:

sudo vi /etc/php/7.4/apache2/php.ini

Найдите short_open_tag = Off и замените на:

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

error_reporting = E_ALL
display_errors = On

После внесения всех изменений необходимо перезапустить Apache:

sudo systemctl restart apache2

7. Настройка MySQL

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

На первом этапе утилита спросит вас необходимо ли включить компонент для валидации (проверки) паролей. Данный плагин проверяет надежность вашего пароля. Если вы решите настроить данный плагин, то сценарий предложит выбрать уровень проверки пароля. Наивысший уровень можно включить, нажав 2. Если данный плагин включать не требуется, введите No и далее нажмите на enter для перехода к следующему шагу. Следующим шагом утилита попросит вас ввести пароль суперпользователя, так как он ещё не задан, введите пароль, нажмите enter и введите пароль еще раз:

Во всех следующих вопросах нужно отвечать утвердительно путем ввода y/Y или Yes:

  • Запретить удалённый вход для пользователя root;
  • Запретить гостевой вход;
  • Удалить временные таблицы;
  • Обновить привилегии пользователей.

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

sudo mysql -u root -p

Введите пароль пользователя root, который вы задали на этапе запуска mysql_secure_installation.
Не перепутайте пароль от пользователя root который присутствует в операционной системе Ubuntu и пользователя root в MySQL. Это разные пользователи, соответственно вы должны вводить пароль именно к учетной записи root, которая присутствует в MySQL.

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

8. Как удалить LAMP в Ubuntu

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

sudo apt -y purge apache2 mysql-server php7.4 libapache2-mod-php7.4 php7.4-mysql php-curl php-json php-cgi php-gd php-zip php-mbstring php-xml php-xmlrpc

Команда purge позволяет удалить не только пакеты, но и их конфигурационные файлы. Если вы хотите оставить конфигурационные файлы, используйте команду remove.

Выводы

В этой статье мы разобрали, как выполняется установка LAMP Ubuntu 20.04. Как видите, это не очень сложно и с такой задачей может справиться даже новичок. Если у вас остались вопросы, оставляйте их в комментариях!

Источник

Установка LAMP-стека (Linux, Apache, MySQL, PHP) на Ubuntu

В статье мы узнаем, что такое LAMP-стек, как установить LAMP на Ubuntu, а также настроим виртуальные хосты.

Читайте также:  Free dos или windows что лучше

Что такое LAMP

LAMP — это стек программного обеспечения, устанавливаемого на сервер и предназначенного для сайтов и веб-приложений. LAMP – это аббревиатура, она расшифровывается как: Linux, Apache, MySQL и PHP.

Рассмотрим каждый элемент LAMP подробнее:

  1. Linux используется в качестве ОС на сервере, часто это различные дистрибутивы Ubuntu и Debian.
  2. Apache — веб-сервер. Он обрабатывает все запросы к страницам сайта и выдает соответствующие ответы.
  3. MySQL — СУБД (система управления базами данных). Иногда в LAMP используется MariaDB. Здесь хранятся все данные сайта.
  4. PHP — скриптовый язык для генерации страниц.

Такой набор самостоятельных по отдельности компонентов стал очень популярен.

Существует множество вариаций LAMP, где какие-либо из компонентов заменяются на другие, например LEMP — вместо Apache в нем используется веб-сервер Nginx.

Подготовка к установке LAMP

Развернуть LAMP можно, например, на облачном сервере, который предварительно нужно создать. Создадим сервер в панели управления Облачной платформой Selectel. Подробно о начислении баланса на счет для доступа к работе в панели и создании облачного сервера можно прочитать в Базе знаний.

Создание облачного сервера

Перейдите в панель управления Облачной платформой, откройте вкладку Серверы и нажмите кнопку Создать сервер.

При создании сервера автоматически выбирается операционная система Ubuntu. Чтобы выбрать другую ОС для сервера, нажмите Выбрать другой источник. В целом, для установки LAMP подойдет любой дистрибутив Linux.

В этой инструкции в качестве операционной системы сервера выберите Ubuntu 18.04 LTS.

Для развертывания LAMP нужно присвоить серверу плавающий адрес. Для этого в разделе Сеть в качестве подсети выберите Новый плавающий IP-адрес. Проверьте стоимость сервера и нажмите Создать.

Созданный Облачный сервер со статусом ACTIVE появится в списке всех серверов. В карточке сервера на вкладке Порты можно посмотреть плавающий IP-адрес — в дальнейшем это пригодится для настройки LAMP.

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

Работать с сервером можно во встроенной консоли в панели управления, которая находится на вкладке Консоль в карточке сервера. Но зачастую удобнее подключаться к серверу по протоколу SSH с локальной машины.

Для того чтобы подключиться к серверу по SSH, в терминале введите команду:

server_IP — это плавающий IP-адрес сервера, который был добавлен при его создании.

Терминал при подключении запросит root-пароль, который можно найти на вкладке Консоль в карточке сервера.

Если подключение к серверу прошло успешно, можно начать установку LAMP.

Установка Apache

Команды для установки

Установим первый после операционной системы компонент LAMP — Apache.

Предварительно загрузим списки пакетов обновлений, для этого используется команда:

Настройка брандмауэра

Брандмауэр (файервол) должен пропускать HTTP и HTTPS-трафик — то есть должны быть открыты порты 80 и 443.

Для начала нужно установить утилиту для управления правилами файервола UFW (Uncomplicated Firewall) и включить UFW:

На сервере должны быть доступны профили приложений для Apache. Посмотрим список профилей:

Вывод команды выглядит примерно таким образом:

Можем увидеть, что в выводе присутствует профиль Apache Full — именно он открывает нужные порты 80 и 443. Разрешим для него входящий трафик:

Чтобы в дальнейшем продолжать подключение к серверу по SSH, добавим также профиль OpenSSH:

В выводе команды проверим, что UFW активен, нужные профили включены, а, значит, разрешен HTTP и HTTPS-трафик:

Проверка работы Apache

Проверим статус Apache, он должен быть активен (Active в выводе команды):

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

Установка MySQL

Команда для установки

После установки и настройки Apache можно устанавливать следующий компонент — СУБД MySQL:

Настройка безопасности БД

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

Когда система предложит установить плагин валидации паролей (VALIDATE PASSWORD plugin), введем в терминал y или Y для подтверждения. Установка этого плагина поможет задать пароль с повышенными требованиями к безопасности.

Далее выберем уровень надежности паролей, всего их три:

  • низкий (LOW) — длина такого пароля должна быть больше 8 символов;
  • средний (MEDIUM) — длина пароля больше 8 символов, при этом пароль должен содержать цифры, буквы в верхнем и нижнем регистре, а также специальные символы;
  • сильный (STRONG) — для такого пароля должны быть соблюдены те же условия, что и для среднего уровня надежности, но при этом в пароле не должны использоваться слова, которые могут быть уязвимы при подборе пароля по словарю.
Читайте также:  Форматы дисков для linux

Введем в терминале значение для выбора уровня: 0 для LOW, 1 для MEDIUM или 2 для STRONG.

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

Система определит и выведет значение надежности пароля (Estimated strength of the password).

На дальнейшие вопросы от системы рекомендуем вводить в терминале подтверждение (y или Y) — это настройки удаления анонимных пользователей, удаление открытой тестовой базы и так далее.

Пароль будет создан, когда в терминале будет выведено сообщение «All done!».

Проверка работы MySQL

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

Установка PHP

Команды для установки

Теперь можно перейти к установке последней составляющей стека — PHP.

Установим PHP и специальные модули для работы PHP с Apache и MySQL:

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

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

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

Проверка установки PHP

Для проверки создадим небольшой PHP-скрипт с любым названием, например test.php, в корневой директории /var/www/html:

Заполним этот файл таким содержимым:

Сохраним и закроем файл (сочетание клавиш Ctrl+X, а затем Y+Enter).

Такой скрипт вызовет функцию phpinfo(), которая выводит информацию о PHP и список параметров.

Теперь откроем этот файл по URL:

Если все настроено корректно, будет доступна информация о PHP:

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

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

Допустим, мы хотим разместить на одном сервере два сайта. Сконфигурируем Apache.

Создание директорий

Размещать файлы виртуальных хостов будем внутри директории /var/www/. Для каждого хоста создадим новую отдельную директорию:

Обратите внимание, что вместо IP-адреса можно использовать и доменное имя.

Предоставление прав

Сейчас права доступа к директориям есть только у root-пользователя. Настроим права всем пользователям системы, используя переменную среды $USER:

Откроем пользователю доступ на чтение, редактирование и запуск файлов в директории /var/www:

Создание страниц для тестирования

В дальнейшем нам нужно будет проверить, правильно ли настроены виртуальные хосты. Для этого можно создать для каждого IP-адреса (домена) HTML-страницы, которые будут открываться в браузере при вводе соответствующего IP или домена, например, главные страницы index.html.

Создадим страницу для первого IP:

Добавим на страницу текст:

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

Выполним то же самое и для второго сайта:

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

По умолчанию в Apache используется виртуальный хост 000-default.conf. Этот файл мы будем использовать как шаблон для создания собственных виртуальных хостов.

Для каждого сайта конфигурационные файлы (виртуальные хосты) хранятся в директории /etc/apache2/sites-available/. Скопируем содержимое виртуального хоста, который используется по умолчанию, в новый файл — мы будем использовать его для настройки первого сайта:

Откроем новый конфигурационный файл первого сайта:

Изменим значения в файле:

  • ServerAdmin — электронная почта администратора сайта;
  • ServerName — IP-адрес сайта или его доменное имя;
  • DocumentRoot — директория, в которой хранится конфигурационный файл (виртуальный хост).

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

Подобным образом создадим конфигурационный файл для второго сайта:

Содержимое конфигурационного файла /etc/apache2/sites-available/second_IP.conf:

Активация виртуальных хостов

Активируем виртуальные хосты с помощью a2ensite:

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

Проверим, нет ли ошибок в конфигурационных файлах:

Если ошибки отсутствуют, то получим результат:

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

Теперь Apache должен обслуживать сайты, IP-адреса или домены которых мы прописали в виртуальных хостах. Проверим работу: перейдем в браузере на сайты — должны появиться созданные индексные страницы:

Источник

Оцените статью