ホームページ >PHPフレームワーク >Laravel >Laravelでローカルに複数のサイトを構築する方法

Laravelでローカルに複数のサイトを構築する方法

藏色散人
藏色散人転載
2020-11-30 14:35:004732ブラウズ

Laravel Framework の次のチュートリアル コラムでは、Laravel を使用してローカルに複数のサイトを構築する方法を紹介します。

Laravelでローカルに複数のサイトを構築する方法

まえがき

##最近、思うことがたくさんあります。あれもこれもやりたいのですが、非常に不快な問題に遭遇しました:

以前のコードがすべて整理されておらず、ストレージ パスも計画もありません。

    これらのコードには統一された管理ソリューションはありません。
  1. したがって、私にとって現時点で最も重要なことは、まずコードを整理してから、独自のローカライズされた管理ツールのセットを開発することです。
このツールは現在暫定的に Laravel 向けに開発する予定であり、将来的には複数の端末で対応する API を用意できるようにフロントエンドとバックエンドを分離する戦略を採用しています。特に複数のターミナルを開くのは好きではありません。いくつかの Laravel が開発されているため、Laravel フレームワークに複数のドメイン名を含めることが主な問題の 1 つになっています。

今日はそれを注意深く記録します。私は Laravel を使用して、ローカライゼーションで複数のドメイン名を設定します。実際、他のシステムの構築もほぼ同じです。

計画

#現在、2 つのドメイン名に分割することに決定しています。

1 つは API のインターフェイス ドメイン名で、次のように決定しました:

api.hellolux.com

1 つはバックグラウンド管理ドメイン名で、次のように設定しました:

admin.hellolux.com

implementation

コントローラー層に新しいフォルダーを追加します

app\Http\Controllers ディレクトリに、次の 2 つの新しいフォルダーを追加します。 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/ に

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

を追加します。 app.php..env に

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

を追加します。 Routes ディレクトリに、2 つの新しいファイル、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>

Restart apache## を追加します#
sudo apachevtl restart

Complete

ブラウザ admin.hellolux.com と api.hellolux.com を開くと、それぞれ特定のページが表示されます。

##

以上がLaravelでローカルに複数のサイトを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。