Raspberry Pi4 WordPress構築

Raspberry Pi4 WordPress構築

今回はラズベリーパイにモニターを接続せず(接続する場合はもっと簡単です)、WindowsマシンからSSH接続で、ラズベリーパイ(4)(400)に、最新64ビットOS book wormでワードプレスを構築してみました。
これにより、ワードプレスを実際に動かし、色々試せますので勉強になります。

スポンサーリンク

WordPressの作成環境

  • ラズベリーパイ4あるいはラズベリーパイ400
  • ウェブサーバーはApache2.4.59
  • PHPは8.2
  • データベース管理システムはMariaDB
  • OSは64ビットbook wormデスクトップ版
  • SSH 接続は Tera Term 5
  • Windows11

book wormインストール&設定

インストール方法は、こちらの投稿を参考にインストールして各種設定をしてください。
初期設定で必ずSSH有効にし、またロケール設定で文字コードja-UTF8欄にチェックを入れておいてください。

VNC接続

ラズベリーパイにモニターを接続せず、ラズベリーパイOSをWindowsからGUIで設定すには、SSHソフトでラズベリーパイに接続して、下記のようにVNCを有効にすることによって、 Windowsマシンからvnc viewerを使って設定することができます。

ターミナルソフトでSSH接続します。

sudo raspi-config

すると下記のようなセッティング画面に変わります。

インターフェースオプションを選び次にVNCを有効にます。

横矢印キーを使ってセレクトを選択してenterキーを押せば完了です。

これで、Windowsからラズベリーパイに直接モニターを繋いだのと同じ状態となり、非常に便利になります。

固定IPアドレスにする

WordPressはIPアドレスが変わってしまうとうまく表示できませんので、固定IPアドレスを設定します。
今回モニタレスにためbook wormの固定IP設定はWindowsでVNC接続し、私のこちらのブログで確認して固定IPを設定してください。

WordPressインストール環境設定

ワードプレスを動かすためにはApache、PHP、MariaDBが必要となりますのでその環境を構築します。
SSHでラズベリーパイに接続します。

パッケージの更新

sudo apt update
sudo apt upgrade
sudo reboot

Apacheのインストール

sudo apt install apache2

バージョンを確認します。

pi@raspberrypi:~ $ apache2 -v
Server version: Apache/2.4.59 (Debian)
Server built:   2024-04-05T12:02:26
pi@raspberrypi:~ $

PHPインストール

sudo apt install php

バージョンを確認します、今回は8.2でした。

pi@raspberrypi:~ $ php -v
PHP 8.2.18 (cli) (built: Apr 11 2024 22:07:45) (NTS)
right (c) The PHP Group
Zend Engine v4.2.18, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.18, Copyright (c), by Zend Technologies

PHPモジュールのインストール

WordPressを動作させる上で必要なPHPモジュールのインストールを行います。

sudo apt-get -y install php8.2-curl php8.2-mbstring php8.2-mysql php8.2-imagick php8.2-xml php8.2-zip php8.2-intl

PHP設定

大きなファイルを扱えるように下記のファイルを編集します。
/etc/php/8.2/apache2/php.ini (php.ini)ファイル。
今回はnanoエディターを使いました。

sudo nano /etc/php/8.2/apache2/php.ini

変更するところは下記の部分です。
memory_limit = 128M>= post_max_size = 50M >= upload_max_filesize = 50M 
とします。 

mbstring.language = Japanese コメントアウト解除
memory_limit = 128M 今回初めから128Mでした
post_max_size = 50M  変更
upload_max_filesize = 50M  変更

変更を保存してください。

php-fpmをインストール

Apache WebサーバからPHPを使用する時に必要になるphp-fpmのインストールします。

sudo apt-get install php8.2-fpm

結果

~略
NOTICE: Not enabling PHP 8.2 FPM by default.
NOTICE: To enable PHP 8.2 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php8.2-fpm
NOTICE: You are seeing this message because you have apache2 package installed.
pi@raspberrypi:~ $

うまくいきました。
Apache の再起動を行います。

sudo systemctl restart apache2

PHPの動作確認

test.phpをドキュメントルート(/var/www/html)に作成し、PHPの動作確認を行います。

$ sudo nano /var/www/html/test.php

記載内容です。

<?php
        phpinfo();
?>

書き込みをして、終了して下さ。

Webブラウザを使用して、下記のアでレスにアクセスしてPHPの各種情報が表示されることを確認します。

URL://<自分のプライベートIP>/test.php

下図のように表示されればOKです。

Apache Webサーバの設定

Rewriteモジュールの有効化

WordPress に必要なリライトモジュールを有効にします。

sudo a2enmod rewrite

Apache Webサーバを再起動します。

sudo systemctl restart apache2

有効になっているかを確認します。

apache2ctl -t -D DUMP_MODULES | grep rewrite
有効化されていれば、rewrite_module (shared)と表示されます。

AllowOverrideの設定変更

.htaccessファイルに記述したディレクティブが有効化されるように下記の部分を編集します。

pi@raspberrypi:~ $ sudo vi /etc/apache2/apache2.conf
<Directory /var/www/>
        Options FollowSymLinks  <-- 「Indexes」を削除
        AllowOverride All  <-- 「All」に修正
        Require all granted
</Directory>

MariaDBのインストールと設定

インストール

アップデートしてからMariaDBをインストールします。

sudo apt update
sudo apt install -y mariadb-server

バージョンを確認します。
pi@raspberrypi:~ $ sudo mysql -u root -p

pi@raspberrypi:~ $ sudo mysql -u root -p
Enter password:  <-- [Enter]を押します
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 32
Server version: 10.11.6-MariaDB-0+deb12u1 Debian 12
right (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>

MariaDBの初期設定

初期状態ではmysql -u root -pコマンドで接続することができませんすることができません。
mysql -u root -pでログインできるように、mysql_secure_installationツールを使ってログイン権限等を書き換えます。

$sudo mysql_secure_installation

途中いろいろ尋ねられますので次の通り入力します。

Enter current password for root (enter for none):  <--何も押さずにEnter
Switch to unix_socket authentication [Y/n]:        <--n
Change the root password? [Y/n]:                   <--y
New password:                                      <--MariaDBのrootユーザー用パスワードを新規作成
Re-enter new password:                             <--同じパスワードを入力
Remove anonymous users? [Y/n]:                     <--y
Disallow root login remotely? [Y/n]:               <--n
Remove test database and access to it? [Y/n]:      <--y
Reload privilege tables now? [Y/n]:                <--y

これで上記で作成したパスワードでmysql -u root -p接続することができるので確認してみます。

pi@raspberrypi:~ $ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 43
Server version: 10.11.6-MariaDB-0+deb12u1 Debian 12
right (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
MariaDB [(none)]> Ctrl-C -- exit!
Aborted
pi@raspberrypi:~ $

接続できました。
次にMariaDBにログインして、外部端末からのアクセスを許可する設定をします。

pi@raspberrypi:~ $ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 44
Server version: 10.11.6-MariaDB-0+deb12u1 Debian 12
right (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> grant all privileges on *.* to root@"%" identified by  'password' with grant option;
Query OK, 0 rows affected (0.007 sec)
MariaDB [(none)]>

今回はパスワードをpasswordとしましたが自分で他のパスワードに変えてください。
設定が終わったら、MariaDBを再起動して完了です。

sudo systemctl restart mysql

WordPressのインストール

WordPressのダウンロード

下記のサイトよりダウンロードします。
wget https://ja.wordpress.org/latest-ja.tar.gz

pi@raspberrypi:~ $ wget https://ja.wordpress.org/latest-ja.tar.gz
--2024-06-25 21:45:21--  https://ja.wordpress.org/latest-ja.tar.gz
ja.wordpress.org (ja.wordpress.org) をDNSに問いあわせています... 198.143.164.252
ja.wordpress.org (ja.wordpress.org)|198.143.164.252|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 25846701 (25M) [application/octet-stream]
`latest-ja.tar.gz' に保存中
latest-ja.tar.gz          100%[=====================================>]  24.65M  4.81MB/s 時間 5.8s
2024-06-25 21:45:28 (4.23 MB/s) - `latest-ja.tar.gz' へ保存完了 [25846701/25846701]
pi@raspberrypi:~ $

解凍を行います。
tar -xzvf latest-ja.tar.gz

tar -xzvf latest-ja.tar.gz

wordpressディレクトリが作成されたのを確認します。
pi@raspberrypi:~ $ ls -l

pi@raspberrypi:~ $ ls -l
合計 25284
drwxr-xr-x 2 pi pi     4096  3月 16 00:05 Bookshelf
drwxr-xr-x 2 pi pi     4096  3月 16 00:12 Desktop
drwxr-xr-x 2 pi pi     4096  3月 16 00:12 Documents
drwxr-xr-x 2 pi pi     4096  3月 16 00:12 Downloads
drwxr-xr-x 2 pi pi     4096  3月 16 00:12 Music
drwxr-xr-x 2 pi pi     4096  3月 16 00:12 Pictures
drwxr-xr-x 2 pi pi     4096  3月 16 00:12 Public
drwxr-xr-x 2 pi pi     4096  3月 16 00:12 Templates
drwxr-xr-x 2 pi pi     4096  3月 16 00:12 Videos
-rw-r--r-- 1 pi pi 25846701  6月 25 05:16 latest-ja.tar.gz
drwxr-xr-x 5 pi pi     4096  6月 25 05:15 wordpress

データベースとユーザーの作成

今回、データベース名を db_wordpress、ユーザー名を my_wp、パスワードを password とします。
まず初めにDBを起動

mysql -u root -p

パスワードを入力する
デーらベース名作成

 CREATE DATABASE db_wordpress;

データベースに パスワード 権限を設定

GRANT ALL PRIVILEGES ON db_wordpress.* TO "my_wp"@"localhost" IDENTIFIED BY "password";

確定する

FLUSH PRIVILEGES;

quit データベース終了

pi@raspberrypi:~ $  mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 31
Server version: 10.11.6-MariaDB-0+deb12u1 Debian 12
right (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE db_wordpress;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]>
MariaDB [(none)]> GRANT ALL PRIVILEGES ON db_wordpress.* TO "my_wp"@"localhost" IDENTIFIED BY "password";
Query OK, 0 rows affected (0.005 sec)
MariaDB [(none)]>  FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> quit
Bye
pi@raspberrypi:~ $

自分専用ワードプレスフォルダーを作る

自分専用ワードプレスフォルダーを複数作ることにより、複数のワードプレスを構築できます。
今回mytestです。

sudo mkdir /var/www/html/mytest

WordPressのファイルのアップロード

mytestにアップロード

sudo cp -R ./wordpress/* /var/www/html/mytest

ユーザー権限の設定

実行ユーザーの権限を設定します。

sudo chown -R www-data:www-data /var/www/html/mytest

WordPressサーバセットアップ

Webブラウザで下記のURLにアクセスします。

http://IPアドレス/mytest/wp-admin/setup-config.php

上記のアドレスにアクセスすると下記の画面が出てきます。

さあ始めましょうをクリックして上記で作成した、データベース名、ユーザー名、パスワード、を入れて送信をクリックします。

下記の画面が出たらインストール成功です。

.htaccess に追記する

大きいファイルをアップロードできるように下記の情報(今回256M)を.htaccessに追記します。

php_value upload_max_filesize 256M
php_value post_max_size 256M
php_value memory_limit 256M
php_value max_execution_time 300
php_value max_input_time 300

.htaccessを開く。

sudo nano /var/www/html/mytest/.htaccess

</IfModule>の下に追記、間違えないでください動かなくなります。

ワードプレスダッシュボード

意外と簡単に出来ました、ただセキュリティ対策はしていませんので公開する場合は対策をしてください。
バージョンは6.5.5でした。

タイトルとURLをコピーしました