4テラバイトUSBをラズパイに挿入

 4テラバイトのUSBメモリーが安かったので、家庭内NASの記憶媒体にでも使えるのではと購入してみた。

 挿入すれば使えるだろうと安易に構えていたが、挿入しても認識しない。形式はexFATであった。Windowsにも挿してみたが、こちらは時々認識するも領域の確保やフォーマットなどの操作が出来ない。Windowsのディスク管理で操作しても受け付けてくれない。

 どうもサイズが大きすぎるようなので、パーティション分割して1パーティションのサイズを1T程度にすれば認識してくれるのではと考え、領域の解放と再確保をディスク管理の画面から試みるのだが受け付けてくれない。

 ものは試しで、Windows11のパソコンで同じことを試みた所、exFATでフォーマットが出来た。これをWindows10のパソコンに差し替えてディスク管理を立ち上げて領域の確保を再度試みた所フォーマットの画面が出現して、領域も1テラ程度で確保できた。

 これをラズパイに挿入したところ見事認識してくれた。

Disk /dev/sdc: 3.81 TiB, 4194304000000 bytes, 1024000000 sectors
Disk model: SSD
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00000000Device Boot Start End Sectors Size Id Type
/dev/sdc1 4294967295 8589934589 4294967295 16T ff BBT
/dev/sdc2 4294967295 8589934589 4294967295 16T ff BBT
/dev/sdc3 4294967295 8589934589 4294967295 16T ff BBT
/dev/sdc4 4294967295 5035196669 740229375 2.8T ff BBT

上は購入当初のUSBで fdisk -l を実行した時の状況であるが認識していない。

色々やってみた結果、windowsでexfatフォーマットした4TのUSBを

$ mount -t exfat-fuse /dev/sdc1 /mnt/usbでマウントできた。これを実施する前は

$ sudo mount /dev/sdc1 /mnt/usb
mount: /mnt/usb: wrong fs type, bad option, bad superblock on /dev/sdc1, missing codepage or helper program, or other error.

というエラーが出ていた。

pi@raspberrypi:~ $ df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/root 30340676 6601580 22449108 23% /
devtmpfs 332564 0 332564 0% /dev
tmpfs 465716 0 465716 0% /dev/shm
tmpfs 186288 2780 183508 2% /run
tmpfs 5120 4 5116 1% /run/lock
/dev/sda1 258095 31157 226938 13% /boot
tmpfs 93140 24 93116 1% /run/user/1000
/dev/sdb1 479596220 166568400 288592160 37% /mnt/hdd
/dev/sdc1 4095997952 5651456 4090346496 1% /mnt/usb

マウントできた証。試しに入れたファイルも表示できている。

pi@raspberrypi:~ $ ls /mnt/usb
‘System Volume Information’ あじさい完成2.jpg 壁紙水田s.jpg
Win11_24H2_Japanese_x64.iso 寒霞渓10.jpg 壁紙波.jpg
Z1.jpg 寒霞渓11.jpg 北京マスコット.jpg
aあじさい2色.jpg 寒霞渓9.jpg
aあじさい2色修正.jpg 壁紙水田.jpg

 しかし、これでも十分ではない。マウントは出来たがフォルダの所有者が root になっており、これでは root 以外は書き込めないのでファイルサーバのディスクとしては不十分である。これを解消するには、所有者をこのサーバへのユーザーである pi とする必要がある。

方法は mount する際のオプションを指定する事である。

$sudo mount -t exfat-fuse-o uid=1000,gid=1000 /dev/sdc1 /mnt/usb

pi@raspberrypi:~ $ ls -l /mnt/usb
合計 5629952
drwxrwxrwx 1 pi pi 1048576 12月 22 15:48 ‘System Volume Information’
-rwxrwxrwx 1 pi pi 5751373824 12月 9 11:48 Win11_24H2_Japanese_x64.iso

gid uid共に pi となっているので一般ユーザーで書き込める。

どうもウィンドウズでフォーマットしたのでは16G辺りにネックがあってそれ以上書き込むことが出来なくなる。理由は分からない。ネットの書き込みでウィンドウズでフォーマットしたものをラズパイで動作させるのはまともではないとの記述があり、これをヒントにして試行錯誤で今度はラズパイで exFAT のフォーマットを試してみる。コマンドは

$sudo mkfs.exfat /dev/sdXn

の様なのでこれを試してみる。

ラズパイ OS関連コマンド

〇lsb_release -a

pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye

〇uname -a

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux

ラズパイへのWordprssの実装

ラズパイでWordpressを動かすためには、apache2 Mariadb PHPをインストールすることでWordpressの動作環境を整える必要がある。

Apache2

Mariadb

インストールの流れは以下です。

  1. インストールされているかの確認
  2. インストール
  3. 初期設定

インストール

インストールされているかの確認

以下のコマンドを実行し、MariaDB がインストールされているかを確認します。

コマンドの結果、
「-bash: mariadbd: command not found」のように表示された場合は、MariaDB は、インストールされていません。
「mariadbd Ver X.X.X」のように表示された場合は、MariaDB は、既にインストールされています。

補足)
MariaDBのサーバーのバージョン確認コマンド : mariadbd –version
MariaDBのクライアントのバージョン確認コマンド : mariadb –version

インストール

まず、最新のパッケージリストを取得します。
以下のコマンドを実行します。
以下のコマンドを実行し、MariaDB をインストールします。
インストールが完了するまで、数分待ちます。

初期設定

以下のコマンドで、MariaDB の初期設定を実行します。
・Enter current password for root (enter for none):カレントパスワードは空なので、何も押さずにエンターキー押下。・Switch to unix_socket authentication [Y/n]「unix_socket authentication」は無効化したいので、「n」を入力し、エンターキー押下。・You already have your root account protected, so you can safely answer ‘n’.rootパスワードを変更したいので、「Y」を入力し、エンターキー押下。
設定したいrootパスワードを入力し、エンターキー押下。
入力確認で、設定したいrootパスワードを再度入力し、エンターキー押下。・Remove anonymous users? [Y/n]アノニマスユーザーを削除したいので、「Y」を入力し、エンターキー押下。・Disallow root login remotely? [Y/n]ルートのリモートログインは許可したくないので、「Y」を入力し、エンターキー押下。・Remove test database and access to it? [Y/n]テストデータベースは削除したいので、「Y」を入力し、エンターキー押下。・Reload privilege tables now? [Y/n]権限テーブルをすぐに反映させたいので、「Y」を入力し、エンターキー押下。

参考

自動起動(OSの起動時にサービスを起動)の設定の確認

以下のコマンドで、systemctlが利用可能なサービス一覧を表示します。
コマンドオプション解説)

  • list-unit-files : systemdがロードしないものを含め、systemdパス内の利用可能なユニットファイルをすべて表示する。
  • –type=service : サービスを表示する。

コマンドの結果表示されるサービスリストから「mariadb.service」を探します。
「mariadb.service」のSTATEを確認します。
STATEが、「enabled」となっている場合は、自動起動(OSの起動時にサービスを起動)は有効になっています。
STATEが、「disabled」となっている場合は、自動起動(OSの起動時にサービスを起動)は無効になっています。

設定を確認したら、「ctrl + c」を押下し、コマンドを終了します。

自動起動を有効化/無効化する方法

MariaDB サービスの自動起動を有効化するには、以下のコマンドを実行します。
補足)インストール直後は、自動起動が有効になっているので、特に理由が無い場合は、以下のコマンドを実行する必要はない。

MariaDB サービスの自動起動を無効化するには、以下のコマンドを実行します。
補足)手動でサービスを開始、停止する場合や、他のデータベースサーバーサービスを使用する際に実行する。

サービスの状態の確認

MariaDB サービスが開始しているか停止しているかの状態を確認するには、以下のコマンドを実行します。
コマンドの結果表示される情報から「Active:」行を探します。
「Active:」が、「active (running)」となっている場合は、サービスは開始しています。
「Active:」が、「inactive (dead)」となっている場合は、サービスは停止しています。

設定を確認したら、「ctrl + c」を押下し、コマンドを終了します。

サービスを開始/停止する方法

MariaDB サービスを開始するには、以下のコマンドを実行します。
補足)インストール直後は、サービスは開始済みなので、特に理由が無い場合は、以下のコマンドを実行する必要はない。
MariaDB サービスを停止するには、以下のコマンドを実行します。
注意)自動起動が有効になっている場合は、サービスを停止しても、OSを再起動すると、サービスは開始する。

PHP

pi@raspberrypi:~ $ sudo apt install php7.4

バージョン確認

インストールを行ったPHPのバージョンを確認します。

pi@raspberrypi:~ $ php -v
PHP 7.4.15 (cli) (built: Feb 12 2021 14:48:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.15, Copyright (c), by Zend Technologies
pi@raspberrypi:~ $

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

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
pi@raspberrypi:~ $

PHPの設定

「/etc/php/7.4/apache2/php.ini」ファイルを以下のとおり、編集します。

pi@raspberrypi:~ $ sudo vi /etc/php/7.4/apache2/php.ini

【編集内容】
~(略)~

[mbstring]

; language for internal character representation. ; This affects mb_send_mail() and mbstring.detect_order. ; http://php.net/mbstring.language mbstring.language = Japanese <== コメントアウト解除 ~(略)~ memory_limit = 128M post_max_size = 40M upload_max_filesize = 30M pi@raspberrypi:~ $

「memory_limit」、「post_max_size」、「upload_max_filesize」の初期の設定値では、サイズの大きなテーマをアップロードした場合にエラーになる場合があります。このため、設定変更を行います。
各設定値は、「memory_limit」の数値が一番大きく、続いて、「ze」の数値、そして、「upload_max_filesize」が一番小さい数値になるよう調整する必要があります。

php-fpmのインストール

Apache WebサーバからPHPを使用する際に必要になるphp-fpmのインストールを行います。
php-fpmは、FPM(FastCGI Process Manager)と言われるPHPのFastCGI実装のひとつです。

pi@raspberrypi:~ $ sudo apt install php7.4-fpm
パッケージリストを読み込んでいます... 完了
    ~(中略)~
Creating config file /etc/php/7.4/fpm/php.ini with new version
NOTICE: Not enabling PHP 7.4 FPM by default.
NOTICE: To enable PHP 7.4 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php7.4-fpm
NOTICE: You are seeing this message because you have apache2 package installed.
Created symlink /etc/systemd/system/multi-user.target.wants/php7.4-fpm.service → /lib/systemd/system/php7.4-fpm.service.
man-db (2.8.5-2) のトリガを処理しています ...
systemd (241-7~deb10u6+rpi1) のトリガを処理しています ...
php7.4-fpm (7.4.15-2+0~20210212.37+debian10~1.gbp5dee47) のトリガを処理しています ...
NOTICE: Not enabling PHP 7.4 FPM by default.
NOTICE: To enable PHP 7.4 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php7.4-fpm
NOTICE: You are seeing this message because you have apache2 package installed.
pi@raspberrypi:~ $

上記の実行結果より、php-fpmのインストールを行うと、自動的に有効化され、必要な設定が行われます。

上記のphp-fpmのインストール実行結果より、インストールを行うと、自動的に有効化され、必要な設定が行われます。

Apache Webサーバの再起動を行います。

pi@raspberrypi:~ $ sudo systemctl restart apache2
pi@raspberrypi:~

PHP環境の動作確認

以下のテスト用ファイル「test.php」をドキュメントルート(/var/www/)に作成し、PHPの動作確認を行います。

pi@raspberrypi:~ $ sudo vi /var/www/html/test.php

【記載内容】
<?php
        phpinfo();
?>

pi@raspberrypi:~ $

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

URL:http://<IPアドレス または、ドメイン名>/test.php

Apache Webサーバの設定

ServerNameディレクティブの設定

Apache Webサーバをインストールした直後の初期設定では、「ServerName」ディレクティブが設定されていませんので、「/etc/apache2/apache2.conf」ファイルを編集し、「ServerName」ディレクティブにサーバ名を記載します。
「ServerName」ディレクティブは、以下のように、「# Global configuration」というコメントの下に追記します。記載するサーバ名は、ご使用の環境に応じて、適宜置き換えてください。
(ここでは、サーバ名を「www.ingenious.jp」とします。)

pi@raspberrypi:~ $ sudo vi /etc/apache2/apache2.conf

【記載内容】
# Global configuration
#

ServerName www.ingenious.jp  <-- 「# Global configuration」のコメントの下に追記

pi@raspberrypi:~ $

ServerNameディレクティブを記載しなかった場合、「apache2ctl」などのコマンドを実行した時に、以下のメッセージが出力されます。

AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message

DirectoryIndexディレクティブの設定変更

初期設定では、Webブラウザからのリクエストが、ディレクトリだった場合やファイルが指定されなかった場合(最後が「/」で終る)に「index.html」ファイルが返される設定になっています。このため、WordPressのトップページである「index.php」ファイルが返されるように、設定変更を行います。
以下のとおり、「/etc/apache2/mods-available/dir.conf」ファイルを編集し、WordPressのトップページである「index.php」ファイルが最初に返されるように設定変更を行います。

pi@raspberrypi:~ $ sudo vi /etc/apache2/mods-available/dir.conf

【編集前】
<IfModule mod_dir.c>
        DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

【編集後】:「index.php」を一番最初に記載します。
<IfModule mod_dir.c>
        DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

pi@raspberrypi:~ $

DirectoryIndexディレクティブに記載した順に、ファイルが返されます。

Rewriteモジュールの有効化

WordPress は、「.htaccess」ファイルに記載されているRewriteモジュールを使用したRewriteRuleに基づき、パーマリンクを実現しています。

「.htaccess」ファイルは、Apache Webサーバを使用した環境で、ディレクトリ単位で制御を行う設定ファイルです。「.htaccess」ファイルを特定のディレクトリに配置すると、「.htaccess」ファイル内に記述されている設定内容が、配置されたディレクトリ内とその配下のディレクトリ内に対して適用されます。

しかし、Apache Webサーバをインストールした直後の初期設定では、Rewriteモジュールが有効化されていません。Rewriteモジュールの状態は、以下のコマンドにより確認することができます。

pi@raspberrypi:~ $ apache2ctl -t -D DUMP_MODULES | grep rewrite
pi@raspberrypi:~ $

※有効化されている場合、「rewrite_module (shared)」と表示されます。

注意!
Rewriteモジュールが無効化されている状態で、投稿記事を作成し「下書き保存」や「公開」しようとすると以下の画面のように、「更新に失敗しました。返答が正しいJSONレスポンスではありません。」と表示され、投稿記事を保存することができません。

このため、以下のコマンドを実行し、Rewriteモジュールを有効化する必要があります。

pi@raspberrypi:~ $ sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
  systemctl restart apache2
pi@raspberrypi:~ $

次に、変更内容を反映するため、以下のコマンドを実行し、Apache Webサーバを再起動します。

pi@raspberrypi:~ $ sudo systemctl restart apache2
pi@raspberrypi:~ $

再起動後、以下のコマンドを実行し、Rewriteモジュールが有効化されたことを確認します。

pi@raspberrypi:~ $ apache2ctl -t -D DUMP_MODULES | grep rewrite
 rewrite_module (shared)
pi@raspberrypi:~ $

※有効化されている場合、「rewrite_module (shared)」と表示されます。

AllowOverrideの設定変更

初期状態では、「.htaccess」ファイルに記載できるディレクティブは、すべて無効化されています。
「.htaccess」ファイルに記述したディレクティブが有効化されるように、以下のように「/etc/apache2/apache2.conf」ファイルを編集します。また、念のため、ディレクトリが指定された場合に、ファイルが一覧表示されないように変更を行います。

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>

pi@raspberrypi:~ $

Optionsは、任意のディレクトリに対して使用できる機能を設定するためのディレクティブです。

Indexesディレクトリに対するリクエストに対して、DirectoryIndexで指定したファイル
(index.php等)が存在しない場合に、ディレクトリ内ファイルの一覧を表示します。
FollowSymLinksシンボリックリンクのリンク先を参照できるようにします。

AllowOverrideは、「.htaccess」ファイルで使用できるディレクティブを指定するためのディレクティブです。

None「.htaccess」ファイルでは、すべてのディレクティブが使用できません。
All「.htaccess」ファイルで記述可能なディレクティブをすべて使用できます。

MariaDBのインストール

データベース管理システムとして使用するMariaDBデータベースのインストールを行います。
MariaDBは、MySQLから派生したオープンソースソフトウェアのリレーショナルデータベース管理システム(RDBMS)で、無料で使用することができます。また、MySQLと高い互換性を有しています。

MariaDBのインストール

本記事では、標準のaptリポジトリからインストールできる「Version 10.3」をインストールします。

pi@raspberrypi:~ $ sudo apt install mariadb-server-10.3
pi@raspberrypi:~ $

インストールを行ったバージョンを確認します。

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 12
Server version: 10.3.27-MariaDB-0+deb10u1 Raspbian 10

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)]> quit
Bye
pi@raspberrypi:~ $

MariaDBの初期設定

MariaDBの初期設定を行います。「mysql_secure_installation」スクリプトを使用して、MariaDBのセキュリティオプション等の設定を行います。

pi@raspberrypi:~ $ 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):    <== [Enter]を押します。
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] Y   <== rootパスワード設定するため、[Y]を入力します。
New password:    <== パスワードを入力します。
Re-enter new password:   <== 再度パスワードを入力します。
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y    <== 匿名ユーザーを削除するため、[Y]を入力します。
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y    <== リモート接続を拒否するため、[Y]を入力します。
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y    <== 不要なテストデータベースを削除するため
 - Dropping test database...                          [Y]を入力します。
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y    <== これまでに設定した内容を反映するため
 ... Success!                               [Y]を入力します。

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
pi@raspberrypi:~ $

初期設定の変更

インストール直後の初期状態では、「mysql -u root -p」コマンドで接続することができませんが、「sudo mysql -u root -p」コマンドでは、接続できる状態になっています。

pi@raspberrypi:~ $ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
pi@raspberrypi:~ $ sudo mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 59
Server version: 10.3.27-MariaDB-0+deb10u1 Raspbian 10

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)]> quit
Bye
pi@raspberrypi:~ $

このため、以下のSQLコマンドを実行し、「mysql -u root -p」コマンドで接続できるように変更します。

pi@raspberrypi:~ $ sudo mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 64
Server version: 10.3.27-MariaDB-0+deb10u1 Raspbian 10

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 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
pi@raspberrypi:~ $

「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 66
Server version: 10.3.27-MariaDB-0+deb10u1 Raspbian 10

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)]> quit
Bye
pi@raspberrypi:~ $

WordPressのインストール

WordPressのダウンロード

WordPressのダウンロードを行います。

pi@raspberrypi:~ $ wget https://ja.wordpress.org/latest-ja.tar.gz
pi@raspberrypi:~ $

「latest-ja.tar.gz」ファイルがダウンロードされます。

pi@raspberrypi:~ $ ls -l
合計 15940
drwxr-xr-x 2 pi   pi       4096  1月 11 22:01 Bookshelf
-rw-r--r-- 1 root root       46  2月 17 18:57 buster
-rw-r--r-- 1 root root       46  2月 17 18:57 deb
-rw-r--r-- 1 pi   pi   16304330  2月 12 17:00 latest-ja.tar.gz
-rw-r--r-- 1 root root       46  2月 17 18:57 main
pi@raspberrypi:~ $

次に、解凍を行います。

pi@raspberrypi:~ $ tar -xzvf latest-ja.tar.gz
pi@raspberrypi:~ $

「wordpress」というディレクトリが作成されます。

pi@raspberrypi:~ $ ls -l
合計 15944
drwxr-xr-x 2 pi   pi       4096  1月 11 22:01 Bookshelf
-rw-r--r-- 1 root root       46  2月 17 18:57 buster
-rw-r--r-- 1 root root       46  2月 17 18:57 deb
-rw-r--r-- 1 pi   pi   16304330  2月 12 17:00 latest-ja.tar.gz
-rw-r--r-- 1 root root       46  2月 17 18:57 main
drwxr-xr-x 5 pi   pi       4096  2月 12 17:00 wordpress
pi@raspberrypi:~ $

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

本記事では、MySQLコマンドを使用して、データベースを作成します。
ここでは、データベース名を「db_wordpress」、ユーザー名を「wp_user」、パスワードを「password」とします。

pi@raspberrypi:~ $ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 10.3.27-MariaDB-0+deb10u1 Raspbian 10

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)]> CREATE DATABASE db_wordpress;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON db_wordpress.* TO "wp_user"@"localhost" IDENTIFIED BY "password";
Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> quit
Bye
pi@raspberrypi:~ $

wp-config.phpファイルの作成

WordPressの設定は、「wp-config.php」設定ファイルを事前に作成する方法とインストールスクリプトを使用する方法がありますが、本記事では、インストール・スクリプトを使用して設定を行います。

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

本記事では、Apache Webサーバのドキュメント・ルート・ディレクトリにWordPressのファイルをアップロードします。

pi@raspberrypi:~ $ sudo cp -R ./wordpress/* /var/www/html/
pi@raspberrypi:~ $

注意!
アップロードするWordPressのファイルは、「wordpress」ディレクトリ自体ではなく、「wordpress」ディレクトリの内容です。

権限の設定

Apache Webサーバのドキュメント・ルート・ディレクトリにアップロードしたWordPressファイルの権限設定を行います。Apache Webサーバの実行ユーザー(www-data)の権限を設定します。

pi@raspberrypi:~ $ sudo chown -R www-data:www-data /var/www/html/
pi@raspberrypi:~ $

WordPressサーバのセットアップ

インストール・スクリプトを使用して、初期セットアップを行います。
Webブラウザを使用して、以下のURLにアクセスします。

URL:http://<IPアドレス または、ドメイン名>/wp-admin/install.php

以下の画面が表示されますので、「さあ、始めましょう!」をクリックします。

以下の画面が表示されますので、「データベース名」、「ユーザー名」、「パスワード」、「データベースのホスト」の各入力欄に、先ほど作成したデータベース及びユーザーに関する情報を入力します。「テーブル接頭辞」は、特に理由がない限り、変更の必要はありません。
入力が完了したら、「送信」をクリックします。

以下の画面が表示されますので、「インストール実行」をクリックします。

以下の「ようこそ」という画面が表示されますので、サイトの設定情報を入力します。
入力するサイトの設定情報は、適宜、環境に応じて入力してください。
入力が完了したら、「WordPressをインストール」をクリックします。

誤って、検索エンジンにサイトがインデクスされないように、「検索エンジンがサイトをインデックスしないようにする」チェックを付けることをお勧めします。

以下の画面が表示されれば、WordPressサーバのインストールは完了です。
「ログイン」をクリックします。

「ユーザー名」及び「パスワード」を入力し、「ログイン」をクリックします。

以上でWordPressサーバの構築は終了です。

ラズパイでUSBメモリの自動認識を停止させる

まず、既存のpcmanfm.confファイルをセーブしておいて、上の方にある3行を1から0に修正する。

$ cd ~/.config/pcmanfm/LXDE-pi
$ rsync -av /etc/xdg/pcmanfm/LXDE-pi/pcmanfm.confや .

ファイルの用意ができましたから実際に修正します。

[volume]
mount_on_startup=0
mount_removable=0
autorun=0

volumeセクションにある項目の値を0に修正しています。その後再起動で反映されます。

ラズパイの無線LAN停止操作

ラズパイをサーバーとして使用し、有線LAN接続とするため、必要のない無線LANを停止させる。

##Wifi無効化
以下のコマンドを実行して、ラズパイを再起動すればwifiを無効化できます
sudo iwconfig wlan0 txpower off

##Wifi有効化
再び有効化したいときは以下のコマンドを実行して再起動
sudo iwconfig wlan0 txpower auto

ネットで見つけたものだが、他にも方法があるかも知れない。

Canon Ts8030 ヘッド異常

 約5年前に買ったキャノンのプリンターTS8030が動かなくなった。
 状況は、電源スイッチを入れると140Bというエラーコードが出て何も出来なくなる。
 それまでインクのPGBKがかすれてクリーニングにより一時的に回復させながら使ってきた経緯はあるが、そのうち電源を入れると140Bがいきなり出てしまい、クリーニングも何も出来なくなり、もう買い替えかと思うようになっていた。

 しかし、経過を見るとPGBKのヘッド詰まりから派生しているような気がして、これをクリーニングすれば回復するのではと考え、ヘッドを外してPGBKをクリーニングすることとした。

 方法は偶々インクのおまけに付いてきたクリーニング益がったので、これを使うこととした。

dav

 TS8030のヘッドの取り出しは初めてだったのでYouTubeの動画を見ながら何とか取り外すことが出来た。5年間一度も外していなかったので裏面のインクの出口あたりにインクが付着していたので、これをテッシュでふき取る。
 さらにPGBKの位置にあるインクボトルとの結合部に洗浄液を垂らしてみる。
 すると黒いインクが染みだしてくるのでティッシュでふき取りさらにクリーニング液を垂らす。
 これを何度も繰り返す。時間を置くと垂らしたクリーニング液が無くなっていることもある。しみ込んだのか蒸発したのかわからない。たまに下側にインクが漏れていることもあったが、垂らしたクリーニング液が垂れたとも思えない。

 これを3日ほど続けると段々染み出すインクの色が薄くなりそのうち染み出さなくなった。

 これでヘッド内のインクが無くなったのであろうか。良く分からないがこの状態でヘッドを装着してみることとした。

 恐る恐る電源を入れる。これまで出ていた140Bの警告が出ない。上手くいったのであろうか。ノズルパターンを印刷してみた。これも上手くできた。

 さらにパソコンから写真を何枚か印刷してみた。これも問題なく印刷できた。
 これで正常に戻ったのであろうか。暫く使ってみることとする。

PostfixとDovecotによるメールサーバーを構築

 今度パソコンクラブでメールソフトの解説をすることになり、どう説明するかで悩んでいたのだが、メールソフトつまりOutLookの操作説明をするにメールサーバーの登録から入る必要がある。

 しかし、使っていないメールアカウントが一杯あるわけではなくどうしようかと考えた挙句、以前自宅サーバーにメール機能を付けていたことを思い出し試してみた。

 方法はネットで調べた結果Windowsは上手くいかず、結局慣れたLinuxで構築することとした。使うソフトはPostfixとDovecotとした。単純にインストールしただけではTELNETからは繋がるのだが、肝心のOutLookはSMTP認証がどうとかでつながらない。

 かってメールサーバーを立てたときにはSMTP認証なるものは無く簡単にメールのやり取りが出来てような記憶があるのだが、セキュリティ面で色々な仕組みが組み込まれたようである。

 設定方法をネットで調べた結果、https://www.kagoya.jp/howto/webhomepage/postfix/ここにまとめてあるのでこの内容通り試してみた。

 するとどうであろう、これまで何度も拒否されたOutLookの登録が一発で完了した。
 訳も分からず設定したがやれやれである。
 やはりメールは難しいというのが感想である。

画像枠の自動設置

 下地が白の場合、張り付ける画像の色調によっては境目が不明瞭で画像の説得力が低下することがある。
 そこで、画像に枠線を自動で付ける方法は無いものかと調べた結果、失敗しながら一つ方法が見つかった。

 それは「ダッシュボード」「外観」「カスタマイズ」「追加CSS」に以下の物を書き込むことである。

img[class*="wp-image-"] {
	border: 3px solid #000000;
}

これを書き込むと自動的に画像枠が付与される。

 この方法はブログにある全ての画像に枠がつく方法であるが、テーマのtwenty-wenty-oneではスタイルの選択肢に枠付きがあるので画像によって使い分けることができる。
 また、CSSによる方法でも画像の追加CSSクラスを使うことで個々の画像で設定できるやの書き込みがあったが、何故か試した限りは枠がつかなかった。やり方の問題かもしれない。

テーマTwntySenteenのサイドバー表示幅調整

 デフォルトの設定ではサイドバーの幅が本文に比べて多すぎるように思ったので幅を調整してみた。

 方法はネットのお世話になりこのページのお世話になり、style.cssに以下の内容を最後に追加した。

@media screen and (min-width: 48em) {
	.wrap {
		max-width: 1200px;
		padding-left: 3em;
		padding-right: 3em;
	}

	.has-sidebar:not(.error404) #primary {
		float: left;
		width: 75%;
	}

	.has-sidebar #secondary {
		float: right;
		padding-top: 0;
		width: 19%;
	}
}

ラズパイでUPDATE失敗対応

ラズパイのBusterでUPDATEを試みたところ

  1. 公開鍵を利用できないため、以下の署名は検証できませんでした
  2. 以下の署名が無効です

などのエラーメッセージが出てUPDATE出来ない事象が発生した。
 私としては今まで経験が無かったことなので少し慌てたがネットで調べると良くあることのようで、その内容に従って処置すると難なくUPDATEに成功した。以下はその内容である。

1の「公開鍵を利用できないため、以下の署名は検証できませんでした」に対しては
警告メッセージの中に
NO_PUBKEY 04EE7237B7D453EC   NO_PUBKEY 648ACFD622F3D138
なる記述があり、警告は2項目であるのでそれぞれその内容に従い、

$ sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 04EE7237B7D453EC
$ sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 648ACFD622F3D138

と2回キーの書き換え操作を行う。これは警告されるキーの数だけ行う。

2の「以下の署名が無効です」に対してはりすとで確認すると

pi@raspberrypi:~ $ apt-key list
/etc/apt/trusted.gpg
—————————————————-
pub rsa2048 2012-04-01 [SC]
  A0DA 38D0 D76E 8B5D 6388 7281 9165 938D 90FD DD2E
uid     [ 不明 ] Mike Thompson (Raspberry Pi Debian armhf ARMv6+VFP) mpthompson@gmail.com
sub  rsa2048 2012-04-01 [E]
pub rsa2048 2012-06-17 [SC]
  CF8A 1AF5 02A2 AA2D 763B AE7E 82B1 2992 7FA3 303E
uid     [ 不明 ] Raspberry Pi Archive Signing Key
sub  rsa2048 2012-06-17 [E]

/etc/apt/trusted.gpg.d/microsoft.gpg
————————————————
pub  rsa2048 2015-10-28 [SC]
   BC52 8686 B50D 79E3 39D3 721C EB3E 94AD BE12 29CF
uid     [ 不明 ] Microsoft (Release signing) gpgsecurity@microsoft.com

/etc/apt/trusted.gpg.d/php.gpg
———————————————
pub  rsa3072 2019-03-18 [SC] [期限切れ: 2021-03-17]
   1505 8500 A023 5D97 F5D1 0063 B188 E2B6 95BD 4743
uid     [期限切れ] DEB.SURY.ORG Automatic Signing Key deb@sury.org
———————————————————————————————————–

DEB.SURY.ORG の署名が有効期限切れなのでphp.gpgを削除する。

$ sudo rm /etc/apt/trusted.gpg.d/php.gpg

update時のエラーメッセージ中に表示されているDEB.SURY.ORG の キー を削除する。

$ sudo apt-key del Z181S2B699CD5741
OK

DEB.SURY.ORG の新しい GPGファイルをダウンロードする。

$ sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

 これで$ sudo apt-get update でエラーが出なければ成功である。