При развертывании приложения Laravel обычно содержимое каталога public
перемещается в корень веб-сервера. Однако в некоторых сценариях вам может потребоваться развернуть приложение без перемещения каталога public
. В этой статье мы рассмотрим пять различных способов добиться этого.
Метод 1: перезапись URL-адресов
Перезапись URL-адресов — это метод, который позволяет перезаписывать входящие URL-адреса в разные места на сервере. Настроив правила перезаписи URL-адресов, вы можете направлять все входящие запросы в каталог public
без его физического перемещения. Вот пример файла Apache .htaccess
:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L]
Метод 2: символическая ссылка
В этом методе вы создаете символическую ссылку из корня веб-сервера в каталог public
. Таким образом, веб-сервер обслуживает приложение Laravel непосредственно из каталога public
. Вот пример создания символической ссылки с помощью команды ln
:
ln -s /path/to/laravel/public /path/to/web/server/root
Метод 3: настройка поддомена
Настроив поддомен, вы можете указать его непосредственно на каталог public
вашего приложения Laravel. Это позволяет вам получить доступ к вашему приложению, используя отдельный домен или поддомен. Вот пример конфигурации виртуального хоста Apache:
<VirtualHost *:80>
ServerName laravel.example.com
DocumentRoot /path/to/laravel/public
</VirtualHost>
Метод 4: Прокси-сервер веб-сервера
С помощью этого метода вы настраиваете прокси-сервер веб-сервера для пересылки запросов в каталог public
. Веб-сервер действует как посредник между клиентом и приложением Laravel. Вот пример конфигурации Nginx:
location / {
proxy_pass http://localhost:8000;
}
location /public {
alias /path/to/laravel/public;
}
Метод 5: контейнеризация Docker
Если вы используете Docker для развертывания, вы можете создать контейнер Docker с приложением Laravel внутри него. Настроив контейнер на предоставление необходимых портов, вы сможете получить доступ к приложению, не перемещая каталог public
. Вот пример Dockerfile
:
FROM php:7.4-apache
COPY . /var/www/html
EXPOSE 80
Развернуть приложение Laravel без перемещения каталога public
можно различными способами. Вы можете выбрать метод, который лучше всего соответствует вашей среде и требованиям развертывания. Будь то перезапись URL-адресов, символические ссылки, поддомены, прокси-серверы веб-серверов или контейнеризация Docker, эти методы позволяют сохранить каталог public
нетронутым, одновременно эффективно обслуживая ваше приложение Laravel.