はじめに
本記事はRaspberry piを使用して検証用WordPressのサイトを構築することを目的としている
必要機材
・Raspberry pi 4 Model B(以降ラズパイと呼ぶ)
参考サイト
ここに構築に関するすべてが記載されているが、+αの情報を記載
ラズパイを最新状態にする
kensho_pi@raspberrypi:~ $ sudo apt update
kensho_pi@raspberrypi:~ $ sudo apt upgrade
kensho_pi@raspberrypi:~ $ sudp reboot
Apache Webサーバのインストール及びバージョン確認
kensho_pi@raspberrypi:~ $ sudo apt install apache2
kensho_pi@raspberrypi:~ $ apache2 -v
+----------+------2024/01/22-----+----------+
| Server version: Apache/2.4.56 (Raspbian) |
| Server built: 2023-04-02T03:06:01 |
+----------+----------+----------+----------+
PHPのインストール
kensho_pi@raspberrypi:~ $ sudo apt install lsb-release apt-transport-https ca-certificates
GPGキーのダウンロード及び保存
kensho_pi@raspberrypi:~ $ sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
SURY PPAリポジトリの追加
kensho_pi@raspberrypi:~ $ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
パッケージ一覧の更新
kensho_pi@raspberrypi:~ $ sudo apt update
kensho_pi@raspberrypi:~ $ sudo apt upgrade
kensho_pi@raspberrypi:~ $ sudo reboot
PHP7.4のインストール
kensho_pi@raspberrypi:~ $ sudo apt install php7.4
kensho_pi@raspberrypi:~ $ php -v
+----------+----------+------2024/01/22-----+----------+----------+----------+
|PHP 7.4.33 (cli) (built: Sep 4 2023 08:11:54) ( NTS ) |
|Copyright (c) The PHP Group |
|Zend Engine v3.4.0, Copyright (c) Zend Technologies |
| with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies |
+----------+----------+----------+----------+----------+----------+----------+
PHPモジュールのインストール
# WordPressサーバを動作させるために必須のモジュール
kensho_pi@raspberrypi:~ $ sudo apt install php7.4-curl php7.4-json php7.4-mbstring php7.4-mysql php7.4-imagick php7.4-xml php7.4-zip
PHPの設定
参考サイトでは何行目に存在する文字列か記載がないためまずはcatコマンドで何行目に変更する箇所が存在するか調査
1622行目:コメントアウトを削除
409行目:128M 変更
694行目:40M 変更
846行目:30M 変更
kensho_pi@raspberrypi:~ $ sudo cat -n /etc/php/7.4/apache2/php.ini | grep mbstring.language
-> 1622 ;mbstring.language = Japanese
kensho_pi@raspberrypi:~ $ sudo cat -n /etc/php/7.4/apache2/php.ini | grep memory_limit
-> 409 memory_limit = XXXXM
kensho_pi@raspberrypi:~ $ sudo cat -n /etc/php/7.4/apache2/php.ini | grep post_max_size
-> 694 post_max_size = XXXXM
kensho_pi@raspberrypi:~ $ sudo cat -n /etc/php/7.4/apache2/php.ini | grep upload_max_filesize
-> 846 upload_max_filesize = XXXM
php-fpmのインストール及びApache Webサーバの再起動
kensho_pi@raspberrypi:~ $ sudo apt install php7.4-fpm
kensho_pi@raspberrypi:~ $ sudo systemctl restart apache2
PHP環境の動作確認
kensho_pi@raspberrypi:~ $ sudo vi /var/www/html/test.php
<php
phpinfo()
?>
+----------++----------++----------+
保存後ブラウザを開いて下記リンクを入力
「http://ラズパイのアドレス/test.php」
成功するとインストールしたPHP情報が表示される
Apache Webサーバの設定
# 1: ServerNameディレクティブの設定
kensho_pi@raspberrypi:~ $ sudo vi /etc/apache2/apache2.conf
# Global configuration
#
ServerName 任意のサーバ名
+-----+---上記コマンド入力保存後---+-----+
kensho_pi@raspberrypi:~ $ apache2ctl
-> Usage: /usr/sbin/apache2ctl start~~~が表示されれば正しく設定ができている
DirectoryIndexディレクティブの設定変更
kensho_pi@raspberrypi:~ $ sudo vi /etc/apache2/mods-available/dir.conf
DirectoryIndex index.html ~~~が現在先頭になっているため
「DirectoryIndex index.php index.html ~~~」と、なるように変更
Rewriteモジュールの有効化
kensho_pi@raspberrypi:~ $ sudo a2enmod rewrite
kensho_pi@raspberrypi:~ $ apache2ctl -t -D DUMP_MODULES | grep rewrite
-> rewrite_module (shared)
# 上記出力が確認できれば正常
kensho_pi@raspberrypi:~ $ sudo systemctl restart apache2
AllowOverrideの設定変更
kensho_pi@raspberrypi:~ $ sudo vi /etc/apache2/apache2.conf
【変更前】
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
【変更後】
<Directory /var/www/>
Options FollowSymLinks <-- 「Indexes」を削除
AllowOverride All <-- 「All」に修正
Require all granted
</Directory>
MariaDBのインストール
kensho_pi@raspberrypi:~ $ sudo apt install mariadb-server-10.3
kensho_pi@raspberrypi:~ $ sudo mysql -u root -p
Enter password: <--[Enter]押下
MariaDBの初期設定
kensho_pi@raspberrypi:~ $ sudo mysql_secure_installation
Enter current password for root (enter for none): <== [Enter]を押下
~~~ 省略 ~~~
Set root password? [Y/n] Y <== rootパスワード設定
New password: <== パスワードを入力
Re-enter new password: <== 再度パスワードを入力
~~~ 省略 ~~~
Remove anonymous users? [Y/n] <== 匿名ユーザーを削除
~~~ 省略 ~~~
Disallow root login remotely? [Y/n] Y <== リモート接続を拒否
~~~ 省略 ~~~
Remove test database and access to it? [Y/n] Y <== 不要なテストデータベースを削除
~~~ 省略 ~~~
Reload privilege tables now? [Y/n] Y <== これまでに設定した内容を反映
初期設定の変更
kensho_pi@raspberrypi:~ $ sudo mysql -u root -p
Enter password: 設定したパスワードを入力
MariaDB [(none)]> grant all privileges on *.* to root@localhost identified by 'password' with grant option;
-> Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> flush privileges;
-> Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> quit
-> Bye
上記コマンド実行後「mysql -u root -p」で接続できることを確認する
しかし、ここまで正しく設定したと思うが下記のようなエラーが出るときがある
kensho_pi@raspberrypi:~ $ mysql -u root -p
Enter password: パスワードを入力
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
上記エラーがでた場合、恐らくパスワード設定に不備があるかrootユーザーを作成していないために発生表示された可能性がある
上記エラーに遭遇した場合のみ
kensho_pi@raspberrypi:~ $ sudo systemctl stop mariadb # MariaDBを一時停止
kensho_pi@raspberrypi:~ $ sudo mysqld_safe --skip-grant-tables & # セキュアモードで起動
kensho_pi@raspberrypi:~ $ mysql -u root # セキュアモードでMariaDBに接続
USE mysql;
UPDATE user SET Password=PASSWORD('新しいパスワード') WHERE User='root';
FLUSH PRIVILEGES;
kensho_pi@raspberrypi:~ $ sudo systemctl restart mariadb # MariaDB再起動
再起動後「mysql -u root -p」で接続できることを確認する
WordPressのインストール
kensho_pi@raspberrypi:~ $ wget https://ja.wordpress.org/latest-ja.tar.gz
# ファイルの解凍
kensho_pi@raspberrypi:~ $ tar -xzvf latest-ja.tar.gz
データベースとユーザ作成
ここでは下記の値で設定
DB :db_wordpress
USER:TEST
PASS:TESTPASSWORD
kensho_pi@raspberrypi:~ $ mysql -u root -p
Enter password: パスワードを入力
MariaDB [(none)]> CREATE DATABASE db_wordpress;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON db_wordpress.* TO "TEST"@"localhost" IDENTIFIED BY "TESTPASSWORD";
Query OK, 0 rows affected (0.003 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> quit
Bye
WordPressファイルのアップロード及び権限の設定
kensho_pi@raspberrypi:~ $ sudo cp -R ./wordpress/* /var/www/html/
kensho_pi@raspberrypi:~ $ sudo chown -R www-data:www-data /var/www/html/
WordPressにアクセス
http://ラズパイのIPアドレス/wp-admin/install.php
上記アクセス後通常通りWordPressの設定をしてラズパイで検証用WordPressが構築完了