ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHP6 をマルチサイト管理に使用するにはどうすればよいですか?

ThinkPHP6 をマルチサイト管理に使用するにはどうすればよいですか?

王林
王林オリジナル
2023-06-12 12:10:401777ブラウズ

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

このプロジェクトの下には、indexadmin という 2 つのディレクトリがあります。 index ディレクトリはサイトのルート ディレクトリ、admin ディレクトリは別のサイトのルート ディレクトリと考えることができます。管理を容易にするために、それらを別のアプリケーションとして設定できます。

3. マルチアプリケーション構成

複数のアプリケーションの管理を実現するには、構成ファイルを変更する必要があります。

  1. config ディレクトリ内の
  2. app.php

app.php ファイルを変更します。まず、構成ファイルで auto_multi_apptrue に設定する必要があります。

return [
    'auto_multi_app' => true,
    'app_map' => [
        'site1'     => 'index',
        'site2'     => 'admin',
    ],
    ...
];

次に、app_map アイテムを使用して、各サイトのアプリケーションを定義します。たとえば、site1index アプリケーションに設定し、site2admin アプリケーションに設定します。

  1. route.php

route.php ファイルを開き、各サイトのルーティング ルールを構成します。たとえば、site1 サイトの場合、次のように構成できます:

Route::domain('www.site1.com', function () {
    Route::get('/', 'index/hello');
});

これにより、indexwww.site1.com## にバインドされます。 # application Index コントローラーの hello メソッド。

同様に、

site2 サイトの構成は次のようになります:

Route::domain('www.site2.com', function () {
    Route::get('/', 'admin/hello');
});

これは

www.site2.com をバインドします。 adminアプリケーションの Index コントローラーの hello メソッド。

4. テスト

これで、マルチサイト管理の設定が完了しました。では、テストしてみましょう。ブラウザを開き、アドレス バーに

www.site1.com と入力します。アプリケーションの Index コントローラに index が表示されるはずです。hello# の出力## 方法。同様に、www.site2.com と入力すると、アプリケーションに admin が表示されます。 コントローラに Index が表示されます。 hello メソッドの出力。 問題がある場合は、仮想ホストの設定やルーティング設定などを確認してください。

5. まとめ

ThinkPHP6 をマルチサイト管理に使用することは難しくありません。重要なのは、ディレクトリ構造、アプリケーション管理、ルーティング構成を合理的に調整し、関連する仮想サーバーをセットアップすることです。ホスト。この記事を通じて、ThinkPHP6 を使用してマルチサイト管理を行う方法を理解できたと思います。

以上がThinkPHP6 をマルチサイト管理に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。