Docker、Nginx、ApachewithSSLを使用してWordPressをインストールします。 このガイドでは、Docker、Docker Compose、Nginx、Apache、PHP 8.1、MariaDB、Let’s Encryptを使用して、Ubuntu22.04でWordPressを実行するための最高のパフォーマンス設定を行う方法を学習します。
また、ボリュームを作成して、コンテナーの再起動中に変更または更新が保持されるようにします。
このセットアップは、Ubuntu22.04OSを実行しているインスタンスを使用してGoogleクラウドでテストされています。 このセットアップは、AWS、Azure、DigitalOceanなどのクラウドサービス、または専用サーバーやVPSサーバーでも行うことができます。
前提条件
- Ubuntu22.04にDockerをインストールします
- DockerComposeをUbuntu22.04にインストールします。
上記のすべての手順を完了していることを確認してください
- ドメインがサーバーのIPアドレスを指しています。
- Dockerがインストールおよび構成されています。
- DockerComposeがインストールおよび構成されています。
すべての前提条件が完了したら、WordPressのセットアップと構成に進むことができます。
ステップ1:プロジェクトディレクトリを作成する
サーバーにSSHで接続し、次の名前の新しいプロジェクトディレクトリを作成することから始めます。 wp-project。 必要に応じて名前を付けることもできます。
mkdir wp-project
ステップ2:DockerComposeYMLファイルを作成する
次に、プロジェクトディレクトリ内を移動し、次の構成で新しいdocker-compose.ymlファイルを作成します。
cd wp-project
新しいを作成します docker-compose.yml ファイル。
nano docker-compose.yml
以下の内容全体をコピーしてファイルに貼り付けてください。
必ず下記の環境変数を置き換えてください。
version: "3.9"
services:
wordpress:
container_name: wordpress
image: wordpress:php8.1-apache
restart: always
stdin_open: true
tty: true
environment:
WORDPRESS_DB_HOST: mariadb
WORDPRESS_DB_USER: db_user
WORDPRESS_DB_PASSWORD: db_user_pass
WORDPRESS_DB_NAME: db_name
volumes:
- wordpress_data:/var/www/html
- ./wordpress:/var/www/html
mariadb:
container_name: mariadb
image: mariadb
restart: always
environment:
MYSQL_DATABASE: db_name
MYSQL_USER: db_user
MYSQL_PASSWORD: db_user_pass
MYSQL_RANDOM_ROOT_PASSWORD: 'root_pass'
volumes:
- db_data:/var/lib/mysql
nginx:
container_name: nginx
image: nginx:latest
restart: unless-stopped
ports:
- 80:80
- 443:443
volumes:
- ./nginx/conf:/etc/nginx/conf.d
- ./certbot/conf:/etc/nginx/ssl
- ./certbot/data:/var/www/html
certbot:
container_name: certbot
image: certbot/certbot:latest
command: certonly --webroot --webroot-path=/var/www/html --email [email protected] --agree-tos --no-eff-email -d domain.com -d www.domain.com
volumes:
- ./certbot/conf:/etc/letsencrypt
- ./certbot/logs:/var/log/letsencrypt
- ./certbot/data:/var/www/html
volumes:
db_data:
wordpress_data:
打つ CTRL-X に続く Y と ENTER ファイルを保存して終了します。
構成の詳細は次のとおりです。
- バージョン:Dockerエンジンと互換性のあるファイルバージョンを作成します。 互換性を確認できます ここ。
- サービス:ここに3つのサービスがあります
wordpress、nginxとcertbot。 - 画像:PHP 8.1、Apache、 Nginx と Certbot Dockerハブで利用可能なイメージ。
- ボリューム:
wordpress:このディレクトリを、コンテナ内のWebルートとして使用するディレクトリと同期するように構成しました。conf:ここでは、コンテナー内のデフォルトのNginxconf.dフォルダーと同期するNginx構成ファイルを配置します。cedtbot/conf:これはSSL証明書を受け取る場所であり、コンテナー内の目的のフォルダーと同期されます。ports:リストされたポートをリッスンするようにコンテナーを構成します。command:SSL証明書の受信に使用されるコマンド。
- 環境:ここでは、使用可能なすべての環境変数を一覧表示します。 WordPress画像。
WORDPRESS_DB_HOST:ここでは、MariaDBコンテナーのサービス名を使用しています。WORDPRESS_DB_USER:mariadbサービスで構成したものと同じです。WORDPRESS_DB_PASSWORD:mariadbサービスで構成したものと同じです。WORDPRESS_DB_NAME:mariadbサービスで構成したものと同じです。
ステップ3:Nginxを構成する
によると docker-compose.yml 作成する必要のある構成 default.conf 内部のファイル nginx/conf ディレクトリ。
あなたのほかにディレクトリを作成します docker-compose.yml 構成ファイルを保持するファイル。
mkdir -p nginx/conf
名前の付いたファイルを作成します default.conf。
nano nginx/conf/default.conf
次の構成を配置します。ここでは、リバースプロキシ構成を使用してApacheを実行しているWordPressコンテナを使用します。
server {
listen [::]:80;
listen 80;
server_name domain.com www.domain.com;
root /var/www/html;
index index.php;
location ~ /.well-known/acme-challenge {
allow all;
root /var/www/html;
}
location / {
try_files $uri @apache;
}
location ~ ^/.user.ini {
deny all;
}
location ~* .(svg|svgz)$ {
types {}
default_type image/svg+xml;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location @apache {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_pass http://wordpress:80;
}
location ~[^?]*/$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_pass http://wordpress:80;
}
location ~ .php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_pass http://wordpress:80;
}
location ~/. {
deny all;
access_log off;
log_not_found off;
}
}
打つ CTRL-X に続く Y と ENTER ファイルを保存して終了します。
これで、dockercompose構成とNginx構成ができました。
ステップ4:DockerComposeを使用してWordPressをデプロイする
次のコマンドを使用してコンテナを起動します。コンテナが起動するとSSL証明書を受け取ります。
docker-compose up -d
すべてのコンテナが開始されると、2つの追加ディレクトリが表示されます certbot と wordpress あなたと一緒に作成 docker-compose.yml ファイル。
ディレクトリ wordpress すべてのWordPressWebサイトのソースコードを保持します。
ディレクトリ certbot SSL証明書に関連するすべてのファイルを保持します。
コンテナを表示するには、次のコマンドを実行できます。
docker-compose ps
ステップ5:Let’sEncryptSSLをNginxで構成する
Let’s Encrypt SSL証明書を受け取ったら、HTTPSを構成し、HTTPSへのリダイレクトを設定できます。
編集します default.conf 次の変更を行います。
nano nginx/conf/default.conf
server {
listen [::]:80;
listen 80;
server_name domain.com www.domain;
return 301 https://www.domain.com$request_uri;
}
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
server_name domain.com;
ssl_certificate /etc/nginx/ssl/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/live/domain.com/privkey.pem;
return 301 https://www.domain.com$request_uri;
}
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
server_name www.domain.com;
ssl_certificate /etc/nginx/ssl/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/live/domain.com/privkey.pem;
root /var/www/html;
index index.php;
location ~ /.well-known/acme-challenge {
allow all;
root /var/www/html;
}
location / {
try_files $uri @apache;
}
location ~ ^/.user.ini {
deny all;
}
location ~* .(svg|svgz)$ {
types {}
default_type image/svg+xml;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location @apache {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_pass http://wordpress:80;
}
location ~[^?]*/$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_pass http://wordpress:80;
}
location ~ .php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_pass http://wordpress:80;
}
location ~/. {
deny all;
access_log off;
log_not_found off;
}
}
打つ CTRL-X に続く Y と ENTER ファイルを保存して終了します。
次に、Nginxサービスを再起動して、新しい構成をロードします。
docker-compose restart nginx
これで、ブラウザからドメイン名を確認できます。 HTTPSへのリダイレクトが表示され、WordPressのインストールページが表示されてインストールが完了します。
最も学ぶ WordPressの高度なテクニック この習得しやすいコースで今すぐ。
結論
これで、Nginx、Apache、PHP 8.1、MariaDBを使用してWordPressをインストールおよびセットアップする方法と、Ubuntu22.04でDockerおよびDockerComposeを使用して暗号化する方法を学習しました。
御時間ありがとうございます。 問題やフィードバックに直面した場合は、以下にコメントを残してください。
The post DockerNginxリバースプロキシを使用してWordPressをSSLを使用してApacheにインストールする appeared first on Gamingsym Japan.