50歳からの人生 自分の好きなことやって生きていくことができるのか!? ここは「がっちゃん 」が実際に体験したことを記録し、楽しく人生を過ごせるためのヒントをさぐる研究所です!

ラズパイ3B+にWordPressを入れて自宅専用ブログを開設

どうも!職業訓練生のがっちゃんです!

ただいま、長期人材育成「情報セキュリティ管理者資格コース」を絶賛受講中です!

 学校ではチームとしての進級ワークショップとして「WordPressでホームページを作成」という課題がありました。私たちのチームは「日本酒の蔵元を応援するサイトを作ろう!」ということで、教室内にWebサーバを作り、そこにWordPressをインストしてホームページ作りをしました。

 進級ワークショップの復習もかねて「それを自宅でできないかな!?出来上がったら子どもにブログの作り方を教えられるよなぁ」と思いつき、自宅のラズパイを利用して「自宅専用ブログサイト」を作成してみることにしました。

まずはRaspbianの更新から

 今回、ラズパイには「Raspbian」がインストール済みであることを前提に話をすすめていきます。ご了承ください。

まずは下準備、各ソフトの更新作業です。

パッケージリストとパッケージの更新

$ sudo apt-get update

$ sudo apt-get upgrade

OSの更新

$ sudo apt-get dist-upgrade

ファームウェアの更新

$ sudo apt-get install rpi-update

$ sudo rpi-update

$ sudo reboot  #最後に再起動しましょう。

raspi-configの更新

$ sudo raspi-config #以下のような画面が出ますので「8 Update」を選択

こんな感じで更新作業がすすんでいればOKです。

apt-get updateがうまくいかないとき

 以下のようなメッセージが出て、アップデートが出来ない理由は、「更新のために見に行くミラーサーバが、何らかの理由で安全でないから更新を無効にするよ」と言っているようです。

 これを解消させるため、不要なキャッシュを消し、最新のミラーサーバを見に行くように設定し直します。

$ sudo apt-get clean #不要なキャッシュを消去

$ sudo rm -rf /var/lib/apt/lists/*

$ nano /etc/apt/sources.list #見に行くミラーサーバを最新のサイトに書き換えます。

 以下のように、今まで見に行っていたミラーサーバは#でコメントアウトし、先頭に、見に行くミラーサーバのURLを書き込みます。

2020.3.7現在、日本の最新ミラーサイトに書き換えました。Raspbianのミラーサイト一覧で、お住まいの地域に一番近いサーバを確認して書き換えることをおすすめします。

上記ミラーサーバの変更を実行しても、まだうまくインストールできない場合は、OS側とリポジトリ側の「パッケージのバージョン」が一致しているのかを確認しましょう。

上記のように、OS側はBusterで最新versionだったのですが、リポジトリ側の設定がStretchと1世代古い設定になっていました。このようにOSとリポジトリのパッケージのversionが合っていないとインストールできない場合があります。

Webサーバにするための設定

サーバに固定IPを割り当てます

 クライアントPCから接続して編集などを行うために、固定IPを割り当てる必要があります。デスクトップ画面右上の「↑↓」の上で右クリックし「Wiewless&Wired Network Settings」を選択します。

出てきた設定画面のInterfaceの右にある項目の▼をクリックし、有線LANを選択します。ここでは「eth0」になっていますが、環境によって違います。

「Automatically configure empty options」のチェックを外し、DHCPによる動的割り振りを解除します。「IPv4 Address」に好きな固定IPを割り振ってください。「Router」「DNS Servers」はデフォルトゲートウエイの値を入力してください。通常はどちらも同じIPになります。「Apply」をクリックしたあと「Close」をクリックし、設定を終了させます。

最後に再起動させれば、先ほど設定した固定IPが割り振られます。

ファイアウォールの設定

 ファイルのやり取りをするために22番ポートを、Webサービス利用のために80番ポートを開放します。また、クライアントPCからssh接続出来るように設定していきます。

$ sudo apt-get install ufw  # ufwのインストール

$ sudo ufw allow 22  # ポートの開放(WEBサーバとして使うので80ポートも開放する)

$ sudo ufw default deny  # 許可されたポート以外を閉じる

$ sudo ufw enable  # ufwの有効化

$ sudo ufw status  #ファイアウオールの設定を確認
sshの設定

$ sudo raspi-config

“5 Interfacing Options” -> “P2 SSH” -> “Would you like the SSH server to be enabled?” -> “はい” によりsshが有効化されます。

次に、sshの設定ファイルは/etc/ssh/sshd_configにあるので以下2行をyesに書き換えていきます。書かれていない場合は、書き足してください。

$ nano /etc/ssh/sshd_config

PermitRootLogin no  # rootログインの禁止

PasswordAuthentication no  # パスワード認証の禁止

ssh接続がうまくいかない場合の対処法

 上記の設定で通常、ssh接続は可能になるはずなのですが、今回、私のちょっとしたミスで以下のような画面が出力されssh接続がうまくいかなかったので記録しておきます。

今回の原因

SSHでは、安全な接続を行うために接続先サーバの情報(RSA公開鍵のフィンガープリント)を、クライアントは保存する。SSH接続時には、以前保存したこの情報と、いままさに接続しようとしているサーバの情報が一致しているかを確認する。こうすることで、ユーザ(クライアント)が知らない間に、別のサーバへ接続してしまうことを防ぎ、よりセキュアになる。

実は以前、私のラズパイでCentOS7が走るのかを検証した時の固定IPと同じ固定IPをふってしまったため、上記の安全措置がとられ、接続できなかったようである。原因が分かれば後はそれを取り除いてあげるだけである。保存している接続先サーバの情報(フィンガープリント)を削除してしまえば、新規接続となるためエラーを回避できる。

 保存している接続先サーバの情報は~/home/ユーザ名/.ssh/known_hostsファイルなので、これを編集します。エラーとなったサーバ名(またはIPアドレス)から始まる行を1行削除するだけでOKです。今回は以下の「192.168.1.50」の分を削除すれば接続できるようになるはずである。

この1行を削除後、再度接続試行してみると成功しました!

Apache、PHP7.0をインストール

PHP7.0と併せてPHPのMySQL接続モジュールをインストールします。

$ sudo apt install php7.0 php7.0-mysql

Apache2と併せてPHP接続モジュールをインストールします。

$ sudo apt install apache2 apache2-mod-php7.0

Apache2はPHPと併せてインストール済とのことで、再起動しておきます。

Apacheの稼働状態を次のコマンドで確認しておきましょう。

$ sudo systemctl status apache2

※OSの起動に伴いApace2も起動するのが既定のようです。

「nano」コマンドで、DocumentRoot”/var/www/html/”にファイル名”info.php”を新規作成します。

$ sudo nano /var/www/html/info.php

開いた編集画面に次のコードを入力して、保存(Ctrl+O → Enter)し、閉じ(Ctrl+X)ます。

<?php  phpinfo();  ?>

クライアントPC側のブラウザで、アドレス欄に”ラズパイのIPアドレス(例 192.168.1.16 や localhost)/info.php”を入力すると、PHP7.0の情報ページが表示されます。これでPHPが正常に動作する環境が整ったことが分かります。

Apacheをインストするとテストページとして以下のような「index.html」も作成されます。こちらは後々削除するか、別の「index.html」に変更する必要があります。

MariaDBをインストール

※Raspbianでは、「MariaDB」を使用することを推奨されているのでこちらをインストールします。ちなみに「MySQL」とは兄弟みたいな関係なので、MariaDBでもmysqlコマンドが問題なく利用できます。

$ sudo apt install mariadb-client mariadb-server

 途中、英語で「ディスク容量、これくらい使うけど大丈夫!?」っていう確認があると思いますが「yes」にしてくださいね。

$ sudo mysql -u root -p #MariaDBに接続できるかを確認します。

パスワードを求められたらデフォルトは「root」です。以下の画面が出れば接続成功です。

PHPMyadminをインストール

次に、「phpMyadmin」をインストールします。

※「phpMyadmin」を、インストールする場合は、それぞれの接続設定が必要なため、必ず「Apache」「PHP」「MariaDB」をインストールしてから実行してくださいね。でないと後々の設定が面倒なことになってしまいます。

$ sudo apt-get install phpmyadmin

途中で聞いてくることは以下の通りです。

データベースのインストール:「はい」を選択

DBサーバに登録するためにphpMyadmin用のパスワードを入力してください:「root」など好きなパスワードにしてください。

このようなエラーが出た場合、4択画面になりますが、結局「中断する」「無視する」で落ち着くことになり、phpMyadminの設定は中断されてしまいます。インストールは完了しているようです。

※何度かトライしたのですが、毎回エラーが出てしまい、成功した件を掲載することができませんでした。ごめんなさいね。

MySQLへの接続方法:「UNIXソケット」

phpMyadminが使用するMysqlデータベース名:なんでも構いませんが今回は「phpmyadmin_mysqldb」にしました。

Phpmyadmin用のMySQLユーザ名:「phpmyadmin@localhost」などお好きなユーザ名を設定してください。

phpMyadmin用のMySQLアプリケーションパスワード:「root」などお好きなパスワードを設定してください。

インストールされたかを確認します。まず、設定ファイルを書き換えます。

$ nano /etc/apache2/apache2.conf

下記の1行を一番下に追記してください。

Include /etc/phpmyadmin/apache.conf

そして、apache2を再起動します。

$ sudo /etc/init.d/apache2 restart

再起動後、クライアント側のPCのブラウザで下記のようにURLを入力してアクセスします(xxxはサーバの固定IPアドレス)。

XXX.XXX.XXX.XXX/phpmyadmin/

以下のようにログイン画面が表示されたらOKです。

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

ログインが成功したら、以下のような画面が出ます。

 これでWebサーバが出来上がりました。次はここに「Wordpress」をインストールしていく手順を書いていきます。

WordPressをインストール

事前準備

 WordPressからMariaDBへアクセスするためのユーザ設定を行います。MariaDBにアクセスし、新規データベース「wordpress」(データベース名は好きな名前にしてくださいね。ここではWordpressで作成します)を作成します。

$ sudo mysql

MariaDB [(none)]> create database wordpress default charset utf8;

次に新規ユーザを作成します。設定するユーザ名、パスワードは、好きなのにしてくださいね。

MariaDB [(none)]> CREATE USER ‘好きなusername’@’localhost’ IDENTIFIED BY ‘好きなpassword’;

Query OK, 0 rows affected (0.01 sec) と出たら成功です。

「mysql」のデータベースに移動し、新規ユーザが作成されているかを確認します。

MariaDB [(none)]> use mysql;

MariaDB [mysql]> select user,password,plugin from user;

上記の表に自分が作ったユーザ名があれば成功です。

最後に、作成した「Wordpress」データベースに対して、新規作成したユーザへアクセス権(今回はすべての権限)を付与します。「*」はワイルドカードで、今回は「wordpressデータベースの中にあるすべてのテーブル」という意味で使用しています。

MariaDB [(none)]> GRANT ALL on wordpress.* TO ‘先ほど作成したusername’@’localhost’ IDENTIFIED BY ‘先ほど作成したpassword’;

Query OK, 0 rows affected (0.00 sec) と出たら成功です。これで設定は完了です。「exit」でMariaDBから出ましょう。

MariaDB [(none)]> exit

wgetコマンドでWordpressをインストール

インターネットに接続できる環境の場合は、wget コマンドで直接ダウンロードできます。まずは以下のダウンロードしたいディレクトリまで移動し、wgetコマンドでWordpressの圧縮フォルダを取得、解凍していきます。

$ cd /var/www/html #カレントディレクトリの移動

$ wget http://wordpress.org/latest.tar.gz #最新のWordpress圧縮フォルダをダウンロード

$ tar xzf latest.tar.gz #「latest.tar.gz」を展開

$ ls -la #フォルダの内容を確認。以下のように「Wordpress」フォルダが作成されていたら成功です。

($ rm -rf wordpress latest.tar.gz ) ダウンロードしたwordpress圧縮フォルダを削除するコマンドです。後々これが必要な場合(もう一つWordpressのサイトを作成する場合)はこれを実行せず、他の場所に移動させておくようにしてください。

 chown(Change Owner)でhtmlフォルダの所有者を変更。これを実行していないとWordpressのインストールが実行できません。必ず実行してくださいね。

※「www-data」は、Ubuntu上のWebサーバー(Apache、nginxなど)がデフォルトで通常操作に使用するユーザーです。

$ chown -R www-data:www-data /var/www/html

ブラウザに「xxx.xxx.xxx.xxx(サーバの固定IP)/wordpress/」と入力して、以下の画面が出れば成功です。そのまま設定を続けていきましょう。

下の画面の赤枠部分の「データベース名」は、最初に作成しておいたデータベース名、ユーザ名、パスワードを必ず入力してください。青枠部分はデフォルトのままでOKです。

 下の画面が最後の入力画面です。ここで入力する情報は、後々変更が可能ですので、気軽に入力してください。

 インストールが完了したら、ログイン画面に進み、先ほど設定した「ユーザ名」と「パスワード」を入力してログインします。下の画面が出てきたら成功です!

これで自宅専用のホームページが完成しました!

まとめ

 自宅専用のホームページですので、家族しか見ることはありません。多少恥ずかしい出来栄えのものを掲載しても大丈夫。家族内でオモシロブログを作成して楽しんでみましょう。

それでは本日も最後までお付き合いいただき、ありがとうございました!

スポンサーリンク
最新情報をチェックしよう!