Развертывание Laravel через Посланника в Cpanel - PullRequest
3 голосов
/ 29 июня 2019

У меня есть VPS с WHM и Cpanel. У меня есть несколько доменов, размещенных там. Скажем, один из них example.com

То, что я собираюсь сделать, - это две версии приложения. Производство: example.com> /public_html/ Разработка: staging.example.com> /public_html/staging/

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

Envoyer, с большим количеством борьбы с моим провайдером, работает нормально. Это загрузка файлов, как ожидалось. Единственная проблема сейчас - это символическая ссылка current

Прямо сейчас структура папок:

-staging
    - releases
        -release1
        -release2
    - current

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

Поскольку приложение находится в папке выпуска, как мне убедиться, что мое приложение работает, когда мы попадаем на поддомен.

Нужно ли изменять файл виртуальных хостов в Apache?

1 Ответ

0 голосов
/ 01 июля 2019

Laravel требует, чтобы корнем домена (настроенным в соответствующем файле Apache vhost conf) была его «публичная» папка.Вот где находится точка входа index.php.

Отредактируйте файл конфигурации apache vhosts, как показано ниже

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot "/home/user/public_html/public"
    <Directory "/home/user/public_html/public">
        Options Indexes FollowSymLinks
        AllowOverride all
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName staging.example.com
    DocumentRoot "/home/user/public_html/staging/public"
    <Directory "/home/user/public_html/staging/public">
        Options Indexes FollowSymLinks
        AllowOverride all
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

Для example.com вы устанавливаете приложение laravel в папку / home / user / public_html.

В процессе установки laravel будет создана папка public.

Для staging.example.com вы устанавливаете приложение laravel в / home / user /public_html / промежуточная папка.

Не забудьте перезапустить веб-сервер, чтобы он выбрал новую конфигурацию.

Если у вас нет возможности изменить конфигурацию vhost, упомянутую выше, вы можете использовать файл .htaccess.в вашей папке public_html (обратите внимание на начальную точку остановки, которая делает его скрытым файлом).Следующее зависит от того, разрешает ли ваш хостинг-провайдер переопределения .htaccess.

Добавьте в файл .htaccess следующее:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Если хост правильно настроил домен, чтобы он указывал на/ home / username / public_html при вводе http://example.com, тогда он должен автоматически вызвать public / index.php.

Вам нужно будет сделать то же самое в папке public_html / staging.

...