LCDディスプレイを取り付けて天気予報付き置き時計にする」を真似て私のラズパイも置き時計にしてみました。

 

そこで私の環境のせいかインストールに苦労した所があるので、その部分をアップします。

 

基本構成
Raspberry Pi 2 Model B
2017-11-29-raspbian-stretch-lite.zip
3.5インチHDMI LCD タッチモニタ

 

↓ 最小限のGUI環境でやりたいのでOSはあえてlite版、これに最小限のGUI環境と日本語フォントをインストールしました。

$ sudo apt-get install raspberrypi-ui-mods
$ sudo apt-get install fonts-ipafont

 

↓ 私が無知な為一番苦労したのがRuby関連でした。2017-11-29-raspbian-stretch-lite.zipの中にあるはずのRubyが、利用できないので困りました。結局、rbenvとruby-devをインストールして解決しましたけど。

$ sudo apt-get install rbenv
$ sudo apt-get install ruby-dev

$ ruby -v
ruby 2.3.3p222 (2016-11-21) [arm-linux-gnueabihf]

$ sudo gem install nokogiri pry pry-byebug

 

↓ 次に困ったのがCRON関連で、私の環境では/root/.rbenv/shims/rubyがnot foundとなってしまいcrontab -eで設定する内容の変更が必要でした。
さらに、天気予報の取得を1日4回だけ毎日、0時10分、5時1分、11時1分、17時1分に行う様設定しました。

$ sudo crontab -e

10 0 * * * cd /git/pi_weather/script; /usr/bin/ruby /git/pi_weather/script/run.rb > /dev/null
1 5,11,17 * * * cd /git/pi_weather/script; /usr/bin/ruby /git/pi_weather/script/run.rb > /dev/null

 

その他の変更部分は

↓ sudo vi /etc/xdg/lxsession/LXDE-pi/autostartを次の様に変えました。

$ sudo vi ~/.config/lxsession/LXDE-pi/autostart

 

↓ 表示誤差を最大1秒から最大0.1秒に変えました。1000を100に変更。

$ sudo vi  /git/pi_weather/client/src/index.html

        if ((intervalCount % intervalThreshold) == 0) {
          showDate(date);
          getWeather();
        }
      }, 100);
    });

    // デバッグ用
    var showMessage = function(str) {

まだ持ってなかったUSBチェッカーをポチりました。それは、RouteRのRT-USBVAC3QCです。

 

ラズパイの電流を測定中。

 

↓ この状態で少し負荷が掛かる作業をさせたら、ラズパイに供給される電圧が低くなったのか、PWR LED(赤色LED)が消灯する様になってしまいました。

これは、ちょっと不安な症状です。試しにUSBチェッカーを介さずに、同じ電源で同じ作業をさせたらPWR LEDの消灯はありませんでした。

 

スマホ充電時の電圧電流測定専用と思った方が良いのかも。

ラズパイにディスプレイを取り付けてみました。

モバイルバッテリーからのUSBケーブル一本でスッキリ。これでUSB WiFiドングルも作動中なので、PCのターミナルから操作出来る。

 

自宅サーバー用PCを変えた時、WordPressの引越し作業をしたので、その備忘録です。え〜と、これは前投稿の「macOS ServerでWordPressを運用」からのつづきです。

↓ 中古物件だけど新居のMac mini Late2009(左)と旧居のMac mini G4(右)

ハードは中古だけど、おっと8GBのメモリは新品。ソフトも新規インストールなので、中古物件だけど内装や家具は全部新品!。みたいな感じですかね〜。

 

引越し作業はまだ下の方です。もう少し一人話しが続きます。

 

一人話しの続きです。さて、引越しには旧居のMac mini G4(Ubuntu)にあるWordPress用データベースとuploadsディレクトリの画像データをバックアップして置かないと、引越しが出来ません。そのデータベースのバックアップ方法はMySQLのコマンドが確かです。私はphpMyAdminを使用した時、不完全な復元となりました。原因は私の無知。それからはphpMyAdminをインストールしていません。

そんな無知な私でも、MySQLのコマンドを使用すれば、完全なバックアップと復元が出来ます。それぞれ1行で済むので、「簡単、確実、早い!」おすすめです。

 

バックアップするものは2つ

WordPress用データベース
uploadsディレクトリ

私の場合はテーマ用スタイルシートに手を加えてあるので、これもバックアップ対象なんです。

wp-content/themes/contango/style.css

 

WordPress用データベースのバックアップ方法
データベース名がwpdbだとして

$ mysqldump --single-transaction -u root -p wpdb > wpdb_minig4.dump

復元は

$ mysql -u root -p wpdb < wpdb_minig4.dump

一人話しは以上です。

 

ここから本番の引越し作業です。尚、WordPressのインストールが済んだ直後とします。投稿がない状態、又は投稿があっても削除して良い事とします。

注意して下さい。
これは素人の私が行う方法で、データベースを一度削除します。これを貴方が参考にした事で損害等を被っても、私は責任を取りませんよ〜。

 

まず、私は投稿のないWordPressを好みのスタイルに整えます。
それは、お気に入りのテーマを適用、そのテーマ用のバックアップして置いたstyle.cssに変更、必要なプラグインのインストール、uploadsディレクトリの復元等を行います。

以上を終えたら、一度WordPress用データベースを削除して、新しくデータベースを作成。空のデータベース(テーブルがない)が必要みたいなので。そのデータベース名はwpdbとして

$ mysql -u root -p
mysql> DROP DATABASE wpdb;
mysql> CREATE DATABASE wpdb;
mysql> exit

バックアップして置いたデータベース(wpdb_minig4.dump)の復元です。

$ mysql -u root -p wpdb < wpdb_minig4.dump

 

これでWordPressの引越し完了!
どうです?貴方のWordPressになっていますよね〜。
家に例えるなら、内装や家具は全部新品なのに、住み慣れた我が家って感じですね。

 

残るは、セキュリティを高める設定です。と、私は良く知っているみたいな書き方ですが、セキュリティ関連「も」適当です。

私は、.htaccessに記述する事を新たに作成したakihito.confにまとめて記述しました。

$ sudo vi /Library/Server/Web/Config/apache2/sites/akihito.conf

<Directory /Library/Server/Web/Data/Sites/wordpress/>
<Files ~ "^\.ht">
deny from all
</Files>

<Files xmlrpc.php>
order deny,allow
deny from all
allow from 127.0.0.1
allow from 192.168.0.0/24
</Files>

<Files wp-login.php>
order deny,allow
deny from all
allow from 127.0.0.1
allow from 192.168.0.0/24
</Files>

<files wp-config.php>
order allow,deny
deny from all
</files>
</Directory>

<Directory /Library/Server/Web/Data/Sites/wordpress/wp-admin/>
order deny,allow
deny from all
allow from 127.0.0.1
allow from 192.168.0.0/24
</Directory>

その理由は
/Library/Server/Web/Config/apache2/httpd_server_app.conf
の中に

<IfDefine WEBSERVICE_ON>
    Include /Library/Server/Web/Config/apache2/sites/*.conf
</IfDefine>

とあるので、Server.appのWebサイトが「入」の場合、それらのファイルを読み込むらしいです。

 

セキュリティ的にはまだ不足してそうですので、今後勉強します。