首頁 >php框架 >Laravel >Laravel如何在本地搭建多站點

Laravel如何在本地搭建多站點

藏色散人
藏色散人轉載
2020-11-30 14:35:004731瀏覽

下面由Laravel框架教學欄位給大家介紹Laravel在本地搭建多站點,希望對需要的朋友有幫助!

Laravel如何在本地搭建多站點

#前言

最近的想法挺多的,又想做這個又想做那個.但是碰到一個很難受的問題就是:

  1. 沒有整理好歷來所有的程式碼,沒有一個儲存的路徑或方案.
  2. #沒有對這些程式碼進行統一的管理方案.

所以對我來說,眼下最要緊的事,就是先整理好程式碼,然後開發出一套屬於自己的本地化管理工具.

這個工具目前暫定為Laravel進行開發.採用的是前後端分離的策略,以便日後多端可以有相應的api進行使用.

然後我也不是特別喜歡多開好幾個Laravel進行開發,所以一個Laravel框架中,同時包含多域名也是成為一個主要的問題之一.

今天我就好好的記錄下,我用Laravel在本地化進行多域名的設置.其實架設到其他的系統其實都差不多的.

方案

目前決定先分成兩個網域.

一個是API的介面網域,我定為: api.hellolux.com

一個是後台管理網域,我定為: admin.hellolux.com

實作

#在Controller層新增資料夾

在app\Http\Controllers目錄下,新增兩個資料夾,分別為Api和Admin.

修改RouteServiceProvider.php檔案

在app\Providers\RouteServiceProvider.php中,修改

# 新增项目名称的命名空间
protected $AdminNamespace = 'App\Http\Controllers\Admin';
protected $ApiNamespace = 'App\Http\Controllers\Api';

public function map()
{
    # 根据项目名称定义路由
    $this->mapApiRoutes();
    $this->mapAdminRoutes();
}

# 新增两个方法
protected function mapAdminRoutes()
{
    Route::group([
        'domain' => config('app.admin_domain'),
        'namespace' => $this->AdminNamespace,
    ], function ($router) {
        require base_path('routes/admin.php');
    });
}
protected function mapApiRoutes()
{
    Route::group([
        'domain' => config('app.api_domain'),
        'namespace' => $this->ApiNamespace,
    ], function ($router) {
        require base_path('routes/api.php');
    });
}

在config/app.php新增

'api_domain' => env('API_DOMAIN', 'api.hellolux.com'),
'admin_domain' => env('ADMIN_DOMAIN', 'admin.hellolux.com'),

在.env中新增

API_DOMAIN=api.hellolux.com
ADMIN_DOMAIN=admin.hellolux.com

在routes目錄下,新增api.php和admin.php兩個檔案

# api.php
use Illuminate\Http\Request;

Route::get('/', "IndexController@index");



# admin.php
use Illuminate\Http\Request;

Route::get('/', "IndexController@index");

在/etc/hosts中增加網域名稱

# Local_Manage
127.0.0.1   api.hellolux.com
127.0.0.1   admin.hellolux.com

/etc/apache2/http.conf中取消vhosts註解

Include /private/etc/apache2/extra/httpd-vhosts.conf

在/etc/apache2/extra/httpd-vhosts.conf中,新增

<VirtualHost *:80>
    ServerAdmin hellolux@163.com
    DocumentRoot "/Users/hellolux/Documents/Github/Local_Manage/public"
    ServerName hellolux
    ServerAlias *.hellolux.com
    ErrorLog "/Users/hellolux/Documents/Github/Local_Manage/logs/error.log"
    CustomLog "/Users/hellolux/Documents/Github/Local_Manage/logs/access.log" common
</VirtualHost>

重啟apache

sudo apachevtl restart

完成

瀏覽器開啟admin.hellolux.com和api.hellolux.com分別會顯示具體的頁面了.

以上是Laravel如何在本地搭建多站點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除