Raspberry Pi3 Word Press インストールガイド 5


2024年03月09日に投稿
RaspberryPi にWordpressをインストール
WordPress
RaspberryPi3 B+
RaspberryPi3 B+  にWordpressをインストールして初期設定までをメモしてみました。

RaspberryPi3インストール備忘録20240306


事前準備
不足している場合は、以下のパッケージを追加で導入します。
・Apache2.4
・mariadb
・PHP7.4


1.
Imagerのインストール (Windows)

Raspberry Pi公式ダウンロードページから、Windows版をダウンロードします。
https://www.raspberrypi.com/software/

今回は、32GBSDHCに、(RaspberryPi OS 32bit)を インストールしました。

--------------------------------------------------------------------------------
初期設定
うまく起動してデスクトップ画面が表示されたら、初期設定を行う「Welcome to the Raspb
erry Pi Desktop」ダイアログが表示されますので、「Next」をクリックします。

国、言語とタイムゾーンの設定です。Countryで「Japan」を選択すると、Language、Timezo
neも自動的に設定されます。完了したら「Next」をクリックします。

ユーザーとパスワードの設定です。パスワードは確認のため同じものを2回入力します。202
2年4月までの長らくの間、デフォルトのユーザー名は「pi」となっていました。そのため、
ユーザー名piを前提とした解説記事も多く、初めての方や実験を目的とした場合はユーザー
名「pi」でも良いと思います。運用などその他の目的では、セキュリティの観点から独自の

ユーザー名をおすすめします。

完了したら「Next」をクリックします。ユーザー名piを使用した場合は確認が出るのでOKを
クリックします。

ディスプレイの外枠付近に何も表示されていない(黒くなっている)領域がある場合は、チェ
ックします。再起動後に画面の大きさを調整してくれます。完了したら「Next」をクリック
します。この画面が表示されない場合は次に進んでください。

WiFiの設定画面です。接続するWiFiのSSIDを選択します。有線接続など、WiFiを使用しない
場合は「Skip」でも構いません。完了したら「Next」をクリックします。

WiFiのパスワードを入力します。完了したら「Next」をクリックします。

デフォルトブラウザーの選択画面です。「Next」をクリックします。この画面が表示されな
い場合は次に進んでください。

インターネットに接続している場合は、ソフトウェアを最新バージョンにアップデートする
ことができます。アップデートしたい場合は「Next」をクリックします。

2021年11月にリリースされた(OSの日付は2021-10-30)Bullseyeより、アップデートすると自
動的に日本語入力環境がインストールされるようになりました。

アップデートしたくない場合は「Skip」をクリックします。アップデートは後からでも可能
です。

アップデートには多少(30分程度)時間がかかります。進捗が表示された後、完了すると以下
の画面になるので「OK」をクリックします。

Setup Completeのダイアログが表示されたら完了です。「Restart」をクリックすると再起
動します。

再起動後にデスクトップ画面が表示されれば、初回起動時の初期設定は終了です。

-------------------------------------------------------------------------------

2.
ラズベリーパイ 初期設定準備

電源はUSB microB、ディスプレイはHDMIです。対応するケーブルを用意しましょう。

有線LANを使用する場合はLANケーブルも接続します。

電源を接続するとそのまま起動してしまうので、電源は最後に接続します。


3.
VNCサーバーの設定 (Raspberry Pi)
スタートメニューから、「設定 -> Raspberry Piの設定」をクリックします。

設定ツールが起動するので、上部タブから「インターフェイス」を選択し、VNCの項目を有
効にして、「OK」をクリックします。

デスクトップ右上にVNCサーバーのアイコンが出現するので、クリックします。

4.
ディスプレイなしで起動できるようにする
Raspberry PiはHDMIケーブルからディスプレイの解像度を取得してデスクトップ画面に反映
させています。そのため、ディスプレイなしで起動すると、リモートからデスクトップ画面
を表示できなかったり、画面が小さくなる問題が起きます。

ここでは、デスクトップ画面の解像度を指定することで、ディスプレイなしで起動してもリ
モートからデスクトップ画面を表示できるように設定します。

スタートメニューから、「設定 -> Raspberry Piの設定」をクリックします。

設定ツールが起動するので、上部タブから「ディスプレイ」を選択し、ヘッドレス解像度の
選択ボックスをクリックします。
1920x1080

5.
Raspberry PiのIPアドレスを固定する

旧OS Bullseyeの手順で行った。
デスクトップ右上のネットワークアイコンを右クリックします。ここでは無線LANで接続し
ている状態ですが、有線でも同じ。

「Wireless & Wired Network Settings」をクリックします。

設定画面が表示されるので、interfaceの右の選択ボックスをクリックして、インターフェ
ースを選択します。有線LANの場合は「eth0」、無線LANの場合は「wlan0」を選択します。

「Automatically configure empty options」のチェックを外し、IPアドレスを手動で入力
します。IPv6を使わない場合は「Disable IPv6」をチェックします。編集が終わったら、
「適用」、「閉じる」をクリックします。

IPアドレスはお使いのルーターの設定によって変わります。設定値がわからない場合はIPア
ドレスの固定を行わずに次に進むことをおすすめします。

自動で割り振られた値が「192.168.X.Y」だった場合、以下のように設定するとうまくいく
可能性が高いです。

IPv4 Address: 192.168.X.Z (Zはネットワークで空いているアドレス)
Router, DNS Servers, DNS Search: 192.168.X.1


変更を反映させる(Bookworm/Bullseye共通の手順)
IPアドレスの変更を反映させるため、デスクトップ右上のネットワークアイコンをクリック
し、「Turn OFF Wi-Fi」で一度無効化します。

その後、再度ネットワークアイコンから「Turn On Wi-Fi」で接続し直します。

有線の場合は有線接続をOFF/ONして下さい。

以上でIPアドレスの固定は完了です。


6.
ラズパイ(Raspberry Pi)がWebサーバに早変わり
この記事ではラズパイのOSに「Raspbian Buster」を使用します。ApacheはさまざまなOSで
動作するよう設計されているため、OSのバージョンが異なっていてもインストール方法は大
きく変わりません。また、パッケージのインストールにはインターネット接続が必要です。

まずは、ターミナルを起動してOSを最新な状態に更新します。


  $ sudo apt update && sudo apt upgrade -y
更新の完了後、Apacheをインストールします。

  $ sudo apt install apache2 -y
ここでApacheのインストールが完了したか、ブラウザで確認してみましょう。

ラズパイのブラウザを起動して、アドレスバーに「http://localhost/」と入力してくださ
い。

ラズパイが接続しているローカルネットワーク上からアクセスする場合は、ラズパイのIPア
ドレスを事前に調べておく必要があります。通常のWebサーバはIPアドレスを固定しますが、
IPアドレスが分からない場合は、ターミナル上で次のコマンドを入力してください。

  $ hostname -I
「xxx.xxx.xxx.xxx」(xxxは1?3桁の数字)といった表示を見つけてください。これがラズ
パイに割り当てられているIPアドレスです。このIPアドレスが、Webサーバを呼び出すURLに
なります。

ローカルネットワークに接続する別のPCからアクセスしてみましょう。ブラウザのアドレス
バーに「http://192.168.1.2/」と入力します。「192.168.1.2」の部分は、先ほど調べたIP
アドレスと置き換えてください。

ブラウザ上に、ページが表示されると思います。


7.
ラズパイ(Raspberry Pi)にPHPをインストールしよう
以下のコマンドを入力するだけで、PHPにApacheのモジュールをインストールできます。

  $ sudo apt install php libapache2-mod-php -y
早速、PHPが正しくインストールされたか確認してみましょう。先ほどのHTMLファイルをPHP
で書かれたソースコードに置き換えます。


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ファイル名を変更する場合
$ mv 変更前のファイル名 変更後のファイル名
$ sudo mv index.html index2.html
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

「index.html」を削除して、新たに「index.php」を作成します。nanoにファイル名を指定
すれば、新しいファイル「index.php」が作成されます。

  $ sudo rm /var/www/html/index.html


  $ sudo nano /var/www/html/index.php
以下の一行を入力し保存します。

<<?php phpinfo(); ?>>

先ほどのブラウザ画面を再度読み込んでください。PHPの関数「phpinfo()」の出力結果が表
示されます。


8.
 ラズパイ(Raspberry Pi)+Apache+PHP+MySQLは本格的なWebサーバ構成
ここまででも、十分に実用的なWebサーバですが、より実践的なWebサーバに近づける方法も
試してみる。

================================================================================
一般的にウェブページはHTMLとCSS、JavaScriptを組み合わせて作成します。Bootstrapとい
ったJavaScriptを使ったフレームワークは、数多くのライブラリーが用意されているので、
手軽に凝ったウェブページが作成できます。

もしHTMLやCSSを作成することが面倒なら、最近ではHugoのような静的サイトジェネレータ
を利用してみるのもいいでしょう。

静的なコンテンツの作成に慣れてきたら、次は動的コンテンツの作成です。動的コンテンツ
を使った実用的なサービスには、データベースが不可欠です。ラズパイに構築したWebサー
バに、MariaDB(MySQL)を追加すれば、LAMP(Linux、Apache、MySQL、PHPの頭文字)と呼
ばれる、Webサーバで広く使われている構成を実現できます。CMSとして有名なWordPressな
どもこの構成です。この組み合わせをマスターすれば、Wikiサイトやフォーラムの運営など
も可能となります。

->PHPよりPythonのプログラミングに慣れている人もいるでしょう。Pythonを使ったIoTデ->
バイスやホームオートメーションコントローラーを作ることもできます。

ただし、ApacheとPythonの組み合わせは少し複雑です。PythonにもApacheのモジュールが開
発されていますが、PHPと比べあまり普及が進んでいません。今のところはCGIとしてPython
で作成したプログラムを実行する方が簡単でしょう。

もし、CGIでPythonのプログラムが起動できない場合は、Apacheを通さないPythonのhttp.se
rverモジュールを利用する方法もあります。ただしhttp.serverモジュールは、ややテスト
向けといった色合いが強いので、本格的な運用ではDjangoやFlaskのようなフレームワーク
を使うのがおすすめです。Flaskは提供する機能を最小限に絞っているためDjangoより軽量
に動作します。
================================================================================


hirat@raspberrypi:~ $ php -v
PHP 7.4.33 (cli) (built: Jun  9 2023 16:51:37) ( 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


9.
MariaDBは、人気が高いLAMP(Linux、Apache、MySQL、PHP/Python/Perl)スタックのデータ
ベース部分のMySQLの代替として使用されているオープンソースリレーショナルデータベー
ス管理システムです。MySQLの代わりになることが意図されています。

このインストールガイドの簡素版は、次の3つのステップで構成されています。

aptを使用したパッケージインデックスを更新
aptを使用してmariadb-serverパッケージをインストールするパッケージも関連ツールで制
御し、MariaDBと情報を交換する
含まれたmysql_secure_installationセキュリティスクリプトを実行して、サーバーへのア
クセスを制限する


  $ sudo apt update
  $ sudo apt install mariadb-server
  $ 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
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

次に設定ファイル上でローカルからのアクセスに限定する行をコメントアウトします。

  $ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
開いたファイル中のbinde-addressの行を次の通りコメントアウトします。

#binde-address     =127.0.0.1
続いてMariaDBにログインして外部端末からのアクセスを許可します。

  $ mysql -u root -p
Enter password:
パスワードを聞かれたら、先ほど作成したパスワードを入力し、権限変更のコマンドを入力。

MariaDB[(none)]> grant all privileges on *.* to root@"%" identified by 'your passw
ord' with grant option;
MariaDB[(none)]> exit
設定が終わったら、MariaDBを再起動して完了。

  $ sudo systemctl restart mysql
以上で完了です。


mariadb-10.0をインストールした。
  $ sudo apt-get install mariadb-10.0


その後、
sudo apt-get install phpmyadmin


phpMyAdminで使用するWebサーバーを設定
apache2を選択する。

phpMyAdminの設定方法を選択する
phpMyAdminの環境設定について聞かれるので、ここではYesを選択した。


phpMyAdminのrootパスワードを入力する。確認の再入力画面が表示されたら、
再度同じパスワードを入力する。

phpmyadminという一般ユーザーが作成されるので、そのパスワードを入力する。
確認の再入力画面が表示されたら、再度同じパスワードを入力する。


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

Apacheの設定

テスト用のサーバーならこれでもいいけど、外部に公開するサーバーにするなら、
セキュリティ対策として以下の設定を行っておく。
レスポンスヘッダーの設定
デフォルトではサーバーの情報がレスポンスヘッダーに送られるので抑制する。

  $ sudo nano /etc/apache2/conf-available/security.conf
ServerTokens Prod

設定 	レスポンスヘッダーの内容 	説明
ServerTokens OS 	Apache/2.4.10 (Raspbian) 	デフォルトの設定
ServerTokens Prod 	Apache 				変更後の設定

ドキュメントフッターの設定
デフォルトでは404エラーの時などに、サーバーの情報がフッターに付加されるので抑制し
ておく。

  $ sudo nano /etc/apache2/conf-available/security.conf
ServerSignature Off

ServerSignature On(デフォルトの設定)

ServerSignature Off(変更後の設定)

ディレクトリリスティングの設定
デフォルトではファイルの一覧が表示されるので、無効にしておく。

Options Indexes FollowSymLinksの行をコメントにする。

 ・(2016-12-06追記)AllowOverride Noneのままだと.htaccessが効かないので
  使用するならAllowOverride Allにしておく。

  $ sudo nano /etc/apache2/apache2.conf

#       Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted


デフォルトの設定

変更後の設定

ServerNameの設定
複数のサイトを管理しない場合は設定しなくても動作はするけど、後々必要な場合が
出てくるかもしれないので設定しておく。

$ sudo nano /etc/apache2/sites-available/000-default.conf

        # The ServerName directive sets the request scheme, hostname and port t$
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        ServerName example.com

$ sudo nano /etc/apache2/apache2.conf
# 一番先頭でいいので以下の行を追記する
ServerName example.com

phpMyAdminの設定
Apache同様にphpMyAdminのセキュリティ対策として、phpMyAdminにアクセスするエイリアス
を変更しておく。例えば以下のように設定すると、phpMyAdminにアクセスする場合は
http://192.168.X.Z/pmadmin/となる。ちなみに、このエイリアス設定にあるようにDebian
系ではphpMyAdminの本体は/usr/share/phpmyadminにインストールされる。

$ sudo nano /etc/phpmyadmin/apache.conf
Alias /phpmyadmin /usr/share/phpmyadmin
↓ 変更する
Alias /pmadmin /usr/share/phpmyadmin

phpMyAdminを使用するのはローカルエリア内だけに限定する場合は以下の記載を追加する。
localhostと192.168.X.Zからの接続に限定する例。

$ sudo nano /etc/phpmyadmin/apache.conf

    Options FollowSymLinks
    DirectoryIndex index.php

    # ここに追加する
    Order Deny,Allow
      Deny from All
      Allow from 127.0.0.1
      Allow from 192.168.0
    # ここまで
    
    
        


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
RaspberryPi にWordpressをインストールして初期設定までをメモしてみました。

事前準備
不足している場合は、以下のパッケージを追加で導入します。
・Apache2.
・mariadb
・PHP7.4

Wordpress から mariaDB へアクセス用のユーザを作成
新規データベースを作成します。
ここでは例として、wordpress という名前で作成しています。


新規ユーザを作成します。
設定するパスワード password は、任意のパスワードを指定します。

pi@raspberrypi:/var/www/html $ sudo mysql
MariaDB [(none)]> create database wordpress;

MariaDB [(none)]> CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> select user,password,plugin from user;
+---------------------+-------------------------------------------+-------------+
| user                | password                                  | plugin      |
+---------------------+-------------------------------------------+-------------+
| root                |                                           | unix_socket |
| wordpress           | *06B0E0234517A1F1A9BA352FF62B54679CA45F6F |             |
+---------------------+-------------------------------------------+-------------+
2 rows in set (0.00 sec)

MariaDB [mysql]> exit
Bye
先に作成したデータベースに対して新規作成したユーザへアクセス権を付与します。

pi@raspberrypi:/var/www/html $ sudo mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 19
Server version: 10.1.38-MariaDB-0+deb9u1 Raspbian 9.0

Copyright (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 on wordpress.* TO 'wordpress'@'localhost' IDENTIFIED B
Y 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

Raspberry Pi 3 に WordPress をインストール
WordPressのモジュールは、こちらからダウンロードできます、
2019/8/1 現在の最新版数は、5.2.2 でした。
インターネットに接続できる環境の場合は、wget コマンドで直接ダウンロードできます。

  $ cd /var/www/html

以下、sudoで行う。

rm *
wget http://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
mv wordpress/* .
rm -rf wordpress latest.tar.gz
chown -R www-data:www-data /var/www/html


WordPress の初期設定
ブラウザ経由で設定を進めます。

言語設定をします。

事前に作成しておいたデータベースにアクセスする設定を入力します。

インストールを実行します。

管理用のユーザ設定をします。

完了したら、ログインします。

先ほど設定したユーザ、パスワードでログインします。


お疲れさまでした。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

先ほど設定したユーザ、パスワードでログインできませんでした。


WordPressのルートディレクトリにある「wp-config.php」ファイルの以下の部分を修正しま
した。

/** WordPress のためのデータベース名 */
define('DB_NAME', '*********');

/** MySQL データベースのユーザー名 */
define('DB_USER', '*********');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '*********');

/** MySQL のホスト名 */
define('DB_HOST', '*********');

また、テーブルの接頭辞を変更したので次のように変更しました。

  $ cd /var/www/html

  pi@raspberrypi:/var/www/html $ ls
index.html      wp-blog-header.php    wp-includes        wp-signup.php
index.php        wp-comments-post.php  wp-links-opml.php  wp-trackback.php
license.txt      wp-config-php         wp-load.php        xmlrpc.php
readme.html      wp-config-sample.php  wp-login.php
wp-activate.php  wp-content            wp-mail.php
wp-admin         wp-cron.php           wp-settings.php


pi@raspberrypi:/var/www/html $ sudo nano wp-config.php 

 Ctrl+oで、 書き込み。
 Ctrl+xで、 終了。

Mysqlを、 再起動した。
pi@raspberrypi:/var/www/html $ sudo systemctl restart mysql


これで、なんとかWprdPessが動くようになりました。
どこが原因で悪かったのか、今のところ不明です。
分かる人教えてください。