В настоящее время я работаю над проектом Laravel 5.1, который включает общедоступный раздел и раздел администратора. При поиске проблемы, с которой я столкнулся, я наткнулся на этот пост в стеке of-other-user-types">управление журналом роли пользователя. Там, где первый пост рекомендует.
Администратор и пользователи в одном и том же приложении laravel - плохая идея просто потому, что приложение будет использовать одну и ту же информацию о сеансе и хранилище. Будет множество случаев egde, которые заставят информацию просачиваться через любые логические "стены", которые вы установили, и в конечном итоге вы потратите слишком много времени на исправление этих просачиваний. Что вы действительно хотите сделать, так это настроить отдельные приложения laravel для каждого: admin.project.com и project.com. Таким образом, вы получаете два отдельных сеанса и хранилище. Все, что вам нужно сделать, это убедиться, что необходимые вам базы данных настроены в обоих конфигурационных файлах database.php. Вы даже можете размещать ОБА проекта на одном сервере с отдельными развертываниями, прослушивая разные порты. ПОВЕРЬТЕ МНЕ, это лучший путь.
Кто-нибудь может подробно объяснить, как это можно сделать? Я имею в виду, как мне настроить свой проект. Я знаю, что им легко использовать одну и ту же БД, и это легко настроить. Первый вопрос: как мне использовать URL-адреса admin.mysite.com в качестве раздела администратора и www.mysite.com в качестве общедоступного раздела для моих 2 приложений. Также как настроить его в Azure как веб-приложение? У меня есть одно приложение, которое я сейчас работаю в Azure (нет руководств по 5.1 в Интернете, его каким-то образом развернули).
Так может ли кто-нибудь подробно объяснить, как должна выглядеть настройка проекта и как это должно быть сделано? Не удалось найти руководства для Laravel 5.1, а поскольку настройка 5.1 отличается от 5 и 4.* Я не знаю, как продолжить.
Ответ 1 · рейтинг 1 · Gary Liu
Судя по вашему описанию, вам нужно развернуть 2 приложения с собственными доменами. Если это так, я думаю развернуть ваши приложения администратора и пользователя отдельно в 2 службах Azure Web Apps. Это выгодно для управления, развертывания и масштабирования для каждой стороны ваших приложений. Чтобы настроить субдомены для вашего сайта, вы можете обратиться к Веб-сайты Azure и подстановочные домены и Сопоставление пользовательского поддомена с веб-приложением Azure (веб-сайтом).
Если вы настаиваете на развертывании 2 приложений в одной службе веб-приложений Azure, вы можете попробовать это с перезаписью URL-адреса в IIS Web.config, например.
<rule name="RewriteRequestsAdmin" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTP_HOST}" pattern="^admin\.XXXX\.com$"/>
</conditions>
<action type="Rewrite" url="AdminApp/public/index.php/{R:0}" />
</rule>
<rule name="RewriteRequestsUser" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
</conditions>
<action type="Rewrite" url="UserApp/public/index.php/{R:0}" />
</rule>
</rules>
Чтобы развернуть локальный проект laravel в Azure Web Apps, вы можете использовать инструменты Git или FTP, см. Создать веб-приложение PHP-MySQL в Службе приложений Azure и развернуть с помощью Git. Но по умолчанию папка зависимостей vendor и файлы композитора не будут развернуты в Azure вместе с проектом, поэтому для установки зависимостей нам необходимо войти на сайт консоли KUDU ваших веб-приложений Azure. Вы можете установить композитор на вкладке расширений сайта вашего сайта консоли KUDU, URL-адрес которого должен быть https://<your_site_name>.scm.azurewebsites.net/SiteExtensions/#gallery, а затем запустить команду composer install в корневом каталоге вашего приложения.
Кроме того, вы можете просто использовать командлет на своем сайте консоли KUDU, URL-адрес которого должен быть https://<your-website-name>.scm.azurewebsites.net/DebugConsole, выполните следующие команды:
cd site\wwwroot
curl -sS https://getcomposer.org/installer | php
php composer.phar install
Для развертывания laravel в Azure вы можете обратиться к ответу laravel 5.1 в веб-приложении Windows Azure для получения дополнительной информации.