RaspberryPi(介護ロボットVol.7:新Webサーバー編)
介護ロボットをWebサーバーに仕立てて、介護にかかる各種情報の有効活用を図ろうと思う
今回はRaspberryPi48GBを使う ¥23,800と少し値は張るがその分コスパは期待できる
OSもbullseye(64ビット版)とし高レスポンスを狙う
さてさて、古きOSから何世代も刷新しての取り組み、いきなりOSのinstallもRaspberry Pi Imagerなる
ツールを使って容易になっている
立ち上げにモニターやキーボード、マウスも不要なのでなんとも手軽になったものだ
基本的な初期設定として
①rootパスワード設定
②IPアドレスの固定化
③パッケージの更新
④SSHにを公開鍵認証方式化
⑤タイムゾーン、ロケールの設定
を行いミドルウェアー等のInstall・設定を以降順次行っていく
(1)Apacheのinstall
1 |
$ sudo apt install apache2 |
(2)PHPのinstall
Raspberry Pi OSの標準のaptリポジトリでは、PHP7.3のインストールしかできない
ここでは、SURY PPA(Personal Package Archive)リポジトリを使用して
PHP7.4をインストール
1 2 3 4 5 6 7 8 |
$ sudo apt install lsb-release apt-transport-https ca-certificates # SURY PPAリポジトリを使用する際に必要になるGPGキーのダウンロードし保存する $ sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg # SURY PPAリポジトリをaptリポジトリに追加 $ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list # パッケージ一覧を更新 $ sudo apt update $ sudo apt upgrade |
(3)PHPのinstall
安定バージョン7.4をinstallする
1 |
$ sudo apt install php7.4 |
WordPressサーバを動作させる上で必要なPHPモジュールもインストールする
1 |
$ sudo apt install php7.4-curl php7.4-json php7.4-mbstring php7.4-mysql php7.4-imagick php7.4-xml php7.4-zip |
(4)PHPの設定(/etc/php/7.4/apache2/php.iniの編集)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
~(略)~ [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 = 256M <==== 256Mに変更 ~(略)~ post_max_size = 40M <==== に変更 ~(略)~ upload_max_filesize = 30M <==== に変更 ~(略)~ |
(5)php-fpmのinstall
Apache WebサーバからPHPを使用する際に必要になるphp-fpmのインストールを
行う
1 2 3 4 5 6 |
$ sudo apt install php7.4-fpm # apacheの再起動 $ sudo systemctl restart apache2 # apacheの再起動 $ sudo systemctl restart apache2 |
(6)ServerNameディレクティブの設定
/etc/apache2/apache2.confを編集しサーバー名を追記する
記載個所は# Global configurationというコメントの
1 2 3 4 5 |
~(略)~ # Global configuration # ServerName www.yasashiite.jp <====追記 ~(略)~ |
(7)DirectoryIndexディレクティブの設定変更
デフォルトでは、Webブラウザからのリクエストが、ディレクトリだった場合や
ファイルが指定されなかった(最後が「/」で終る)場合に「index.html」
ファイルが返される設定になっている
このため、WordPressのトップページである「index.php」ファイルが返される
ように、設定変更する
/etc/apache2/mods-available/dir.confファイルを編集し
WordPressのトップページである
index.phpファイルが最初に返されるように最初に記載する
1 2 3 |
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule> |
(8)Rewriteモジュールの有効化
Wordpressでは投稿記事を更新や公開しようとすると「更新に失敗しました」と
エラーとなる これはApache Webサーバをインストールした直後の初期設定
では、Rewriteモジュールが無効状態になっているからでこれを有効化する
有効化した後apatcheを再起動 apache2ctlコマンドでrewrite_module (shared)と
表示されれば有効化OK
1 |
$ sudo systemctl restart apache2 |
1 2 3 |
$ apache2ctl -t -D DUMP_MODULES | grep rewrite 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 rewrite_module (shared) |
(9)AllowOverrideの変更
初期状態では、.htaccessファイルに記載できるディレクティブは
すべて無効化されている
.htaccessファイルに記述したディレクティブが有効化されるよう
次のように /etc/apache2/apache2.conf ファイルを編集する
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ 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> |
(10)MariaDBのインストール
mysqlから派生したオープンソースのデータベースMariaDBをinstallする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Ver10.3をインストールしようとしたが「古い」と言われたのでメッセージどおり Ver10.5をインストールする $ sudo apt install mariadb-server-10.3 Reading package lists... Done Building dependency tree... Done Reading state information... Done Package mariadb-server-10.3 is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: mariadb-server-core-10.5:armhf mariadb-server-10.5:armhf mariadb-server-core-10.5 mariadb-server-10.5 <span style="color: #ff0000;">E</span>: Package 'mariadb-server-10.3' has no installation candidate $ sudo apt install mariadb-server-10.5 |
続けて、MariaDBの初期設定を行う
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
ユーザでは初期設定シェルへのpathが設定されていないのでrootになって mysql_secure_installationスクリプトを使用する $ su root Password: root@RaspberryPi20:/home/hikaru# 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 haven't set the root password yet, you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password or using the unix_socket ensures that nobody can log into the MariaDB root user without the proper authorisation. You already have your root account protected, so you can safely answer 'n'. Switch to unix_socket authentication [Y/n] y Enabled successfully! Reloading privilege tables.. ... Success! You already have your root account protected, so you can safely answer 'n'. Change the root password? [Y/n] 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 ... 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 ... 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... ... 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! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB! root@RaspberryPi20:/home/hikaru# quit bash: quit: command not found root@RaspberryPi20:/home/hikaru# exit exit mysql -u root -pで接続できることを確認しておく $ mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 44 Server version: 10.5.18-MariaDB-0+deb11u1 Debian 11 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 |
(11)WordPressのインストール
1 2 3 4 5 6 |
$ wget https://ja.wordpress.org/latest-ja.tar.gz 次に解凍する $ tar -xzvf latest-ja.tar.gz ホームにwordpressというディレクトリーが作成されればOK |
(12)データベースとユーザの作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 31 Server version: 10.5.18-MariaDB-0+deb11u1 Debian 11 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 "passion"@"localhost" IDE NTIFIED BY "zieU4Sk&Y!1S)deQ"; Query OK, 0 rows affected (0.031 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.002 sec) MariaDB [(none)]> quit Bye |
(13)wordpressのファイルのアップロード
1 |
$ sudo cp -R ./wordpress/* /var/www/html/ |
(14)権限の設定
Apache Webサーバの実行ユーザー(www-data)の権限を設定する
1 |
$ sudo chown -R www-data:www-data /var/www/html/ |
(15)wordpressサーバーのセットアップ
次のURLにPC:Webブラウザーでアクセスしてセットアップを行う
URL:http://<IPアドレス>/wp-admin/install.php
次の画面が表示されるので「さー始めましょう!」をクリックして進める
次の「成功しました!」画面が出たら[ログイン]を実行すると
無事ダッシュボード画面が表示されるとwordpressのセットアップは完了
次回(Vol.18)で
①サイトのSSL化
②現行サイトのバックアップファイルから新サイトへの移行
③サーバラックへの収納
等を行っていく