WordPressをインストール・設定する方法

  • MariaDB
  • nginx
  • php
  • php-fpm

をインストールしておく。

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ディレクトリの下に

  • example.com
  • travel.example.com
  • sample.com

のようなディレクトリを作成して、サイト単位(ドメイン単位)で管理する。

cd /home/user1/WordPress/example.com
chown -R nginx:nginx .

WordPressサイトのドキュメントルートおよびその配下のファイル・ディレクトリの所有者をnginx:nginxに設定する。

nginx:nginxは、nginxサービスの実行ユーザー。

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_namerootだけ設定する。

これにより、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を実行できるようにする。
uploadsfilesを含むパスの.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)を設定。

サイトのトップページへアクセス。

インストールウィザードで
先ほど設定した、データベース名、ユーザー名、パスワードを入力する。

  • 最終更新: 2023/05/24 11:12