ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHP6 をマルチサイト管理に使用するにはどうすればよいですか?
Web 開発では、顧客向けに複数のサイトを構築する必要がある場合がありますが、複数のサイトを維持すると作業負荷が増加するため、このときはマルチサイト管理を使用する必要があります。 ThinkPHP6 は、マルチサイト管理をサポートする強力なフレームワークです。この記事では、ThinkPHP6 を使用してマルチサイト管理を行う方法を紹介します。
1. 仮想ホストの構成
マルチサイト管理を使用するには、サーバー上で仮想ホストを構成する必要があります。一般に、仮想ホストの構成は Apache 構成ファイルで実行されます。これは、httpd.conf
ファイルを編集することで実現できます。たとえば、2 つの仮想ホストをローカルに構成できます。 1 つのサイトが www.site1.com
で、もう 1 つが www.site2.com
であるとすると、次のように構成できます。
<VirtualHost *:80> ServerName www.site1.com DocumentRoot "E:/www/site1/" <Directory "E:/www/site1/"> AllowOverride All Require all granted </Directory> </VirtualHost> <VirtualHost *:80> ServerName www.site2.com DocumentRoot "E:/www/site2/" <Directory "E:/www/site2/"> AllowOverride All Require all granted </Directory> </VirtualHost>
定義されたドキュメントのルート ディレクトリが存在し、読み取りおよび書き込み可能である必要があることに注意してください。
2. ThinkPHP6 プロジェクトの作成
マルチサイト管理プロジェクトの作成と通常のプロジェクトの作成に違いはありません。 Composer コマンドを使用してプロジェクトを作成します: composer create-project topthink/think myproject
。作成後のディレクトリ構造は次のようになります。
myproject ├─app │ ├─admin │ └─index ├─config ├─public ├─route ├─runtime └─think
このプロジェクトの下には、index
と admin
という 2 つのディレクトリがあります。 index
ディレクトリはサイトのルート ディレクトリ、admin
ディレクトリは別のサイトのルート ディレクトリと考えることができます。管理を容易にするために、それらを別のアプリケーションとして設定できます。
3. マルチアプリケーション構成
複数のアプリケーションの管理を実現するには、構成ファイルを変更する必要があります。
config
ディレクトリ内の app.php
ファイルを変更します。まず、構成ファイルで auto_multi_app
を true
に設定する必要があります。
return [ 'auto_multi_app' => true, 'app_map' => [ 'site1' => 'index', 'site2' => 'admin', ], ... ];
次に、app_map
アイテムを使用して、各サイトのアプリケーションを定義します。たとえば、site1
を index
アプリケーションに設定し、site2
を admin
アプリケーションに設定します。
route.php
route.php
ファイルを開き、各サイトのルーティング ルールを構成します。たとえば、site1
サイトの場合、次のように構成できます:
Route::domain('www.site1.com', function () { Route::get('/', 'index/hello'); });
これにより、index
が www.site1.com## にバインドされます。 # application
Index コントローラーの
hello メソッド。
site2 サイトの構成は次のようになります:
Route::domain('www.site2.com', function () { Route::get('/', 'admin/hello'); });これは
www.site2.com
をバインドします。 adminアプリケーションの
Index コントローラーの
hello メソッド。
www.site1.com と入力します。アプリケーションの
Index コントローラに
index が表示されるはずです。hello# の出力## 方法。同様に、
www.site2.com と入力すると、アプリケーションに
admin が表示されます。 コントローラに
Index が表示されます。
hello メソッドの出力。
問題がある場合は、仮想ホストの設定やルーティング設定などを確認してください。
以上がThinkPHP6 をマルチサイト管理に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。