タイトル通り、ワードプレス専用ラズパイサーバーを構築しようと思います。このラズパイダもレンタルサーバーのWordpress(ワードプレス)で運営しています。現在はどこでもそうですね。
今回の目的は、テスト環境として利用したいからです。
ワードプレスには、ブログやサイトを運営している人にはお馴染みの、テーマやプラグインといった物があります。最終的には細かくカスタマイズするのですが、大まかにテーマで機能も見た目も変更させたい時に使います。
プラグインはワードプレスに機能を追加する別のソフトウェアのことです。

これらテーマやプラグイン、そしてワードプレス自身のバージョンによっては不具合が生じることが多々あります。原因が解っていれば何でもないのですが、突き止められないとかなり困ったことに陥ります。
対処方法はいくつかありますが、実際にテスト環境で試してから導入すれば少しは免れるのと、デザインや機能を試してみたい時に重宝するからです。
自分だけの専用であれば、特に迷惑にもなりませんし、そもそも家庭内ネットワークの話です。外に公開するワケではありませんからプレイベートな状態です。
あっ、家庭内で使うブログページとしてもいいかも知れませんね。(大袈裟か)
今回の環境
今回、手元で動作させることと、サーバーなのでRaspberryPiは3B系がいいでしょう。有線でも無線でもどちらでも構いません。無線LAN(Wi-Fi)接続するなら、ノーマル3Bより3B+が3倍速いのでそちらがいいでしょう。今回は3B+でも勿体ないと思って、今となっては古いノーマル3Bで構築します。
なお、Raspberry Pi Zero W系ではCPUが遅くインストールにも時間がかかりますし、メモリーが512MBしかないので、サーバーとしても辞めた方がいいです。メモリーは1GBは欲しいところです。

画像のようにWi-Fiを使うのでとってもシンプルな構成です。
この中に、Raspbian、Apache、MariaDB(MySQL互換)、PHP、そして肝心のWordpressをインストールしていきます。
- Raspbian Buster (Liteが適任。メンテナンスを考えて通常やフル版でもOK)今回はフル版
- Apache(これがサーバーになります)
- MariaDB(これがデータベース機能)
- PHP(Wordpressを動かすためのサーバーサイドのプログラム)
- WordPress (ブログ構築システム)
Apacheのインストール
既にRaspbianがインストールされたラズパイ3BにSSHで接続できているところから説明します。(まだの方はイメージファイルからRaspbianのインストールをご覧いただきセットアップを済ませてください。)
sudo apt uodate && sudo apt upgrade
sudo apt install apache2 -y
Apacheの動作確認
インストールしたラズパイにモニターやキーボードを繋いでいれば、通常はWEBブラウザを立ち上げて「http://localhost」と入力して確認します。
今回の環境はSSHで接続しているヘッドレス状態なので、操作しているマシンからラズパイのIPアドレスを打ち込みます。(e.g. http://192.168.0.6/など)

Apache2 Debian Default Pageが表示されればOKです。
ちなみにこのページ「index.html」は/var/www/htmlにあります。

PHPのインストール
もしPHPのバージョンを指定する場合はこの方法ではダメです。今回はとにかくインストールします。
sudo apt install php -y
現在、このラズパイダで動いているPHPとバージョンが同じでした。バージョン違いはこちらのページが詳しかったです→ウェブ人 https://webjin.work/ubuntu-php7-3-install/
libapache2-mod-php7.3 php-common php7.3 php7.3-cli php7.3-common php7.3-json
php7.3-opcache php7.3-readline
Suggested packages:
php-pear
The following NEW packages will be installed:
libapache2-mod-php7.3 php php-common php7.3 php7.3-cli php7.3-common
php7.3-json php7.3-opcache php7.3-readline
0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
PHPの動作確認
index.htmlの代わりにindex.phpでも新たに作成して確認します。
cd /var/www/html
sudo rm index.html
sudo nano index.php
以下を記入。
<?PHP echo date('Y-m-d H:i:s'); ?>
ファイルを作成したら、ここで一度Apacheを再起動しておきます。
sudo service apache2 restart
先程のhttp://localhost(またはラズパイのIPアドレス)で更新してみると現在の日時が出ていればOKです。
MariaDBのインストール
有名なDBはMySQLです。それと互換性があるMariaDBがRaspbianでは推奨されています。オープンソースだからです。
sudo apt install mariadb-server
MySQLの拡張であるphp-mysqlもインストール
これ、入れないと「Your PHP installation appears to be missing the MySQL extension which is required by WordPress.」とエラーが出ます。
sudo apt install php-mysql
mariadbを有効にして起動します。
sudo systemctl enable mariadb
sudo systemctl start mariadb
WordPressのインストール
最後にWordPressをインストールします。既に/var/www/htmlに居るとは思いますが、以下を順番に実行していきます。
cd /var/www/html
sudo rm *
sudo wget http://wordpress.org/latest.tar.gz
sudo tar xzf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz
sudo chown -R www-data: .
sudo rm * | 今居るフォルダの中身を全て削除 |
sudo wget http://wordpress.org/latest.tar.gz | wordpressのファイルダウンロード |
sudo tar xzf latest.tar.gz | ターボールを解凍 |
sudo mv wordpress/* . | wordpressフォルダの中身全てを今居るフォルダに移動 |
sudo rm -rf wordpress latest.tar.gz | ターボールのファイルを削除 |
sudo chown -R www-data: . | 今居るフォルダのすべてにwww-data(Apache)所有権を与える |
これでインストールは全て終わりです。
これ、難しそうにやっていますけど、やっていることは・・・、
「htmlというフォルダに最初からあるファイルを削除して空にして、その場所にワードプレスの圧縮ファイルをダウンロード&展開したけど、wordpressってフォルダの中にできちゃったから、htmlというフォルダに直に置きたいため移動しただけです」
で、最後にApacheサーバーが触れるように権限を与えた。つまり、そういうこと。
文章の方が長ぇ!
WordPressを動作させるには、データベースに登録設定しないとなりません。ここはちょっと難しいでしょう。MySQL内でコマンドを打ち作業します。
mariadbへWordPress用データベースのセットアップ
mysqlで入った後は、全て「MariaDB [(none)]> 」と表示されたMySQL内でのコマンドです。
sudo mysql
データベース「wordpress」を作成
MariaDB [(none)]> create database wordpress;
MySQLの新規ユーザーとパスワードの作成(新規ユーザーwordpressとしました)
- ユーザー名:wordpress(任意で)
- パスワード:password(任意で)
MariaDB [(none)]> CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'password';
mysqlを指定
MariaDB [(none)]> use mysql;
「use mysql;」とコマンドすると、
Database changed
MariaDB [mysql]>
先程のnoneだった部分がMariaDB [mysql]>と変わります。
この後、作ったデータベースにユーザーの権限を割り当てます。確認して一旦抜けます。
MariaDB [mysql]> select user,password,plugin from user;
一旦抜けます。
MariaDB [mysql]> exit
WordPressのユーザー名とパスワードを新規作成
もう一度入り直します。
sudo mysql
ここで権限を与えます。wordpressデータベースにwordpressというユーザー(パスワードはpassword)に使えるように権限を与えています。
MariaDB [(none)]> GRANT ALL on wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY 'password';
MySQLから抜けてお終いです。
MariaDB [(none)]> exit
ここまでのおさらい
仮の名前で説明しているのでややこしいですが、以下のように設定しました。
MySQL(≒MariaDB)のデータベース名は「wordpress」
MySQL(≒MariaDB)のユーザー名は「wordpress」パスワードは「password(任意)」
サーバーを再起動してワードプレスの設定に移ります。
sudo service apache2 restart
WordPressの初期設定
インストールとDBへの接続も終わったので、実際にWordPressをWEBブラウザから実行して、初期設定をしていきます。(ある意味ここはもうラズパイは関係ありません。wordpressのお話です)
「http://localhost/wp-admin」をラズパイに繋いだキーボードからか、またはラズパイのIPアドレス(e.g. http://192.168.0.6/wp-admin)を操作しているマシン側のWEBブラウザから入力してみてください。(先程からApache、PHPで動作確認した手順と同様)



この記事では、ユーザー名がwordpress、パスワードはpasswordで設定しています。ご自分と読み替えてください。他はそのままでOKです。

ここはこの時に初めて作成するユーザーになります。
メールアドレスは架空ので構いません。メールが送れるような設定をしていません。でも、入れないと続きませんから適当でOKです。(username@exsample.comなど)



最後に
やることが多いように思えますが、実はコマンドの数は多くありません。
Apache、PHP、MariaDB、WordPressのインストールはそれ程時間はかかりません。MySQLデータベースのユーザー作成が難しいでしょうか。
最後、WordPressの初期設定は、データベースのユーザー名とブログシステムの管理者名を間違えなければスムーズに終わると思います。
ローカルサーバーでWordPressを何に使えって?ということはありますが、自分でブログをやろうと思ってレンタルサーバーを借りる前に、WordPressってどんなかなーと触ってみるのには良いと思っています。
通常はローカル内なら構築したブログが外部に公開されることは決してありませんから、好き勝手に触って色々と試してみると良いと思いますよ。仮に、危ない?!と思ったらワードプレスをインストールしたラズパイのネットワークを切るか、電源を引っこ抜けば済む話です。はい。
余っているmicroSDカードがあったら試してみてください。