Установка и настройка LAMP (web-сервера) в Ubuntu 18.04
Что такое 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 сервера.