簡體   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