Как установить Laravel-скрипт на Ubuntu

Актуальный порядок установки Laravel-скрипта на чистый сервер Ubuntu. Гайд писался под Ubuntu 22.04, но на Ubuntu 20.04+ основные шаги остаются такими же.

Важно: в командах ниже используется PHP 7.4. Если вашему скрипту нужна другая версия, замените все пакеты вида php7.4 на свою версию, например php8.1. На Ubuntu 20.04 PHP 8.1+ без дополнительной подготовки может ставиться некорректно, поэтому заранее проверьте требования конкретного скрипта.

Все команды выполняйте от пользователя с правами sudo или из-под root. Перед началом привяжите домен к серверу, если планируете сразу настраивать NGINX и SSL.

1. Установка базовых пакетов

Обновляем систему, подключаем PPA Ondrej для PHP и ставим NGINX, MySQL, Redis, PHP-FPM и нужные расширения.

apt-get update
apt-get install software-properties-common
add-apt-repository -y ppa:ondrej/php
apt-get update
apt-get -y install unzip zip nginx curl php7.4 php7.4-mysql php7.4-fpm php7.4-mbstring php7.4-xml php7.4-curl redis-server mysql-client mysql-server

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

Запускаем базовую защиту MySQL, задаем пароль для root-пользователя и переключаем авторизацию на mysql_native_password.

sudo mysql_secure_installation

sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ВАШ_ПАРОЛЬ';
FLUSH PRIVILEGES;
quit

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

3. Установка Node.js и PM2

Для серверной части бота или websocket-процессов обычно нужен Node.js. В этой инструкции используется Node 16 и процесс-менеджер PM2.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm install 16
nvm use 16
npm i -g pm2

4. Загрузка скрипта и Composer

Загрузите архив со скриптом в /var/www/html, распакуйте его и выдайте права на папки, в которые Laravel пишет кеш, логи и скомпилированные файлы.

cd /var/www/html
unzip archive.zip
chmod -R 777 storage
chmod -R 777 bootstrap
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Если настраиваете production-сервер аккуратнее, лучше выставить владельца проекта под пользователя веб-сервера и дать минимально нужные права.

5. Установка phpMyAdmin

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

cd /usr/share
composer create-project phpmyadmin/phpmyadmin --repository-url=https://www.phpmyadmin.net/packages.json --no-dev
ln -s /usr/share/phpmyadmin /var/www/html/public

6. Конфиг NGINX

Откройте стандартный конфиг NGINX и замените его содержимое на пример ниже. Не забудьте поменять domain.com на свой домен и версию PHP в fastcgi_pass, если используете не PHP 7.4.

nano /etc/nginx/sites-available/default
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;

server {
    listen 80;
    listen [::]:80 ipv6only=on;
    limit_conn perip 10;
    limit_conn perserver 100;

    access_log /var/log/nginx/laravel-access.log;
    error_log /var/log/nginx/laravel-error.log;

    root /var/www/html/public;
    index index.php index.html index.htm;

    server_name domain.com;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Сохраните файл и перезапустите NGINX.

service nginx restart

7. SSL-сертификат

Базовая установка уже закончена. Если нужен HTTPS, установите Certbot и выпустите сертификат через NGINX.

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python3-certbot-nginx
sudo certbot --nginx

Пути к сертификатам после выпуска будут лежать в /etc/letsencrypt/live/. Если ваш бот или серверная часть требует SSL-пути в конфиге, укажите их именно оттуда.

8. Запуск бота или Node-сервера

Если в комплекте есть бот, рулетка или отдельный Node-сервер, перейдите в нужную папку. Часто это /var/www/html/storage/bot или /var/www/html/server.

cd /var/www/html/storage/bot
pm2 start app.js

После запуска проверьте сайт в браузере, доступность админки, подключение к базе, права на папки storage и bootstrap, а также работу фоновых процессов в pm2 list.

Если установка не проходит с первого раза, проверьте версию PHP, путь к сокету PHP-FPM в NGINX, данные подключения к MySQL и содержимое .env. В большинстве случаев ошибка находится именно в одном из этих мест.

Дата написания - 15.06.2026