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