67 слов | 1 минута

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

Пошаговое развёртывание стека Apache + MySQL + PHP на Ubuntu с настройкой виртуального хоста и подготовкой к установке 1С-Битрикс.

1. Обновление пакетов

sudo apt update

2. Установка Apache

sudo apt install apache2

Настройка Firewall

sudo ufw app list
sudo ufw allow in "Apache"
sudo ufw status

# Если UFW не активен
sudo systemctl enable ufw
sudo ufw enable

3. Установка MySQL

sudo apt install mysql-server
sudo mysql_secure_installation
# На все вопросы: Y

sudo mysql

4. Установка PHP

sudo apt install php libapache2-mod-php php-mysql
php -v

Установка расширений PHP

apt search php- | less
apt show php-cli

# Установка нужных расширений
sudo apt install php8.3-mbstring php8.3-xml php8.3-gd

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

sudo mkdir /var/www/mysite
sudo chown -R $USER:$USER /var/www/mysite
sudo nano /etc/apache2/sites-available/mysite.conf

Содержимое конфига:

<VirtualHost *:80>
    ServerName mysite.local
    ServerAlias www.mysite.local
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/mysite
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
sudo a2ensite mysite
sudo a2dissite 000-default
sudo apache2ctl configtest
sudo systemctl reload apache2

6. Настройка для Bitrix

Если планируете установку 1С-Битрикс, откройте /etc/php/8.3/apache2/php.ini и задайте:

short_open_tag = On          ; строка ~208
max_input_vars = 10000       ; строка ~436
opcache.revalidate_freq = 0  ; строка ~1813

Включите модуль rewrite и разрешите .htaccess:

sudo a2enmod rewrite
sudo nano /etc/apache2/apache2.conf

Добавьте в конфиг:

<Directory /var/www/mysite>
    AllowOverride All
</Directory>
sudo systemctl restart apache2

7. Создание базы данных

sudo mysql
CREATE DATABASE mysite;
CREATE USER 'mysite'@'%' IDENTIFIED BY 'strongpassword';
GRANT ALL ON mysite.* TO 'mysite'@'%';
exit

8. Права на папки для Apache

ps aux | grep apache | grep -v grep
sudo usermod -aG bitrix www-data
chmod g+w /var/www/mysite
sudo systemctl restart apache2