をインストールしておく。
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
)を設定。
サイトのトップページへアクセス。
インストールウィザードで
先ほど設定した、データベース名、ユーザー名、パスワードを入力する。