ラズパイ 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サーバの構築は終了です。

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

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

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

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

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

ラズパイで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 でエラーが出なければ成功である。

ラズパイ3B+のSWAPを拡張

 このところラズパイ3+を使ってarduinoIDEでスケッチをコンパイル中ハングアップすることが頻発していた。

 暫く原因が分からなかったが、アプリの起動数が多いとよく発生していることに気づき、もしかしてメモリー不足ではと思い付いた。

 それではSWAPを拡張すればと思い、現行のSWAPを
 $ swapon -s 
で見てみると100Mbyteであった。

 これではすぐに足りなくなるのではと思い、メインメモリーと同じ1Gとすることとした。

 方法は /etc/dphys-swapfile でCONF_SWAPSIZE=1024とすればよい。
$ sudo vi /etc/dphys-swapfile
でこの修正を行い、
$ sudo /etc/init.d/dphys-swapfile restart で反映する。

 swapon -s で確認すると見事1Gbyteに拡張されていた。

 試しにハングしたブラウザ+arduinoIDE+libreofficeのwriteを立ち上げてみるが難なく立ち上がった。
$ free
でメモリーの使用状態を見てみてもswapを200M程使用していたがまだ余裕があった。

これなら安定して使えそうである。

ラズパイupgradeに2回失敗

このところラズパイのupgradeに立て続けに失敗している。kernelに絡むUPでOSは32bit版Busterである。

 uodate,upgradeで最新版に置き換えるが、失敗したとの最後にエラーが出る。ダウンロードでのエラーもあるので何度かupgradeしてみるが、結果は変わらない。

 この状態で再起動するとちょっとディスクにアクセスしただけで動かなくなる。中身を見てみると/boot以下のファイルが不足している。削除して新しいものを書き込む段階でエラーとなっているようである。

 復旧は、新規にインストールしても良いが、それなりに使っているのでまた同じことを繰り返すのも面倒である。

 そこで、別のUSBに新規にインストールして、upgrade,で出来た/boot以下のファイルを比較して不足分をコピーしていく。ファイルの数が多いのでそれなりに大変である。

 前回はこれでも完全に復帰せず、ディスクトップが表示された後動かなくなったが、今回は見事せいこうした 。

 理由は分からないが、こういうことが混発するとupgradeが怖くなる。

ラズパイ作業環境整備

折角ラズパイを使っているのだから日々のパソコンを使った作業にも使えるように環境の整備をしてみた。

1 日本語変換ツー
 これまでibus+anthyを使っていたのだが、文末で句読点つまり。で終わると最後の文字が仮名で良いのに漢字になる具合があり、句読点を付けずに変換してその後句読点を入力するなどの対応をしてきた。

 しかし、これでは使い難く、如何しても文書作成はWindowsに頼ってしまう事となる。そこでラズパイでも何とかならないかと幾つかの日本語変換ツールを試した見た。
 結果、fctix+mozcならそういう不具合が無いことが分かったのでこれに変更した。

sudo apt-get remove ibus

でibus+anthyを削除しておき、次に

 sudo apt-get install fcitx+mozc

をインストール。環境の設定を行い、Windowsと同等の操作環境とした。

2 ファイルマネージャのサムネイル表示
 ホームページの作成時には写真を多用するので、ファイルマネージャでファイル一覧を表示させた時にサムネイルでどのような写真かが一覧で見れれば便利である。
 Windowsでは表示の設定で大きいアイコンなどを指定すれば簡単にサムネイル表示が出来る。
 ラズパイでもそのようなことが出来ないか調べてみた所、標準のファイルマネージャで最上部に表示されるアイコンを選択することでWindowsとほぼ同等のことが出来ることが分かった。下図の赤ラインの所である。
 分かってしまえば簡単なことだがここに至るまでにはそれなりの時間を浪費した。

 これで少しは使いやすくなった。後、ホームページで使う写真の修正に適当なツールがないか探しているところである。

ラズパイ3B+に冷却ファン取り付け

久しぶりの書き込みである。このところはarduinoとかESP8266、ESP32でIoTもどきの工作をして楽しんでいる。

 書込みが減ったのは、家庭のルータを取り換えた結果、内部からブログへのアクセスが出来なくなったことが大きな原因である。

 ブログにアクセスするにはスマホのティザリング機能で外部からアクセスする状況を作る必要があり、面倒である。

 しかし、そうも言っておれないのでこれからは勤めて更新するようにしたいものである。

 さて本題のラズパイ3B+であるが、このところ使用中にフリーズしてしまう事が多発し、困っている。

 CPUの温度ではと思い、
$ vcgencmd measure_temp
で測定してみると起動して暫く使っていると60℃を超えている。やはりこれかと思い、他のラズパイ3Bとラズパイ4Bを計ってみると50℃程度、やはり高いようである。

 対策はファンの取り付けしかないので、アマゾンで適当なファン、二個で800円のものを購入し、プラスチックケースの蓋に穴を空けて取りつけた。

 やはりファンである。50℃以下に抑えることが出来た。これで使用中のフリーズは無くなると期待している。

 どうも3B+は他の機種に比べて温度が上がりやすい傾向があるようで temp_soft_limit なるパラメータがあり、デェフォルトは60℃だそうである。ファンは騒音があるので余りつけたくはなかったがフリーズするのでは使えないので仕方が無い。

インターネットでラジオ

 volumioをいじっている内にラジオをネットで気がつき、他の方法がないものかと調べてみた。

 LinuxではRadioTrayなるものがあることを発見。ちょつと古そうだが試して見た。

sudo apt-get install radiotry

でインストール。ラズパイのメニューから起動すると最上段のタスクトレイ右端に表示される。

このアイコンをクリックすると収容されているラジオ局が出てくるので適当なものを選択すれば、生きていれば放送を聞くことが出来る。また、新規に登録することも出来る。この場合はストリーミングのURLが必要となる。

 残念なのは音量の調節が出来ないことである。ネットで見るとメニューの中に設定という項目があり、これから出来ると書いてあるが、私の場合は設定なる項目がどのようにしても現れなかった。ボリューム最大であるのでびっくりする。

 ということで実用には難ありなので、インターネットのホームページでサイマル放送のページがあるのでここから試してみた。国内だけでvolumioに収容されているものと比べるとはるかに小規模ではあるが、簡単に放送を聞くことが出来るのでラジオの聴取はこのページから行うこととした。

Volumioの赤外線リモコン制御

 苦労したvolumio2の赤外線リモコン制御が何とか動き出した。やはりブラウザの画面からのコントロールしていたのに比べると楽である。

 赤外線制御のためのドライバーであるlircdの設定、特にリモコン信号の学習で苦労したが、何回もやっている内に慣れたのか成功する確率が上がりさほど苦でもなくなった。

 基盤への受光モジュールの取付けも格好は悪いが何とか動いてくれた。

 キューに入れたFM局を左右の指示で変更できるのは以外と便利である。

木材を使って取付けてみた