DebianにWordPressをインストールする
1.WordPressってなに
WordPressは、ブログを書きたい人にとって扱いやすく、しかも自由度の高いサイト作成ツールである。
テーマを選ぶだけで見た目を整えられ、必要な機能はプラグインでどんどん追加できる。
専門知識がなくても始められる一方で、カスタマイズすれば本格的なサイト運営にも対応できる柔軟さが魅力である。
ブログを続けながら少しずつ自分好みに育てていけるのが、WordPressの楽しいところでである。
PHPで作成されており、コードをいじって好きなようにカスタマイズも可能。
広く使われているために悪意あるものに狙われて攻撃されることも多いのでそれなりに対応も必要ではある。
ここではDebianにWordPressをインストールする。
前提条件:
・ドメイン名(example.jp)を既に取得済みとする。
・マルチサイト作成が可能な構成としてドメイン名(www.example.jp、blog1.example.jp、blog2.example.jp)で切り替えるものとする。
・ワイルドカード式のTLS証明書を既に取得済みとしてアクセスはHTTPSで行うものとする。
2.WordPressのインストール
2-1.nginxのインストール
# apt install nginx
2-2.MySQL(MariaDB)のインストール
# apt install mariadb-server
2-3.PHPのインストール
# apt install php8.4 php8.4-fpm
PHPはその時点でDebianで提供されている最新のものを使う。ここでは8.4
-fpm を同時に入れないとApache2がインストールされてしまうので注意
2-4.その他必要なパッケージのインストール
# apt install php8.4-mbstring php8.4-xml php8.4-gd php8.4-curl php-imagick zip php-zip php-intl
2-5.WordPres本体のダウンロードと展開
# wget https://ja.wordpress.org/latest-ja.tar.gz # tar -xzvf latest-ja.tar.gz # mv wordpress /var/www/ # cd /var/ # chown -R www-data:www-data www/ # chmod -R g+ws www/
2-6.Nginxの設定ファイルの作成(Port80でのアクセスに対応したもの)
# cd /etc/nginx/sites-available/ # cp default default.default # vim default
以下の内容に変更する。
server {
listen 80;
listen [::]:80;
server_name _;
root /var/www/default;
index index.html;
return 301 https://www.nevernothing.jp/;
access_log /var/log/nginx/default/access.log;
error_log /var/log/nginx/default/error.log;
}
Port80でのアクセスに対応したindex.htmlを作成する。
# cd /var/www/ # mkdir default # cd default/ # vi index.html
以下の内容を書き込む。
<html> <head> <title>www.example.jp</title> <meta http-equiv=”refresh” content=”0;URL=’https://www.example.jp/'” /> </head> <body> <h1>www.example.jp</h1> </body> </html>
Port80(HTTP)でアクセスされたら即、HTTPSのサイトへリダイレクトする内容である。
ログのディレクトリを作成する。
# cd /var/log/nginx/ # mkdir default # chown -R www-data:adm default/
2-7.Nginxの設定ファイル(https://www.example.jpでアクセスされたときのもの)
# cd /etc/nginx/sites-available/ # vi www.example.jp
以下の内容を書き込む。
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.example.jp;
ssl_certificate /var/tls/www.example.jp/fullchain.crt;
ssl_certificate_key /var/tls/www.example.jp/privkey.key;
root /var/www/wordpress;
index index.html index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
access_log /var/log/nginx/www.example.jp/access.log;
error_log /var/log/nginx/www.example.jp/error.log;
}
/var/tls/www.example.jp/以下に既にTLS証明書が用意されているものとする。
ログ用のディレクトリを作成する。
# cd /var/log/nginx/ # mkdir www.example.jp # chown -R www-data:adm www.example.jp/
設定を有効にする。
# cd /etc/nginx/sites-enabled/ # ln -s /etc/nginx/sites-available/www.nevernothing.jp www.nevernothing.jp
Nginxを再起動する。
# systemctl restart nginx.service
blog1.example.jp、blog2.example.jpなど他のマルチサイトがある場合は
この2-7をTLS証明書のディレクトリ以外のwwwの部分を書き換えて繰り返す。
2-8.DBの作成
# mysql -u root
以下のSQLを入力してDBとユーザを作成する。
ここでは
DATABASE名をwp01_database
ユーザ/パスワードをwp01user/wp@01#pass123とする。
> use mysql; > CREATE DATABASE wp01_database; > GRANT ALL PRILEGES ON wp01_database.* TO "wp01user"@"localhost" IDENTIFIED BY "wp@01#pass123"; > FLUSH PRIVILEGES; > exit;
2-9.WordPressの起動
ブラウザでhttps://www.example.jp/へアクセスする。
WordPressの初期設定画面が表示されるので
データベース名、データベースのユーザ名、データベースのパスワードを入力して設定する。
次にタイトル/WordPressのユーザ名/WordPressのパスワード/メールアドレスを入力して設定する。
2-10.nginxのログローテーション設定
# cd /etc/logrotate.d/ # vi nginx
以下の設定を追加する。
/var/log/nginx/*/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
logrotateを再起動する。
# systemctl restart logtotate
2-11.WordPressをマルチサイトにする
# cd /var/www/wordpress/ # vi wp-config.php
最後に以下を追加する。
/* Multisite */ define( 'WP_ALLOW_MULTISITE', true );
WordPressをいったんログアウトして再度ログインする。
ツール→サイトネットワークの設定を開く。
サブドメイン型を選ぶ。
インストールを押す。
指定された内容をwp-config.phpに追記する。
WordPressをいったんログアウトして再度ログインする。
マルチサイトが作成できるようになっていればOK。