Установка и настройка LAMP (web-сервера) в Ubuntu 18.04

04.06.2019

Что такое LAMP

LAMP — это сокращение, полученное по первым буквам входящих в его состав программ: Linux, Apache, MariaDB или MySQL, PHP. А если проще говоря это пакет программ, для быстрой настройки веб сервера. Так уж получилось, что большенство сервисов устанавливаются как веб приложения и требуют установки данного программного комплекса. Чтобы каждый раз не расписывать эту процедуру я решил написать про это отдельно для экономии сил и времени при написании следующих статей.

Установка Linux

Для начала установим чистую Ubuntu на сервер. Для этого я взял установочный образ ubuntu-18.04.1.0-live-server-amd64. Не думаю что с этим могут возникнуть проблемы. Далее далее ок готово! А вот систему лучше обновить. Подключаемся к серверу через Putty или через CMD

ssh root@IP_адрес_сервера
sudo apt update
sudo apt upgrade

Установка LAMP

Тут воспользуемся утилитой tasksel, которая позволяет установить сразу группу пакетов LAMP через пару команд.

sudo apt-get install tasksel
sudo tasksel install lamp-server

Настройка Apache2

Включим модуль mpm_prefork. Этот модуль будет использоваться для обработки запросов. Ну и mod_rewrite соответственно тоже включим.

sudo a2dismod mpm_event
sudo a2dismod mpm_worker
sudo a2enmod mpm_prefork
sudo a2enmod rewrite

Использование файлов htaccess для настроек будет возможным после того как изменим значение AllowOverride с None на All для определённых директорий (/var/www).

sudo nano /etc/apache2/apache2.conf

Как поменяли, перезапускаем Apache

sudo systemctl restart apache2

Создадим директорию для будущего сайта/сервиса, куда в дальнейшем скачаем и распакуем архив с программой

sudo mkdir -p /var/www/html/direction

Теперь переходим в новый каталог, качаем архив, устанавливаем приложение zip (если его нет), распаковываем файлы и после удалим архив.

cd /var/www/html/direction
wget -O direction.zip https://direction.com/direction.zip
sudo apt-get install zip
unzip opensupports.zip
rm -R opensupports.zip

Если это tar архив:

cd /var/www/html/direction
wget https://direction.com/direction.tgz
tar zxf direction.tgz
rm -R direction.zip

Теперь давайте нашего пользователя включим в группу, у которой будут права на редактирование этой директории

sudo groupadd webmasters
sudo gpasswd -a username webmasters
sudo chown -R root:webmasters /var/www/html/direction
sudo chmod 775 /var/www/html/direction

Пришло время для создания хост файла

nano /etc/apache2/sites-available/direction.conf
<VirtualHost *:80>
         ServerAdmin direction@itlocate.ru
         ServerName direction

         DocumentRoot /var/www/html/direction
         <Directory />
                 Options FollowSymLinks
                 AllowOverride All
         </Directory>
         <Directory /var/www/html/direction/>
                 Options Indexes FollowSymLinks MultiViews
                 AllowOverride All
                 Order allow,deny
                 allow from all
         </Directory>

         ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
         <Directory "/usr/lib/cgi-bin">
                 AllowOverride All
                 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                 Order allow,deny
                 Allow from all
         </Directory>

         ErrorLog ${APACHE_LOG_DIR}/error.log

         # Possible values include: debug, info, notice, warn, error, crit,
         # alert, emerg.
         LogLevel warn

         CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Теперь, если мы перейдём в /etc/apache2/sites-available/, то увидим там помимо только что созданного хост файла ещё два стандартных. Давайте их отключим, включив наш хост.

sudo a2dissite default-ssl.conf 
sudo a2dissite 000-default.conf
sudo a2ensite direction.conf 

Перезапускаем Apache.

sudo systemctl reload apache2

Настройка PHP

Включим использование шорттегов, если они отключены. Ишем параметр и изменяем его при необходимости (short_open_tag = On)

sudo nano /etc/php/7.2/apache2/php.ini

Как поменяли, перезапускаем Apache

sudo systemctl restart apache2

Настройка MySQL

Настроем бд MySQL, затем создадим пользователя и дадим ему права на базу данных. Всё что зелёным цветом - замените на свои данные.

sudo mysql_secure_installation
mysql -u root -p
CREATE DATABASE database_name;
GRANT ALL PRIVILEGES ON database_name.* TO username@localhost IDENTIFIED BY 'password';
exit

Теперь можно приступить к установке сервиса или CMS через браузер по IP адресу LAMP сервера.

Автору на кофе ☕ или просто поднять мотивацию писать больше статей для вас 😉 !
Отдельное спасибо всем, кто отправляет донатики 😀! Очень приятно и неожиданно. Благодаря вам сайт может и в дальнейшем обходиться без рекламных баннеров.
6731