前回までで、Raspberry Pi 5のWordPressが起動するところまで解説しました。ただ、そのまま利用しようとした場合、不具合が多発することになります。
一つ一つ調べて対処していく必要があってなかなか大変です。原因が特定できず数日かかったものまであります。
とりあえずRaspberry Pi 5のWordPressを使用するうえで最低限設定しておいた方がよい、apacheの設定、WordPress設定、ディレクトリのパーミッション設定などについて解説します。
この作業することにより、レンタルサーバとだいたい同じ使用感で使うことができるようになります。
そのため、Raspberry Pi 5のWordPressを構築関連の記事としては最後になると思います。。
この記事の目次
- wp-config.php編集
- php.ini編集
- apache2.conf編集
- ディレクトリのパーミッション設定
- (おまけ)CUI起動設定
- (おまけ)ラズパイの定期再起動
- (おまけ)お問い合わせはGoogleフォームを利用
- まとめ
wp-config.php編集
初期状態のまま利用した場合、テーマやプラグインの更新時にFTPの接続情報を求められる。
以下の設定を行うことにより、FTPの接続情報が表示されなくなり、WordPressの管理画面から更新ができるようになります。
<作業内容>
『wp-config.php』をテキストエディタで開き、最終行に『define(‘FS_METHOD’,’direct’);』を追加
$ sudo vi /var/www/html/wp-config.php
define(‘FS_METHOD’,’direct’);
$ sudo service apache2 restart
php.ini編集
初期状態のまま利用した場合、テーマや写真をWrodPressをアップロードしようとすると『最大のアップロードサイズを超過』し、アップロードに失敗することがあります。
以下を設定することにより、アップロードのサイズの引き上げを行います。
<作業内容>
『php.ini』をテキストエディタで開き、パラメータを3か所変更する
- upload_max_filesize:1ファイルあたりの最大アップロードサイズ
- post_max_size:1回のアップロードファイルすべての合計サイズ
- memory_limit:PHPのメモリ使用量の上限
- memory_limitはファイルサイズの話とは違いますが、ついでに引き上げましょう。
※メモリ不足のエラーが出てからでは原因特定がめんどくさいので。
- memory_limitはファイルサイズの話とは違いますが、ついでに引き上げましょう。
$ sudo vi /etc/php/8.2/apache2/php.ini
upload_max_filesize = 40M
post_max_size = 40M
memory_limit = 512M
$ sudo service apache2 restart
私は上記のように設定していますが、利用用途により調整してください。
apache2.conf編集
初期状態のまま利用した場合、WordPressのパーマリンク設定を変更すると『更新に失敗しました。 返答が正しい JSON レスポンスではありません。』と出力され変更ができません。
以下を設定することにより、設定変更が可能になります。
※この原因特定が一番時間がかかりました。Webでは残念な情報ばかりヒットしますね。
<作業内容>
『apache2.conf』をテキストエディタで開き、『<Directory /var/www/>』の配下の『AllowOverride』を『All』に変更
$ sudo vi /etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
$ sudo service apache2 restart
$ sudo a2enmod rewrite
ディレクトリのパーミッション設定
初期状態のまま利用した場合、WrodPressの管理画面で実際に作業を行っていると、ファイルの更新エラー、アップロードのエラーなどが頻発します。
これはWordPressの操作結果を保存しようとした際に、ラズパイ内のディレクトリやファイルにwrite権限(書き込み権限)がついていないことに起因します。
私がwrite権限を付与したディレクトリのリストを記載しようとも思いましたが、この情報の公開がWordPressのセキュリティーの穴を付かれる原因になる可能性があるため公開はしません。
WordPressの管理画面を利用してファイルの更新などでエラー場発生した場合は、その都度当該ディレクトリにchmodコマンドでwrite権限をつけていきましょう。(グループやその他に2を追加です)
『sudo chmod 766 【対象ディレクトリ】』とかです。
※chmodの基本コマンドなので利用方法はいくらでも情報が出てきます。理解してから利用するようにしてください。
(ポイント)
変更した際は『ファイル名、変更前のパーミッション、変更後のパーミッション』を記録しておくことをお勧めします。
OSの再インストールが必要となった場合など、この情報があればサクッと対策が取れます。sh作っておいてもいいですしね。
(独り言)レンタルサーバの場合、管理者はどうしているんでしょうね。WordPressのファイル展開時に、バッチで全ファイルに適切な権限を付与していたりする? ただそれはWordPressのバージョンが変わった場合、新規ファイルには対応できないはず。では全ファイルのグループやその他に一律wirte権限付与を追加している?これが機械的にできて確実そうだけど、セキュリティー的に不安が残る。レンタルサーバ借りてた時にどういう状態になっているか見ておけばよかったな。
(おまけ)CUI起動設定
ラズパイを起動時に、デスクトップ画面(GUI)ではなく、コマンド入力画面(CUI)で立ち上げる方法。
おそらく、ラズパイOSをインストール後はTreaTermでログインし作業していると思います。WordPressのブログ用サーバとして使用するのであれば、デスクトップ画面を起動することは二度とないはず。
あと初期設定のままだと、モニタをつないでいなくても裏ではデスクトップ画面は立ち上がっているため、CPU、メモリを利用している状態となっています。
余計な負荷を減らすためにもコマンド入力画面(CUI)で立ち上がるように切り替えましょう。
この切り替えにより電力量も4.8W程度から、4.3W程度まで減少しました。(ワットモニターで計測)
<作業内容>
設定画面を立ち上げCUI起動に切り替え
$ sudo raspi-config
『1 System Options』を選択
『S5 Boot』を選択
『B1』or『B2』を選択
※『B2』はOSインストール時に作成したユーザでログインした状態で起動します。
(おまけ)ラズパイの定期再起動
Raspberry Pi 5の本体を定期的に再起動する方法。
本体の再起動をしないで稼働させ続けるというのは精神衛生上あまりよくないので、1週間か1ヶ月に一度は再起動させたいところです。
<作業内容>
cronに再起動するコマンドを設定
以下は毎週月曜3時に再起動をかける設定
$ sudo crontab -e
00 3 * * 1 /sbin/reboot
再起動をした時間は以下のコマンドで確認
$ last reboot
(注意ポイント)
『sudo crontab -e』と『crontab -e』は挙動が異なるので注意。
『sudo crontab -e』はroot権限で実行されるcronであり、『crontab -e』はユーザ権限で実行されるcronです。
rebootコマンドはユーザ権限では実行できないコマンドなので『crontab -e』で記載しても実行されません。
私はこの違いに気づいておらず、再起動がかかっていないことは分かっていましたが、数か月放置していました💦
(おまけ)お問い合わせはGoogleフォームを利用
ブログのお問い合わせフォームはWordPressで一般的な『Contact Form 7』ではなく『Googleフォーム』を採用
ラズパイのWordPressに『Contact Form 7』でブログにお問い合わせフォームを設置し、試験で送信すると送信エラーが出ます。
このトラブル対策ですが『Contact Form 7』がそもそもどのような仕様で、どのような基板上で動かすことを前提としているかを理解していないと根本的な対策が判断できません。(Webでヒットする対策でサクッと解決かもしれないですが・・・)
このトラブルは、対策方法を色々試行錯誤していけば、いずれは利用できるようにはなるのでしょう。
ですが、お問い合わせフォームなんて単なる形式的なこと。私自身、利用されるかもわからない機能に労力をかけるモチベーションがゼロでした。
なら、『Googleフォーム』でええやん!!
ということで、『Googleフォーム』で作成し設置しています。ほんと作るの簡単でGoogleマジスゲー
作成方法はWebで『Googleフォーム』『お問い合わせフォーム』で検索すれば有用なサイトがいくらでも出てくるのでここでは語りません。
まとめ
Raspberry Pi 5のWordPress構築の記事はこれで最後です。
今回は、内容的にあまり面白いものではなかったですが、WordPressを利用するうえで必須設定と考えています。
ここまで実施することで、レンタルサーバと使用感が変わらずブログ作成に取り掛かれるはずです。ここからが本番ですね。
ただし、ここまででの記事で、重要な事項ですが記載していないことがあります。それはラズパイ、apache2、WordPressのセキュリティー設定です。
実装しているセキュリティー設定については内容を載せてしまった場合、穴を逆に付かれてしまう可能性があるため載せることはできません。セキュリティー設定については情報があふれているので、各個人で何をすべきか判断していく必要があります。
概要レベルでざっと述べると、ラズパイへTreaTermでアクセスできるPCを制限したり、apache2で自宅のサーバの情報を非公開にする設定をしたり、WordPressの管理画面のURLを変更したり、などなど。
アクセス数が少ないうちはまず問題ないでしょうが、ぼちぼち進めていくことをお勧めします。
RaspBerry Pi 5でWordPressサーバ構築については、いったん以上です。これから構築してみたいという方の一助になれば幸い。
いじょ!!
次回は・・・さて、何を記事にしようかな・・・
コメント