WordPressをインストール・設定する方法
事前準備
CentOSに各種インストール
- MariaDB
- nginx
- php
- php-fpm
をインストールしておく。
DNS・hostsを設定
DNSやhostsを設定して、
example.comのようなドメインから
サーバーのIPアドレスへ名前解決できるようにしておく。
WordPressのtar.gzをダウンロードする
最新版のダウンロードURLを確認
WordPress公式・リリースから、最新のtar.gzのURLを確認する。
2021年10月現在、最新版は5.8.1。
URLは、https://ja.wordpress.org/wordpress-5.8.1-ja.tar.gz
WordPressの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をダウンロード。
WordPressサイトのドキュメントルートを作成
tar.gzを解凍
tar xzf wordpress-5.8.1-ja.tar.gz
wordpress-5.8.1-ja.tar.gzを解凍。
wordpressというディレクトリが生成される。
WordPressサイト用のディレクトリ名に変更
mv wordpress example.com
wordpressディレクトリを、example.comのような名前に変更する。
複数のWordPressサイトを運営することを想定して、
/home/user1/WordPressディレクトリの下に
- example.com
- travel.example.com
- sample.com
のようなディレクトリを作成して、サイト単位(ドメイン単位)で管理する。
ディレクトリのパーミッションを設定
cd /home/user1/WordPress/example.com chown -R nginx:nginx .
WordPressサイトのドキュメントルートおよびその配下のファイル・ディレクトリの所有者をnginx:nginxに設定する。
nginx:nginxは、nginxサービスの実行ユーザー。
WordPressサイトをhttpsに対応させる
nginxの.confを設定(仮)
vi /etc/nginx/conf.d/example.com.conf
- 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を再起動
nginx -t systemctl restart nginx
certbotでSSL証明書を発行(仮)
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でSSL証明書を発行(本番)
certbot certonly --webroot -w /home/user1/WordPress/example.com -d example.com -d www.example.com --email admin@example.com
–dry-runオプションなしで、certbotコマンドを実行。
nginxの.confを設定
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を再起動
nginx -t systemctl restart nginx
WordPress用のデータベースを作成
MySQLへログイン
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)を設定。
WordPressのインストールウィザードを実行
サイトのトップページへアクセス。
インストールウィザードで
先ほど設定した、データベース名、ユーザー名、パスワードを入力する。