Docker を使用して WordPress サイトをデプロイする方法

小規模なプライベート サイトであっても、何百万人もの訪問者がいる巨大なブログであっても、これは 記事 Docker を使用して WordPress サイトを迅速かつ簡単にデプロイする方法を学びます。

ドッカーとは何ですか?

Docker はオープンソース ソフトウェアですこれにより、アプリケーションを分離されたコンテナーで実行できるようになります。これにより、開発者は複雑なインフラストラクチャについて心配することなく、標準化された環境でアプリケーションを展開して実行できるようになります。

Docker はどのように機能するのでしょうか?

Docker は、ソフトウェア パッケージをコンテナの形式で提供するオープン ソース プロジェクトです。これらのコンテナは以下で使用できます。 すべてのコンピュータ オペレーティング システムに関係なく実行できます。 Docker を使用すると、開発者はアプリケーションをコンテナにパッケージ化し、任意のプラットフォームにデプロイできます。

Docker はコンテナの原則に従って動作します。コンテナーは、アプリケーションを実行できる分離された環境です。コンテナには、アプリケーションに必要なすべてのコンポーネント、ライブラリ、ファイルが含まれています。他のコンテナーやホスト システムから隔離されているため、コンテナー内のアプリケーションはエラーなく実行されます。

Linuxコンテナ(LXC)

Docker は Linux コンテナー (LXC) に基づいています。 LXC では 1 台の仮想マシン上で複数の仮想マシンが可能になります 物理サーバー 動作します。各仮想マシンには独自の CPU、RAM、ハード ドライブがあります。ただし、LXC コンテナーは他のコンテナーやホスト システムから完全に分離されているわけではありません。

Docker は、名前空間とコントロール グループ (cgroup) を使用して、コンテナーの完全な分離を実現します。名前空間はコンテナ環境を相互に分離します。各コンテナには独自のネットワーク スタック、プロセス、ユーザーがあります。コントロールグループは、コンテナーへのアクセスを制限します。 資源 CPU、メモリ、ハードドライブなどのホストシステムの。

Docker の利点

Docker は、アプリケーションとその依存関係の分離を可能にするオープン ソース プロジェクトです。これは、アプリケーションをホスト システムにインストールしなくても、Docker コンテナ内で実行できることを意味します。

Docker は、開発者が互換性の問題を気にせずにコンテナ内でアプリケーションをテストおよびデバッグできるため、開発に最適です。

もう 1 つの利点は、Docker コンテナーは移植可能であることです。これは、Linux システムで作成されたコンテナーは Windows または macOS システムでも実行できることを意味します。

Docker コンテナはあらゆるプラットフォームで実行でき、Docker は Linux をサポートします。 Windows そしてMacOS。

Docker の欠点

ドッカーとは、 素晴らしいツールコンテナ内のアプリケーションを分離して配布します。ただし、Docker には、WordPress サイトを Docker でデプロイすることを決定する前に考慮する必要があるいくつかの欠点もあります。

Docker の最大の欠点の 1 つは、Docker が比較的新しい製品であることです。これは、この製品には長期的な経験がなく、ベスト プラクティスがまだ確立されていないことを意味します。

Docker のもう 1 つの欠点は、Docker をインストールできるハードウェアとオペレーティング システムに関していくつかの制限があることです。たとえば、Windows コンテナを Mac または Linux ディストリビューション上で実行することはできません。

結論として、Docker にはセキュリティ上のリスクもいくつかあります。これにより、悪意のある攻撃者がコンテナに侵入し、そこからホスト コンピュータを攻撃することが可能になります。したがって、WordPress サイトを Docker でデプロイするかどうかを慎重に検討する必要があります。

Docker を使用して WordPress サイトをデプロイする必要があるのはなぜですか?

docker は、アプリケーションを実行できるコンテナを提供するオープン ソース プロジェクトです。これらのコンテナは分離されており、実行される独自の環境があります。 Docker ホスト上に複数のコンテナーを配置でき、各コンテナーで異なるアプリケーションを実行できます。

Docker はサイトを実行するためのクリーンな環境を提供するため、WordPress サイトのデプロイに最適です。さらに、Docker を使用すると、1 つのサイトに複数の WordPress サイトを配置できます。 ライブ、セミライブ、オンデマンドビデオ ベライトステレン。

Docker を使用して WordPress サイトを準備するにはどうすればよいですか?

この記事では、初めて Docker を使用して WordPress サイトをデプロイする方法について説明します。 Docker をまだインストールしていない場合は、ここでインストール手順を見つけることができます。

まず、WordPress サイトのディレクトリを作成する必要があります。これは、サイトのすべてのファイルが保存されるディレクトリです。例えば:

mkdir / 私のWordPressサイト

docker-compose.yml

次に、このディレクトリに docker-compose.yml ファイルを作成する必要があります。 docker-compose.yml ファイルは、WordPress サイトのすべての設定を定義する構成ファイルです。例えば:

バージョン: '2' サービス: db: イメージ: mysql: 5.7 再起動: 常に 環境: MYSQL_ROOT_PASSWORD: 例 MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: 例 wp: 画像: wordpress 再起動: 常に 環境: WORDPRESS_DB_HOST : db : 3306 WORDPRESS_DB_NAME : wordpress WORDPRESS_DB_USER : wordpress WORDPRESS_DB_PASSWORD : ポート例 : – “8080 : 80”

docker-compose バージョンは、このファイルで最初に定義されます。この例ではバージョン 2 が使用されます。

MySQLデータベース

次に、2 つのサービスが定義されます。 MySQLデータベース そしてWordPress向けのサービスです。各サービスでは、使用するイメージを指定する必要があります。環境変数、ポート、ファイル呼び出しなどの他の設定を定義することもできます。

たとえば、この例では、WordPress サービスの環境変数 WORDPRESS_DB_HOST が db サービスに設定されます。これにより、WordPress に、 MySQLデータベース 位置しています。

docker-compose.yml ファイルで定義できる設定は他にもたくさんあります。さらに詳しい情報は、 Docker Compose ドキュメント.

.htaccess

次に、ディレクトリに .htaccess ファイルを作成する必要があります。このファイルは、 URLは WordPress サイト用。例えば:

RewriteRule ^$ インデックスの RewriteEngine 。 php [QSA] RewriteCond % {REQUEST_FILENAME} ! -f RewriteCond % {REQUEST_FILENAME} ! -d RewriteRule ^( . * )$ インデックス 。 php? $1 [QSA]

このファイルにより、WordPress サイトへのすべてのリクエストが Index.php 経由でルーティングされるようになります。これは WordPress サイトのデフォルト構成です。

WP-config.phpを

次に、ディレクトリに wp-config.php ファイルを作成する必要があります。このファイルには、WordPress サイトの構成設定が含まれています。 WordPress のデフォルトの wp-config.php ファイルを使用することも、独自のファイルを作成することもできます。

例:define('DB_NAME', 'wordpress'); /** MySQL データベースのユーザー名 */define('DB_USER', 'wordpress'); /** MySQL データベースのパスワード */define('DB_PASSWORD', 'example'); /** MySQL hostname */define('DB_HOST', 'db:3306'); /** データベース テーブルの作成に使用するデータベース文字セット。 */define('DB_CHARSET', 'utf8'); /** データベースの照合タイプ。疑わしい場合は、これを変更しないでください。 */define('DB_COLLATE', ”);

このファイルでは、WordPress サイトのデータベース情報を構成する必要があります。たとえば、WordPress が MySQL データベースの場所を認識できるように、DB_HOST を db サービスに設定する必要があります。

wp-config.php ファイルで定義できる設定は他にもたくさんあります。さらに詳しい情報は、 WordPress ドキュメント.

index.phpを

次に、ディレクトリにindex.phpファイルを作成する必要があります。このファイルは、WordPress サイトのメイン ファイルです。例えば:

このファイルでは、WordPress がアクティブなテーマを使用できるように、WP_USE_THEMES 変数が最初に true に設定されます。次に、wp-blog-header.php ファイルがロードされ、WordPress アプリケーションの残りの部分が初期化されます。

robots.txtの

次に、ディレクトリに Robots.txt ファイルを作成する必要があります。このファイルは、サイトをクロールする検索エンジン ボットを制御するために使用されます。例えば:

ユーザーエージェント: * 禁止: / wp-admin / 許可: / wp-admin / admin-ajax.php

この例では、すべてのボットが /wp-admin/ ディレクトリを参照しないように指定しています。これは、ボットが WordPress インストール上で望ましくないアクションを実行するのを防ぐ良い方法です。

favicon.icoを

次に、ディレクトリに favicon.ico ファイルを作成する必要があります。これは、サイトにアクセスしたときにブラウザのアドレス バーに表示される小さなグラフィックです。好きなグラフィックを使用することも、このようなジェネレーターを使用することもできます。

Apache設定ファイル

次に、ディレクトリに Apache 構成ファイルを作成する必要があります。このファイルは、サイトの Apache Web サーバー構成を構成するために使用されます。例えば:

ServerName my-wordpress-site.example.com DocumentRoot / my-wordpress-site ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log 結合

このファイルでは、最初にサーバー名がサイトのドメイン名または IP アドレスに設定されます。ドキュメント ルートはサイトのディレクトリに設定されます。エラーとアクセスのログも提供されるため、サイトで何が起こっているかを確認できます。

Apache 構成ファイルには他にも多くの設定を定義できます。さらに詳しい情報は、 Apacheのドキュメント.

php.iniの

次に、ディレクトリに php.ini ファイルを作成する必要があります。このファイルは、サイトの PHP 構成を構成するために使用されます。例えば:

display_errors = オン display_startup_errors = オン error_reporting = E_ALLmemory_limit = 512M Upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300

いくつかの基本的な PHP 設定はこのファイルで構成されます。 php.ini ファイルで定義できる設定は他にもたくさんあります。さらに詳しい情報は、 PHP ドキュメント.

Apache vhost ファイル

次に、ディレクトリに Apache vhost ファイルを作成する必要があります。このファイルは、サイトの仮想ホスト構成を構成するために使用されます。例えば:

ServerName my-wordpress-site.example.com ServerAlias www.my-wordpress-site.example.com DocumentRoot / my-wordpress-site ErrorLog $ {APACHE_LOG_DIR} / error 。ログ CustomLog $ {APACHE_LOG_DIR} / アクセス 。結合されたログ < ディレクトリ / my-wordpress – site >AllowOverride All すべて許可する必要があります

このファイルでは、最初にサーバー名がサイトのドメイン名または IP アドレスに設定されます。ドキュメント ルートはサイトのディレクトリに設定されます。エラーとアクセスのログも提供されるため、サイトで何が起こっているかを確認できます。

Apache vhost ファイルには他にも多くの設定を定義できます。さらに詳しい情報は、 Apache のドキュメント。

Apache SSL 設定ファイル

次に、ディレクトリに Apache SSL 構成ファイルを作成する必要があります。このファイルは、サイトの SSL/TLS 構成を構成するために使用されます。例えば:

ServerName my-wordpress-site.example.com DocumentRoot / my-wordpress – サイト ErrorLog $ {APACHE_LOG_DIR} / error 。ログ CustomLog $ {APACHE_LOG_DIR} / アクセス 。 SSLCertificateFile / path / to / your /certificate に結合された SSLEngine をログに記録します。 crt SSLCertificateKeyFile /パス /to /あなたの /証明書 。鍵

Apache SSL 構成ファイルには他にも多くの設定を定義できます。さらに詳しい情報は、 Apacheのドキュメント.

最後に、サイトの SSL 証明書を作成する必要があります。これは、Let's Encrypt などのツールを使用して実行できます。詳細については、Apache のドキュメントを参照してください。

上記のファイルをすべて作成したら、docker-compose up -ddeploy コマンドを使用して WordPress サイトを起動できます。このコマンドは、docker-compose.yml ファイル内のすべてのサービスを開始し、WordPress サイトをデプロイします。

Fazit

それでおしまい!この記事では、Docker を使用して WordPress サイトをデプロイする方法を学びました。 Docker イメージの構築とデプロイがいかに簡単であるかを見てきました。また、Docker を使用してデプロイする利点についても学びました。

注意..は重要!

このウェブサイト上でリンクされているすべての外部サイトは独立した情報源です。 
これらのリンクにはスポンサーは付いておらず、リンクを含めるために金銭的な寄付も受けていません。 
このウェブサイト上のすべての情報は無保証で提供されます。
このサイトは、による個人プロジェクトです。 Jan Domke 個人的な意見や経験のみを反映しています。

Jan Domke

プロンプトエンジニア |ソーシャルメディアマネージャー |ホスティングマネージャー |ウェブ管理者

2021年末からオンラインマガジンを個人運営しています SEO4Business こうして私の仕事は趣味に変わりました。
2019年から社員として働いています Senior Hosting Manager、ドイツ最大のインターネットおよびマーケティング代理店の 1 つで、常に視野を広げています。

Jan Domke