Установка Laravel · 8 min read · Nov 01, 2025
Как установить PHP-фреймворк Laravel с Nginx и бесплатным SSL Let's Encrypt на AlmaLinux 8

Laravel — это бесплатный, с открытым исходным кодом и легковесный PHP-фреймворк, используемый для создания веб-приложений на PHP. Он популярен благодаря своему элегантному синтаксису, продвинутым функциям и мощному набору инструментов. Он основан на фреймворке Symfony и помогает разработчикам упростить разработку веб-приложений. Он также предоставляет интерфейс командной строки Artisan для выполнения операций с вашими приложениями. Он предлагает мощные функции, включая Artisan, архитектуру MVC, объектно-реляционное отображение, движок шаблонов, модульное тестирование и систему миграции баз данных.
В этом посте мы покажем вам, как установить Laravel с Nginx на Alma Linux 8.
Предварительные требования
- Сервер с установленным Alma Linux 8.
- Действительное доменное имя, указывающее на IP-адрес вашего сервера.
- Настроенный корневой пароль на вашем сервере.
Установка LEMP-сервера
Сначала вам нужно установить Nginx, MariaDB, PHP и другие необходимые расширения PHP на вашем сервере. Вы можете установить их все, выполнив следующую команду:
dnf install nginx mariadb-server php php-fpm php-common php-xml php-mbstring php-json php-zip php-mysqlnd curl unzip -yПосле установки всех пакетов отредактируйте файл конфигурации php-fpm и настройте его для использования Nginx:
nano /etc/php-fpm.d/www.confИзмените следующие строки:
listen.owner = nginx
listen.group = nginx
Сохраните и закройте файл, затем отредактируйте файл конфигурации PHP и измените значения по умолчанию:
nano /etc/php.iniИзмените следующие строки:
date.timezone = Asia/Kolkata
cgi.fix_pathinfo=1
Сохраните и закройте файл, затем запустите и включите службы Nginx, MariaDB и PHP-FPM, используя следующую команду:
systemctl start nginx
systemctl start mariadb
systemctl start php-fpm
systemctl enable nginx
systemctl enable mariadb
systemctl enable php-fpmПосле завершения вы можете перейти к следующему шагу.
Установка Composer
В этом посте мы установим Laravel с помощью Composer. Поэтому вам нужно установить Composer на вашу систему. Вы можете установить его, выполнив следующую команду:
curl -sS https://getcomposer.org/installer | phpВы получите следующий вывод:
Все настройки корректны для использования Composer
Загрузка...
Composer (версия 2.2.3) успешно установлен в: /root/composer.phar
Используйте: php composer.phar
Затем переместите бинарный файл Composer в системный путь и установите правильные разрешения с помощью следующей команды:
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composerДалее проверьте версию Composer с помощью следующей команды:
composer --versionВы получите следующий вывод:
Версия Composer 2.2.3 2021-12-31 12:18:53
Установка Laravel на Alma Linux 8
Далее измените каталог на корневой каталог веб-сервера Nginx и установите Laravel с помощью Composer:
cd /var/www/html/
composer create-project --prefer-dist laravel/laravel laravelВы получите следующий вывод:
Обнаруженный пакет: facade/ignition
Обнаруженный пакет: fideloper/proxy
Обнаруженный пакет: fruitcake/laravel-cors
Обнаруженный пакет: laravel/tinker
Обнаруженный пакет: nesbot/carbon
Обнаруженный пакет: nunomaduro/collision
Манифест пакета успешно сгенерирован.
69 пакетов, которые вы используете, ищут финансирование.
Используйте команду `composer fund`, чтобы узнать больше!
> @php artisan key:generate --ansi
Ключ приложения успешно установлен.
Далее установите правильные права собственности и разрешения для Laravel:
chown -R nginx:nginx /var/www/html/laravel/
chown -R nginx:nginx /var/www/html/laravel/storage/
chown -R nginx:nginx /var/www/html/laravel/bootstrap/cache/
chmod -R 0777 /var/www/html/laravel/storage/
chmod -R 0775 /var/www/html/laravel/bootstrap/cache/После завершения вы можете перейти к следующему шагу.
Создание виртуального хоста Nginx для Laravel
Далее вам нужно создать файл конфигурации Nginx для Laravel. Вы можете создать его, используя следующую команду:
nano /etc/nginx/conf.d/laravel.confДобавьте следующие строки:
server {
listen 80;
server_name laravel.exampledomain.com;
root /var/www/html/laravel/public;
index index.php;
charset utf-8;
gzip on;
gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php {
include fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
location ~ \.ht {
deny all;
}
}
Сохраните и закройте файл, затем проверьте Laravel на наличие ошибок конфигурации:
ginx -tВы должны получить следующий вывод:
nginx: файл конфигурации /etc/nginx/nginx.conf синтаксически верен
nginx: тест файла конфигурации /etc/nginx/nginx.conf успешен
Далее перезапустите службы Nginx и PHP-FPM, чтобы применить изменения:
systemctl restart php-fpm
systemctl restart nginxВы также можете проверить статус Nginx, используя следующую команду:
systemctl status nginxВы получите следующий вывод:
? nginx.service - HTTP-сервер nginx и обратный прокси-сервер
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/nginx.service.d
??php-fpm.conf
Active: active (running) since Fri 2022-01-07 08:29:11 UTC; 4s ago
Process: 8186 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 8184 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 8182 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 8188 (nginx)
Tasks: 2 (limit: 11411)
Memory: 3.7M
CGroup: /system.slice/nginx.service
??8188 nginx: главный процесс /usr/sbin/nginx
??8189 nginx: рабочий процесс
Jan 07 08:29:11 linux systemd[1]: nginx.service: Успешно.
Jan 07 08:29:11 linux systemd[1]: Остановлен HTTP-сервер nginx и обратный прокси-сервер.
Jan 07 08:29:11 linux systemd[1]: Запуск HTTP-сервера nginx и обратного прокси-сервера...
Jan 07 08:29:11 linux nginx[8184]: nginx: файл конфигурации /etc/nginx/nginx.conf синтаксически верен
Jan 07 08:29:11 linux nginx[8184]: nginx: тест файла конфигурации /etc/nginx/nginx.conf успешен
Jan 07 08:29:11 linux systemd[1]: nginx.service: Не удалось разобрать PID из файла /run/nginx.pid: Неверный аргумент
Jan 07 08:29:11 linux systemd[1]: Запущен HTTP-сервер nginx и обратный прокси-сервер.
Настройка брандмауэра для Laravel
Далее вам нужно разрешить порты 80 и 443 через брандмауэр firewalld. Вы можете разрешить их с помощью следующей команды:
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=httpsДалее перезагрузите firewalld, чтобы применить изменения:
firewall-cmd --reloadДоступ к веб-интерфейсу Laravel
Теперь откройте веб-браузер и получите доступ к веб-интерфейсу Laravel, используя URL http://laravel.exampledomain.com. Вы должны увидеть страницу по умолчанию Laravel на следующем экране:

Включение SSL на сайте Laravel
Рекомендуется включить SSL на сайте Laravel для обеспечения безопасности соединения. Let’s Encrypt предоставляет бесплатный SSL для получения, продления и управления сертификатами SSL/TLS для вашего домена. Сначала установите клиент Certbot с помощью следующей команды:
dnf install epel-release -y
dnf install certbot -yДалее выполните следующую команду, чтобы загрузить SSL Let’s Encrypt для вашего домена Laravel:
certbot --nginx -d laravel.exampledomain.comВам будет предложено указать ваш действительный адрес электронной почты и принять условия обслуживания, как показано ниже:
Сохранение журнала отладки в /var/log/letsencrypt/letsencrypt.log
Выбранные плагины: Аутентификатор nginx, Установщик nginx
Введите адрес электронной почты (используется для срочного продления и уведомлений о безопасности) (Введите 'c' для отмены): [email protected]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Пожалуйста, прочитайте Условия обслуживания по адресу
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Вы должны
согласиться, чтобы зарегистрироваться на сервере ACME по адресу
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Вы готовы поделиться своим адресом электронной почты с Фондом Электронного Фронта,
основным партнером проекта Let's Encrypt и некоммерческой организацией,
которая разрабатывает Certbot? Мы хотели бы отправлять вам электронные письма о нашей работе
по шифрованию интернета, новостях EFF, кампаниях и способах поддержки цифровой свободы.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Получение нового сертификата
Выполнение следующих задач:
http-01 задача для laravel.exampledomain.com
Ожидание проверки...
Очистка задач
Развертывание сертификата в VirtualHost /etc/nginx/conf.d/laravel.conf
Далее выберите, хотите ли вы перенаправить HTTP-трафик на HTTPS:
Пожалуйста, выберите, хотите ли вы перенаправить HTTP-трафик на HTTPS, удалив доступ по HTTP.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Нет перенаправления - Не вносить дальнейшие изменения в конфигурацию веб-сервера.
2: Перенаправить - Сделать так, чтобы все запросы перенаправлялись на безопасный доступ HTTPS. Выберите это для
новых сайтов или если вы уверены, что ваш сайт работает на HTTPS. Вы можете отменить это
изменение, отредактировав конфигурацию вашего веб-сервера.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Выберите соответствующий номер [1-2], затем [введите] (нажмите 'c' для отмены): 2
Введите 2 и нажмите Enter, чтобы начать процесс. После установки сертификата вы должны увидеть следующий вывод:
Перенаправление всего трафика на порт 80 на ssl в /etc/nginx/conf.d/laravel.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Поздравляем! Вы успешно включили https://laravel.exampledomain.com
Вы должны протестировать вашу конфигурацию на:
https://www.ssllabs.com/ssltest/analyze.html?d=laravel.exampledomain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ВАЖНЫЕ ЗАМЕТКИ:
- Поздравляем! Ваш сертификат и цепочка были сохранены по адресу:
/etc/letsencrypt/live/laravel.exampledomain.com/fullchain.pem
Ваш файл ключа был сохранен по адресу:
/etc/letsencrypt/live/laravel.exampledomain.com/privkey.pem
Ваш сертификат истечет 2022-04-11. Чтобы получить новую или измененную
версию этого сертификата в будущем, просто снова запустите certbot
с опцией "certonly". Чтобы не взаимодействовать и продлить *все*
ваши сертификаты, выполните "certbot renew"
- Ваши учетные данные были сохранены в вашем каталоге конфигурации Certbot
по адресу /etc/letsencrypt. Вам следует сделать
безопасную резервную копию этого каталога сейчас. Этот каталог конфигурации также
будет содержать сертификаты и закрытые ключи, полученные Certbot, поэтому
регулярное создание резервных копий этого каталога является идеальным.
- Если вам нравится Certbot, пожалуйста, подумайте о поддержке нашей работы:
Пожертвование ISRG / Let's Encrypt: https://letsencrypt.org/donate
Пожертвование EFF: https://eff.org/donate-le
- Мы не смогли подписать вас на список рассылки EFF, потому что ваш
адрес электронной почты, похоже, недействителен. Вы можете попробовать снова позже, посетив https://act.eff.org.
На этом этапе ваш сайт Laravel защищен SSL Let’s Encrypt. Теперь вы можете получить к нему безопасный доступ, используя URL https://laravel.exampledomain.com.
Заключение
Поздравляем! вы успешно установили Laravel с Nginx и SSL Let’s Encrypt на Alma Linux 8. Теперь вы можете начать разрабатывать приложения на PHP с использованием фреймворка Laravel. Не стесняйтесь задавать мне вопросы, если у вас есть какие-либо.
Get new posts in your inbox
No spam. Unsubscribe anytime.