をインストールしておく。
DNSやhostsを設定して、
example.comのようなドメインから
サーバーのIPアドレスへ名前解決できるようにしておく。
WordPress公式・リリースから、最新のtar.gzのURLを確認する。
2021年10月現在、最新版は5.8.1。
URLは、https://ja.wordpress.org/wordpress-5.8.1-ja.tar.gz
mkdir -p /home/user1/WordPress cd /home/user1/WordPress curl -OL https://ja.wordpress.org/wordpress-5.8.1-ja.tar.gz
WordPress用のディレクトリを作成。
WordPress用のディレクトリにwordpress-5.8.1-ja.tar.gzをダウンロード。
tar xzf wordpress-5.8.1-ja.tar.gz
wordpress-5.8.1-ja.tar.gzを解凍。
wordpressというディレクトリが生成される。
mv wordpress example.com
wordpressディレクトリを、example.comのような名前に変更する。
複数のWordPressサイトを運営することを想定して、
/home/user1/WordPressディレクトリの下に
のようなディレクトリを作成して、サイト単位(ドメイン単位)で管理する。
cd /home/user1/WordPress/example.com chown -R nginx:nginx .
WordPressサイトのドキュメントルートおよびその配下のファイル・ディレクトリの所有者をnginx:nginxに設定する。
nginx:nginxは、nginxサービスの実行ユーザー。
vi /etc/nginx/conf.d/example.com.conf
server {
listen 80;
server_name example.com www.example.com;
root /home/user1/WordPress/example.com;
}
certbotで証明書を発行するために、
最低限としてserver_nameとrootだけ設定する。
これにより、certbot certonlyコマンドのACMEチャレンジが通るようになる。
nginx -t systemctl restart nginx
certbot certonly --webroot -w /home/user1/WordPress/example.com -d example.com -d www.example.com --email admin@example.com --dry-run
–dry-runオプション付きで、certbotコマンドを実行。
certbot certonly --webroot -w /home/user1/WordPress/example.com -d example.com -d www.example.com --email admin@example.com
–dry-runオプションなしで、certbotコマンドを実行。
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
root /home/user1/WordPress/example.com;
index index.php index.html index.htm;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
}
location ~* /\.well-known {
allow all;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ /\. {
deny all;
}
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 1y;
log_not_found off;
}
}
httpからhttpsにリダイレクト。
httpsに対応させる。
phpを実行できるようにする。
uploadsとfilesを含むパスの.phpファイルはアクセス禁止。
画像ファイルをキャッシュするように設定。
listen 443 ssl http2;の方のserverディレクティブで、
wwwありからwwwなしへリダイレクトする設定は不要。
WordPress本体の機能で、自動的にリダイレクトされる。
WordPressの管理画面の設定 > 一般で、
WordPress アドレス (URL)サイトアドレス (URL)
がwwwなしのURLになっていれば、wwwありからwwwなしへリダイレクトされる。
WordPress アドレス (URL)サイトアドレス (URL)
wwwありのURLになっていれば、wwwなしからwwwありへリダイレクトされる。
nginx -t systemctl restart nginx
mysql -u root -p
mysqlへログイン。
SHOW DATABASES; SELECT user, host, password FROM mysql.user;
WordPress用のデータベースとユーザーを作成する前に、
すでに作成済みのデータベースとユーザーの一覧を確認しておく。
MariaDB [(none)]> CREATE DATABASE wp_examplecom;
WordPress用のデータベースを作成。
1つのWordPressサイトにつき、1つのデータベースを作成する。
MariaDB [(none)]> CREATE USER aaa@localhost IDENTIFIED BY 'bbb'; MariaDB [(none)]> GRANT ALL ON wp_examplecom.* TO aaa@localhost;
WordPress用のユーザーを作成。
1つのWordPressサイトにつき、1つのユーザーを作成する。
ユーザーにデーターベースを操作できる権限(ALL)を設定。
サイトのトップページへアクセス。
インストールウィザードで
先ほど設定した、データベース名、ユーザー名、パスワードを入力する。