Laravel如何在本地搭建多站點(diǎn)

下面由laravel框架教程欄目給大家介紹laravel在本地搭建多站點(diǎn),希望對(duì)需要的朋友有所幫助!

Laravel如何在本地搭建多站點(diǎn)

前言

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

  1. 沒(méi)有整理好歷來(lái)所有的代碼,沒(méi)有一個(gè)存儲(chǔ)的路徑或方案.
  2. 沒(méi)有對(duì)這些代碼進(jìn)行統(tǒng)一的管理方案.

所以對(duì)我來(lái)說(shuō),眼下最要緊的事,就是先整理好代碼,然后開(kāi)發(fā)出一套屬于自己的本地化管理工具.

這個(gè)工具目前暫定為L(zhǎng)aravel進(jìn)行開(kāi)發(fā).采用的是前后端分離的策略,以便日后多端可以有相應(yīng)的api進(jìn)行使用.

然后我也不是特別喜歡多開(kāi)好幾個(gè)Laravel進(jìn)行開(kāi)發(fā),所以一個(gè)Laravel框架中,同時(shí)包含多域名也是成為一個(gè)主要的問(wèn)題之一.

今天我就好好的記錄下,我用Laravel在本地化進(jìn)行多域名的設(shè)置.其實(shí)架設(shè)到其他的系統(tǒng)其實(shí)都差不多的.

方案

目前決定先分為兩個(gè)域名.

一個(gè)是API的接口域名,我定為: api.hellolux.com

一個(gè)是后臺(tái)管理域名,我定為: admin.hellolux.com

實(shí)現(xiàn)

在Controller層新增文件夾

在apphttpControllers目錄下,新增兩個(gè)文件夾,分別為Api和Admin.

修改RouteServiceProvider.php文件

在appProvidersRouteServiceProvider.php中,修改

#?新增項(xiàng)目名稱的命名空間 protected?$AdminNamespace?=?'AppHttpControllersAdmin'; protected?$ApiNamespace?=?'AppHttpControllersApi';  public?function?map() { ????#?根據(jù)項(xiàng)目名稱定義路由 ????$this->mapApiRoutes(); ????$this->mapAdminRoutes(); }  #?新增兩個(gè)方法 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兩個(gè)文件

#?api.php use?IlluminateHttpRequest;  Route::get('/',?"IndexController@index");    #?admin.php use?IlluminateHttpRequest;  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> ????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

完成

瀏覽器打開(kāi)admin.hellolux.com和api.hellolux.com分別會(huì)顯示具體的頁(yè)面了.

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享