RaspberryPi+NGINX環境にWordPressをインストールする方法

LEMP+WordPress PC/デジモノ

以前、RaspberryPiにNGINX+MariaDB+PHP(LEMP環境)を構築する方法を紹介しました。

せっかくなのでその環境にWordPressをセットアップする方法を解説します。

本記事はWordPressをローカル環境にインストールする方法を紹介するものです。

インストール方法

以前説明した、LEMP環境の構築までは完了しているものとします。

本記事の動作確認環境はRaspberryPiOS Lite 32bit(Bookworm およびBullseye)とUbuntu22.04です。IPアドレスの固定方法とPHPのバージョン以外はどちらのバージョンでもほぼ違いはありません。

IPアドレスの固定

WordPressを使うならIPアドレスを固定しておかないといけません。この部分について詳細は省きますが、Linuxのバージョンやディストリビューションによって方法が違いますので注意してください。

RaspberryPiOS Bullseye

$sudo emacs /etc/dhcpcd.conf

RaspberryPiOS Bookworm

$sudo nmtui

Ubuntu22.04

ubuntuではnetplanを使います。netplanは書式にうるさいのですごく嫌いです。ポイントはタブを使わずにスペースできっちりインデントをあわせることと、:(コロン)の後ろに半角スペースを忘れないようにすることぐらいでしょうか…

nginxの設定

nginxの設定を変更します。変更は2か所あります。

1つ目はnginx.confにclient_max_sizeを追記します。

$sudo emacs /etc/nginx/nginx.conf
http {
~
client_max_body_size 32M;
~
}

2つ目の変更は以下の通りです。index.phpが実行されるようにすること、html拡張子でphpが実行できるようにすることです。php-fpmのバージョンは場合によって変わるので注意してください。

$sudo emacs /etc/nginx/sites-available/default
#index.phpを追加 
index index.php index.html index.htm index.nginx-debian.html;

#コメントアウトを外す
#(php|html) ←ここも重要
location ~ \.(php|html)$ {
  include snippets/fastcgi-php.conf;
  #
  # # With php-fpm (or other unix sockets):
  fastcgi_pass unix:/run/php/php8.2-fpm.sock;
  # # With php-cgi (or other tcp sockets):
  # fastcgi_pass 127.0.0.1:9000;
}
$sudo emacs /etc/php/8.2/fpm/pool.d/www.conf

次の一文を追加

security.limit_extensions = .php .php3 .php4 .php5 .php7 .html
$sudo /etc/init.d/php8.2-fpm reload

PHPの設定

PHPの設定も変更します。アップロード可能なサイズを大きくしておかないとCocoon(wordpressでよく使われるテーマ)のインストールが面倒になります。

$sudo emacs /etc/php/8.2/fpm/php.ini

以下の部分を書き換える(すでに設定されているはずなので追記でなく、数値の書き換え)

post_max_size = 120M
upload_max_filesize = 100M
$sudo systemctl restart php8.2-fpm

ここでもphp-fpmのバージョンは注意してください。

mariaDBにWordPress用のデータベースを作成

wordpressが使用するデータベースを作成します。

  • データベース名はwordpress
  • ユーザー名はuser_name
  • パスワードはpassword

とします。上記3つは任意の名前でOKです。(後で使うので忘れないように)

$sudo mariadb
CREATE DATABASE wordpress CHARACTER SET UTF8 COLLATE UTF8_BIN;
CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'user_name'@'localhost';
FLUSH PRIVILEGES;
quit;

WordPressインストール

nginxのドキュメントルートはデフォルトの/var/www/htmlとしてあります。必要に応じて変えてください。

$mkdir tmp
$cd tmp
$wget https://ja.wordpress.org/latest-ja.tar.gz
$tar -xvzf latest-ja.tar.gz
$sudo mv wordpress /var/www/html
$cd /var/www/html
$sudo chown -R www-data:www-data wordpress
$sudo chmod -R 755 wordpress

apache2のアンインストール

$sudo apt purge apache2
$sudo reboot

なんかのタイミングでapache2が動き出すことがあるので消します。(なんで動き出すの?)

PHPのインストールと一緒にApache2がインストールされてしまうようです。

WordPressセットアップ

WEBブラウザで以下のアドレスにアクセスしてください。IPアドレスは最初に設定した値です。

http://192.168.xxx.xxx/wordpress/wp-admin/setup-config.php

wordpressセットアップ画面

上記のサイトが表示されればうまくいっています。表示されない場合は手順を見直してください。

“さあ始めましょう”で次に進みます。

使用するデータベースの指定

先にmariaDBで作成しておいたwordpress用のデータベースとユーザー/パスワードを入力します。

データベース名のホスト名、テーブル接頭辞はデフォルトのままでOKです。

wordpressセットアップ画面データベースの指定

“送信”をクリックして問題なければ次の画面が表示されます。”インストール実行”をクリックしてください。

wordpressセットアップ画面インストール実行確認

WordPressのブログ名、ユーザー名の設定

次にブログ名、ユーザー名、パスワードを設定します。ここでのユーザー名とパスワードはmariaDBで設定したものではなく、Wordpressで使用するものです。

Wordpressセットアップ画面ブログ名とユーザー名設定

”WordPressをインストール”をクリックすれば完了です。

WordPressへのログイン

WEBブラウザで以下のアドレスにアクセスしてください。次の画面が表示されればOKです。設定したユーザー名とパスワードでログインしてください。

http://192.168.xxx.xxx/wordpress/wp-login.php

WordPressログイン画面

まとめ

いかがだったでしょうか?一番面倒なのはIPアドレスを固定する部分だと思います。ディストリビューションやバージョンによってどんどん変わっていってしまうのは困りものですね。

WordPressのインストール自体はここの手順通りにやればそんなに難しくないはずです。WordPressというとブログやWEBサイトを運営をしている人以外には縁遠い存在だと思いますが意外と使い道があるのです(それはまたおいおい)。

本記事ではWordPressのカスタマイズ等には一切触れていませんが、これらについてはたくさん情報がありますので調べてみてください。

コメント