关于如何在一个项目中设置多个 laravel 5.1 应用程序的教程

Tutorial on how to setup multiple laravel 5.1 apps in one project

我目前正在从事一个 Laravel 5.1 项目,该项目涉及 public 部分和管理部分。在谷歌搜索我遇到的问题时,我遇到了这个堆栈 post managing user role log in。第一个post推荐的地方。

Admin and Users in the same laravel app is a bad idea simply because the app will share the same session and storage information. There will be a myriad of egde cases that will cause information to bleed through any logic "walls" you set up and you'll end up spending way too much time patching those bleeds. What you really want to do is set up separate laravel applications for each: admin.project.com & project.com. That way you get two separate sessions and storage. All you need to do is ensure that the databases you need are setup in both database.php config files. You can even host BOTH projects on the same server with separate deployments, listening to different ports. TRUST ME this is the best way to go.

有人可以详细解释一下怎么做吗?我的意思是我应该如何设置我的项目。我知道他们很容易共享同一个数据库并且设置起来很容易。第一个问题,如何将 URL admin.mysite.com 作为我的管理部分,将 www.mysite.com 作为我的 2 个应用程序的 public 部分 还有如何在 Azure 中将其设置为 Web 应用程序?我得到了我目前在 Azure 上使用的一个应用程序(互联网上没有 5.1 指南,以某种方式部署它)。

那么有人可以详细解释项目设置应该如何以及应该如何完成吗?找不到 Laravel 5.1 的指南,因为 5.1 设置不同于 5 和 4。* 我不确定如何继续。

根据您的描述,您似乎需要部署 2 个带有自定义域的应用程序。如果是这样,我想在 2 个 Azure Web Apps 服务上分别部署你的管理员和用户应用程序。这有利于应用程序每一侧的管理、部署和扩展。要为您的站点配置子域,您可以参考 Azure Websites and wildcard domains and Mapping a custom subdomain to an Azure Web App (Website).

如果您坚持要在单个 Azure Web Apps Service 上部署 2 个应用程序,您可以尝试 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工具,请参考Create a PHP-MySQL web app in Azure App Service and deploy using Git。但是默认情况下,依赖文件夹 vendor 和 composer 文件不会随项目一起部署到 Azure 上,所以我们必须登录 Azure Web Apps 的 KUDU 控制台站点来安装依赖项。您可以在 KUDU 控制台站点的站点扩展选项卡中安装 Composer,其中 URL 应该是 https://<your_site_name>.scm.azurewebsites.net/SiteExtensions/#gallery 然后 运行 命令 composer install 在您的应用程序根目录中。

此外,您可以简单地利用 KUDU 控制台站点上的 cmdlet,URL 应该是 https://<your-website-name>.scm.azurewebsites.net/DebugConsole,运行 以下命令:

cd site\wwwroot 
curl -sS https://getcomposer.org/installer | php 
php composer.phar install

在Azure上部署laravel,可以参考的回答获取更多信息。