Raspberry Pi4 を WebサーバにしてWordPressを立ち上げる

Raspberry Pi4B wordpress サーバー

OSのインストール

こちらでOSのインストールの流れを書いているので割愛。

OSインストール後の初期設定

ubuntuパスワードの変更

初回ログイン時、IDもPWもubuntu。
なので、このパスワードを変更せよと言われるので、表示されるメッセージのままに
カレントパスワードを入力後、新パスワードを入力、続いて確認のためにもう一度新パスワードを入力して完了。

できればubuntuユーザーはロックして新規管理用ユーザーを作りたい

useradd か adduser か、いつも迷う。(そして、大抵2択は外す)
こうして残しておいても、結局またuseraddを実行するのはなぜなのか・・・

# adduser [newUserName]
Adding user `newUserName' ...
Adding new group `newUserName' (1001) ...
Adding new user `newUserName' (1001) with group `newUserName' ...
Creating home directory `/home/newUserName' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for taka
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y

尚、これでユーザーを作成しても、rootになれない。
rootになろうとして「sudo su -」としてもこんなメッセージが返ってくる。

newUserName is not in the sudoers file.  This incident will be reported.

そう、sudoグループに追加してあげる必要がある。

# gpasswd -a newUserName sudo
Adding user newUserName to group sudo

続いて、ubuntuユーザーをロックする。

# passwd -l ubuntu
passwd: password expiry information changed.

確認。
ユーザー名:ubuntu の後にLが入っているので、ロックされている。

# passwd -S ubuntu
ubuntu L 05/15/2021 0 99999 7 -1

タイムゾーンの設定

UTC が標準で設定されているので、それを Asia/Tokyo に変更。

$ sudo timedatectl set-timezone Asia/Tokyo

設定前

$ sudo timedatectl
               Local time: Sat 2021-05-15 12:27:12 UTC
           Universal time: Sat 2021-05-15 12:27:12 UTC
                 RTC time: n/a
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

設定後

$ timedatectl
               Local time: Sat 2021-05-15 21:34:44 JST
           Universal time: Sat 2021-05-15 12:34:44 UTC
                 RTC time: n/a
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

IPアドレスの固定

WebサーバなどがdhcpでIPアドレスを割り振られるなんて事はあまりないので、固定する。
WiFiはあまり使わないけど、一応動作確認程度に最初だけ使ってみる。

$ cd /etc/netplan/
$ sudo vi 50-cloud-init.yaml
network:
   version: 2
   ethernets:
      eth0:
         dhcp4: false
         addresses: [192.168.x.y/24]
         gateway4: 192.168.x.1
         nameservers:
            addresses: [192.168.x.z]
   wifis:
      wlan0:
            dhcp4: false
            access-points:
                "SSID":
                  password: "password"
            addresses: [192.168.a.b/24]
            nameservers:
              addresses: [192.168.x.z]
            optional: true
$ sudo netplan apply
$ sudo networkctl up eth0

各種インストールと設定

apache2のインストール

$ sudo apt install apache2

これだけでとりあえずapache2がインストールされて起動する。
Raspberry Pi4 に設定したIPアドレスをブラウザで叩けば下記のように表示される。

phpのインストール

$ sudo apt install php php-mysql php-fpm
$ sudo apt install libapache2-mod-php
$ sudo systemctl restart apache2

とりあえず、これでphpがインストールされて、test.phpという名前のファイルを /var/www/html/ において、内容を下記のようにし、ブラウザからこのファイルに対してアクセスしてみる。

<?php
phpinfo();
?>

下図のようにずらずらと出てくればphpの動作もOK。

vsftpdのインストール

ファイルをアップロードするのにftpサーバがあると便利なのでインストール。

$ sudo apt install vsftpd

mariaDBのインストール

WordPressでは今までmysqlを使ってきたけど、mariadbの方が速度的にも有利とのことなので、そろそろmariadbを使い始めてみる。

$ sudo apt install mariadb-server

初期設定

$ sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):

ここではいったんそのままエンターを押して進める。

OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n]

次にパスワードの設定を求められるけど、ここも一旦は[n]で続ける。

後は4つ程の質問に対して全て[y]と答えておけば初期設定の完了。

続いて、adminアカウントを作成します。
いままではrootアカウントをそのまま使用していたけど、それだと不都合出る事があるようなので、新たにadminを作成。
もちろん password の部分はちゃんとadminのパスワードを入力のこと。

$ sudo mariadb
MariaDB [(none)]> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

WordPress用のデータベースを作成。

$ mysql -u admin -p

mysql> create database 作成したいデータベース名 default character set utf8;
mysql> create user 'ユーザー名'@localhost identified by 'ユーザーのパスワード';
mysql> grant all on '作成したデータベース名'.* to 'ユーザー名'@localhost with grant option;
mysql> flush privileges;
mysql> exit

WordPressのインストール

WordPressの入手は下記URLから。

ブログから大規模サイトまで作れる CMS - WordPress.org 日本語
簡単に美しいサイト、ブログ、アプリを作成するのに使えるオープンソースソフトウェア。

下記コマンドでもOK。

sudo wget https://ja.wordpress.org/latest-ja.tar.gz

ダウンロードしたファイルを apacheのドキュメントルートに保存。
デフォルトでは /var/www/html 。

その後、ダウンロードしたファイルを解凍するとwordpressというフォルダの中にいろいろとできあがる。

そのフォルダの権限設定を確認すると、rootになっているかと思うので、apache2がアクセス出来るように www-data にオーナーもグループも変えておく。

$ sudo chown -R www-data:www-data ../html
$ sudo chmod 755 html

回答したディレクトリの中に、wp-config-sample.php というファイルがあるので、これを wp-config.php としてコピーを作成し、内容を編集していく。

// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'xxxxx' );/** MySQL データベースのユーザー名 */
define( 'DB_USER', 'xxxxx' );
/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', 'xxxxx' );

(中略)

define( 'AUTH_KEY', 'put your unique phrase here' );
define( 'SECURE_AUTH_KEY', 'put your unique phrase here' );
define( 'LOGGED_IN_KEY', 'put your unique phrase here' );
define( 'NONCE_KEY', 'put your unique phrase here' );
define( 'AUTH_SALT', 'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT', 'put your unique phrase here' );
define( 'NONCE_SALT', 'put your unique phrase here' );

尚、後半は
https://api.wordpress.org/secret-key/1.1/salt/
にアクセスすると自動生成してくれるので、それをコピペした方が楽。

ここまで済んだら、ブラウザで http://IPアドレス/wordpress/ にアクセスすればインストールがウィザード形式で開始される。
あとは指示通りに設定を進めていけば完了。

今回購入した物リスト

https://www.amazon.co.jp/gp/product/B0891RC99L/ref=as_li_tl?ie=UTF8&tag=dualbalance-22&camp=247&creative=1211&linkCode=as2&creativeASIN=B0891RC99L&linkId=d7ceb8514a74350f6e1456adf7f21f1c
Amazon.co.jp

この記事にコメントしてみる