繁体   English   中英

在共享主机上托管在Laravel 4上运行的两个不同的应用程序

[英]Hosting two different applications running on Laravel 4 on shared hosting

我即将开始使用Laravel4开发网站,该网站将包含托管在子域中的cms。 我想知道是否有办法在两个应用程序之间共享主要的Laravel安装?

我使用以下示例在测试中取得了各种成功: Laravel完整URL路由 ,但是我想将app文件夹中的功能分开,并使用诸如app_main,app_cms之类的东西来保存每个模型的相关模型,视图和控制器网站在那里。

在如何针对这样的要求设置Laravel方面,我似乎找不到太多帮助,因此对此的任何帮助都将非常有用。

我有一个多主机解决方案,登录到FTP后包含以下文件夹:

domaina.com
domainb.com
domainc.com

如果我想在这些网站之间共享相同的Laravel代码,则只需在同一级别上创建“ Laravel”文件夹,因此它看起来像这样:

domaina.com
domainb.com
domainc.com
laravel

该“ laravel”文件夹包含除“ app”和“ public”目录以外的所有内容。

我只是将“公共”目录的内容直接放在“ domaina.com”文件夹中(例如)。 打开“ index.php”并调整这些行以匹配实际位置。 现在你可以走了

require __DIR__.'/../bootstrap/autoload.php';

$app = require_once __DIR__.'/../bootstrap/start.php';

bootstrap/paths.php包含主文件夹定义。 对于每个实例,您可以从文件更改app文件夹,公用文件夹,基本文件夹,存储文件夹等。

您可以设置Cookie /会话,或检查主域和子域的域等,并进行如下更改:

'app' => Session::has('subdomain')?'../../app':__DIR__.'/../app',

为此使用路由器。

例如

Route::group(array('domain'=>'example.com'), function(){
//Define the routes for example.com
});

Route::group(array('domain'=>'cms.example.com'), function(){
//Define the routes for cms.example.com
});

为了便于维护,可以将名称空间用于控制器。

例如,您的控制器文件夹如下所示

App
|
|---Controllers
    |-- site
        |
        |-----HomeController.php

    |-- subdomain
        |
        |-----HomeController.php

现在,对于站点控制器,请使用诸如<?php namespace site;?>类的namspace <?php namespace site;?>

对于子域控制器,请使用<?php namespace subdomain;?>

在路由文件中,将路由定义为

Route::group(array('domain'=>'example.com'), function(){
    Route::get('/', array(
       'as' => 'index',
       'uses' => '\site\HomeController@index'
    ))
});

对于子域,

Route::group(array('domain'=>'cms.example.com'), function(){
    Route::get('/', array(
       'as' => 'cms.index',
       'uses' => '\subdomain\HomeController@index'
    ))
});

简单明了的方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM