TOPに戻る
鬱るんです
躁鬱病の元ITエンジニア「はまー」が心と体の模様を記した雑記帳。 大手IT企業で心身ともにぼろぼろになり退職した後、派遣のエンジニアをやったり小さなIT企業でほそぼそと働いたり、Web制作事業を立ち上げようとしたりしたが、今は就労継続支援B型事業所でリカバリーを頑張っている毎日。

月別アーカイブ: 2020年5月

昨日は22時半に寝たが、寝付けずに23時10分に起きて牛乳を飲んでチーズを食べた。またPCを立ち上げて、なぜかレンタルサーバーの新ブログの常時SSL化という、「なぜ今やる?」ということをやり始めた。

常時SSL化というのは、サイトコンテンツの内部リンクを完全にSSL化すること。レンタルサーバーになってSSL証明書を発行してもらえたので、HTTPSでこのサイトに接続できるようにできたが、移行前の記事内の画像や他の記事へのリンクがhttpsでなくhttpで始まっており、それらは安全なリンクとみなされない。そのため「安全でないコンテンツへのリンクが含まれる」という状態だった。それを無理やり「Really Simple SSL」というプラグインで「完全にSSL化されている」ように見せかけていた。

しかしこれはあまり美しくない。本来なら自サイトのURLを全部httpsに書き換えるべきである。ということで「Search RegExp」というプラグインでDBの内容を一斉に置換してしまった。先日ローカルサーバーで、SSL化ではないがレンタルサーバーに移行したためホスト名を変えた際、旧ブログのDB内のホスト名を一斉置換するために試してうまくいった。同じようにレンタルサーバーの常時SSL化も近日中にやろうかと思っていた。それをなぜか昨日の夜にやりだした。DBのバックアップをとって、Search RegExpでURL置換。phpMyAdminからSQLでDBの中を見てうまくいったっぽいと確認。なのにReally Simple SSLプラグインを無効化してブログを表示させたら、「保護されてない通信」との表示。あれ~?というところで昨日は0時をまわったので寝た。起きたら8時45分。とほほである。

そして今日は昨夜の続き。多分この辺りが怪しいんだろうと思うところを修正したが、まだおかしい。どうやって調べるんだろうと思ってネットで検索したら、ChromeのデベロッパーツールでWarningが出てるからそれで問題の箇所を特定できると。調べてみたらFeedlyというRSSリーダーへのリンク内にある自サイトのURLがhttpだったのがいけなかったようだった。そいつを修正したら無事完全にSSL化できた。

ところでFeedlyのボタンを押したらエラーになった。また調べたら、なんと2年くらい前にFeedlyが仕様変更になって、コードを書き換えないとちゃんとFeedlyの画面に遷移しないという状態になっていた。ここからアクセスする人はほとんどいないと思うが、まあよくこのタイミングで気づいたものだ。一度設置したら自分もまず押さないボタンだった。

これである。

follow us in feedly

というところで、今日はいろいろいじっていたら前記事のphpMyAdminのトラブルに遭遇して格闘していた。最近こういうトラブルばっかりで、正直楽しい。そして昼間に記事をアップしたら、またサイトが「保護されていない通信」に戻ってしまった。なんで?え~と、どうやら画像をアップしたらhttpで始まるURLでimgタグが埋め込められてしまっていた。???と思ったら、WordPressのダッシュボードで肝心の自サイトのURLをhttpsに書き換えてなかった。プラグインに任せ過ぎだろう、自分。httpsに修正して画像をアップし直したらちゃんとhttpsになりましたよ。これで大丈夫かな。まだなにか罠があるのかな。

そういうことをしていて、日曜日だけど引きこもっていたよ。まだまだコロナは油断してはいけないからこれでいいのだ。明日からまた作業所だ。

今日ローカルサーバーでphpMyAdminにアクセスしようとしたら、この表示。

phpMyAdmin_mbstringエラー

おおーい、エラーかーい。あああやっぱり出たよ、OSアップデートの弊害が。mbstringがないとな。PHP関連では毎回苦労する。PHPのバージョンが上がるたびに、それに振り回されるのだ。PHPのバージョンていくつになったんだ?

$ php -v
PHP 7.2.24-0ubuntu0.18.04.6 (cli) (built: May 26 2020 13:09:11) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.24-0ubuntu0.18.04.6, Copyright (c) 1999-2018, by Zend Technologies

7.2か。7.2のmbstringが入ってないのか?

$ dpkg -l | grep mbstring
ii php-mbstring 1:7.2+60ubuntu1 all MBSTRING module for PHP [default]
rc php7.0-mbstring 7.0.33-0ubuntu0.16.04.15 amd64 MBSTRING module for PHP
ii php7.2-mbstring 7.2.24-0ubuntu0.18.04.6 amd64 MBSTRING module for PHP

入ってるじゃないか。なんでmissingなんだ。

なんか悪い予感がするが、ひょっとして、と思ってWebでphpinfo()を表示させてみた。
ApacheのPHPのバージョンが7.0
おおお!こっちは7.0だと。というか「PHP Version 7.0.33-0ubuntu0.16.04.15」て何?「16.04」てところがすげー気になるんだけど。

Apache用のPHPモジュールは別に7.2用のがあって、それを明示的に指定して入れないといけないのかな。

$ apt-cache search libapache2-mod-php7.2
libapache2-mod-php7.2 - server-side, HTML-embedded scripting language (Apache 2 module)
php7.2-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)

あ、それらしきものが。

$ sudo apt-get install libapache2-mod-php7.2
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
libapache2-mod-php7.2
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
1,350 kB のアーカイブを取得する必要があります。
この操作後に追加で 4,793 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libapache2-mod-php7.2 amd64 7.2.24-0ubuntu0.18.04.6 [1,350 kB]
1,350 kB を 1秒 で取得しました (2,042 kB/s)
以前に未選択のパッケージ libapache2-mod-php7.2 を選択しています。
(データベースを読み込んでいます ... 現在 159029 個のファイルとディレクトリがインストールされています。)
.../libapache2-mod-php7.2_7.2.24-0ubuntu0.18.04.6_amd64.deb を展開する準備をしています ...
libapache2-mod-php7.2 (7.2.24-0ubuntu0.18.04.6) を展開しています...
libapache2-mod-php7.2 (7.2.24-0ubuntu0.18.04.6) を設定しています ...

Creating config file /etc/php/7.2/apache2/php.ini with new version
php_invoke: Enabled module dom for apache2 sapi
php_invoke: Enabled module posix for apache2 sapi
php_invoke: Enabled module sysvsem for apache2 sapi
php_invoke: Enabled module sysvshm for apache2 sapi
php_invoke: Enabled module xml for apache2 sapi
php_invoke: Enabled module bz2 for apache2 sapi
php_invoke: Enabled module iconv for apache2 sapi
php_invoke: Enabled module tokenizer for apache2 sapi
php_invoke: Enabled module sockets for apache2 sapi
php_invoke: Enabled module xmlwriter for apache2 sapi
php_invoke: Enabled module json for apache2 sapi
php_invoke: Enabled module ctype for apache2 sapi
php_invoke: Enabled module pdo for apache2 sapi
php_invoke: Enabled module wddx for apache2 sapi
php_invoke: Enabled module xsl for apache2 sapi
php_invoke: Enabled module shmop for apache2 sapi
php_invoke: Enabled module ftp for apache2 sapi
php_invoke: Enabled module simplexml for apache2 sapi
php_invoke: Enabled module fileinfo for apache2 sapi
php_invoke: Enabled module opcache for apache2 sapi
php_invoke: Enabled module sysvmsg for apache2 sapi
php_invoke: Enabled module phar for apache2 sapi
php_invoke: Enabled module readline for apache2 sapi
php_invoke: Enabled module smbclient for apache2 sapi
php_invoke: Enabled module calendar for apache2 sapi
php_invoke: Enabled module exif for apache2 sapi
php_invoke: Enabled module gd for apache2 sapi
php_invoke: Enabled module xmlreader for apache2 sapi
php_invoke: Enabled module gettext for apache2 sapi
php_invoke: Enabled module mbstring for apache2 sapi
libapache2-mod-php7.2: Disabling old php7.0 in favor of using PHP 7.2

最後に「Disabling old php7.0 in favor of using PHP 7.2」と出たのでこれでいけるかと思いきや、それでもだめ。PHPinfoの内容は変わらずVer7.0のまま。Ver7.0用のmbstringはあるのか調べたら、

$ dpkg -l|grep php7.0|grep mbstring
rc php7.0-mbstring 7.0.33-0ubuntu0.16.04.15 amd64 MBSTRING module for PHP

rcだから、設定ファイルだけ残っているということか。7.0と7.2のモジュールを別々に持つことはできないの?それはちょっと無理か。ここに書いてる7.0.33-0ubuntu0.16.04.15というバージョンがやっぱり気になる。Apacheが7.2を使ってくれないとライブラリとの整合性が取れないよな。

論理的に考えよう。ApacheがどのPHPのモジュールを選択するかどこで定義されている?Apacheのコンフィギュレーションファイルだ。それはmods-availableにあるはずだ。どれどれ、

$ cd /etc/apache2/mods-available/
$ ls php*
php7.0.conf php7.0.load php7.2.conf php7.2.load

うむ、availableに7.0と7.2が混在している。おかしいな、さっき上で「libapache2-mod-php7.2: Disabling old php7.0 in favor of using PHP 7.2」と出たのに。まあいいや、7.0をDisableにしてみよう。

$ sudo a2dismod php7.0
Module php7.0 disabled.
To activate the new configuration, you need to run:
systemctl restart apache2
$ sudo service apache2 restart

これでどうだ。とりあえずPHPのバージョンは?

ApacheのPHPのバージョンが7.2

おお、無事ApacheでPHP7.2を使ってくれるようになった。これでいけるか?phpMyAdminを再度表示。

phpMyAdminのエラーmysqli

まだだめか・・・。いや、mbstring問題は解決したっぽい。「mysqli拡張がありません」とな。なんかモジュールがないのか?ちょっと調べてみる。

$ dpkg -l|grep php|grep mysql
ii php7.0-mysql 7.0.33-0ubuntu0.16.04.15 amd64 MySQL module for PHP

うむ、PHP用のMySQLモジュールは7.0用のしか入ってないっぽい。当然7.2用のもあるんだろうね。

$ apt-cache search php7.2-mysql
php7.2-mysql - MySQL module for PHP

あるっぽい。じゃあインストール。

$ sudo apt-get -y install php7.2-mysql
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
php7.2-mysql
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
117 kB のアーカイブを取得する必要があります。
この操作後に追加で 449 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 php7.2-mysql amd64 7.2.24-0ubuntu0.18.04.6 [117 kB]
117 kB を 1秒 で取得しました (230 kB/s)
以前に未選択のパッケージ php7.2-mysql を選択しています。
(データベースを読み込んでいます ... 現在 159046 個のファイルとディレクトリがインストールされています。)
.../php7.2-mysql_7.2.24-0ubuntu0.18.04.6_amd64.deb を展開する準備をしています ...
php7.2-mysql (7.2.24-0ubuntu0.18.04.6) を展開しています...
php7.2-mysql (7.2.24-0ubuntu0.18.04.6) を設定しています ...

Creating config file /etc/php/7.2/mods-available/mysqlnd.ini with new version

Creating config file /etc/php/7.2/mods-available/mysqli.ini with new version

Creating config file /etc/php/7.2/mods-available/pdo_mysql.ini with new version
libapache2-mod-php7.2 (7.2.24-0ubuntu0.18.04.6) のトリガを処理しています ...

インストール完了。これでどうだろうと試したが、まだだめ。「PHPの設定をチェックしてみてください」と書いてあるのでFAQを読んでみた。

To connect to a MySQL server, PHP needs a set of MySQL functions called “MySQL extension”. This extension may be part of the PHP distribution (compiled-in), otherwise it needs to be loaded dynamically. Its name is probably mysqli.so or php_mysqli.dll. phpMyAdmin tried to load the extension but failed. Usually, the problem is solved by installing a software package called “PHP-MySQL” or something similar.

There are currently two interfaces PHP provides as MySQL extensions – mysql and mysqli. The mysqli is tried first, because it’s the best one.

う~ん、MySQL接続用のモジュールがロードされてないか。定義ファイル自体はあるよな。

$ ls -l /etc/php/7.2/mods-available/mysql*
-rw-r--r-- 1 root root 71 5月 26 22:09 /etc/php/7.2/mods-available/mysqli.ini
-rw-r--r-- 1 root root 72 5月 26 22:09 /etc/php/7.2/mods-available/mysqlnd.ini

ふむ。mysqlndというのはなんだろう。まあいいや。

$ cat mysqli.ini
; configuration for php mysql module
; priority=20
extension=mysqli.so

mysqli.soというのはextensionとしてちゃんとある。これをどこかでロードするように定義してやるはずなんだろうが、どこかと言ってもphp.iniくらいしかないはずだが。php.iniを見ると、

; If you wish to have an extension loaded automatically, use the following
; syntax:
;
; extension=modulename
;
; For example:
;
; extension=mysqli

と書いてあるので、そのとおりにしてみた。注意したのは、これは/etc/php/7.2/cli/php.ini ではなく、/etc/php/7.2/apache2/php.ini の方。

これをやってからApacheを再起動して、リトライ。

phpMyAdmin

ようやくたどり着いたよ。毎回こんなことをしているな。

ログインしてテーブルの中身を表示させようとしたところ、

phpMyAdminエラーSQL

なんか真っ赤になってエラーになった。「サーバー上でいくつかのエラーが検出されました!このウインドウの下を見てください」と書いてあるが、phpMyAdminのコードでWarningが出ているのでこっちの知ったこっちゃない。「無視」というボタンを押したらちゃんと結果が表示されたから、もういいやこれで。

また昨日の夜中に何かやった形跡がある。ブログの常時SSL化は覚えているが(別稿でアップする)、全く覚えてない。自分のブログには記事を書きかけてやっぱりやめたものや、書きかけで保存してそのまま忘れてしまった記事などが下書きとして保存されている。そのうちの1つ、おそらく2年前くらいに書いたと思われる記事が昨日の深夜の日付で保存されていた。以前書いた記憶はある。あ、アップしてなかったかこれ、と思ったが、昨日の夜にこれを見た記憶はない。なんだろうなあ。なんでこれが昨日の夜に編集されてるんだろう。とりあえずアップしておこうか。


これは横浜市から来た「がん検診のご案内」に同封されていた、「よこはまウォーキングポイント」というスマホの歩数計アプリのチラシに書かれていたのだが、

ウォーキングポイント

11%の人が「メタボリックシンドローム」でなくなった!

え?

「亡くなった?」

いやいや違う。

まあそれだけ。

ネットでPythonというプログラミング言語の勉強をしているのだが、書いてあるとおりにやってもうまく動かない。どうやらPythonの3.6からの新機能のようなのだが、私が動かしている環境は手元のLinuxサーバで、そのPythonが2.7と古かった。Ver3台に上げようとしたのだが、どうしても3.5までにしかあげられない。aptのリポジトリに追加をしてapt-getするという方法も書いてあったのだが、apt-get updateで失敗する。

で、どうしたかというと、もうこの際だからOSをアップグレードしてしまった。今までUbuntu 16.04LTSを使っていて、2年も前に18.04LTSが出ていたのでターミナルでログインするたびに「アップグレードしろ」と出てきていたのだが、こういうのをアップグレードしたら何かしら設定方法が変わっていて今までうまく動いていたものが動かなくなる、ということがあったので、外部に公開している本番機として動かしているこのサーバはあまり触りたくなかった。今はサーバはレンタルサーバーに移行したので、いっちょやってみるか、ということで手元のサーバをGnomeのターミナルからアップグレード。

UbuntuのGnomeデスクトップ

UbuntuのGnomeデスクトップの画面。あまり見たことない人が多いと思って載せてみた。UbuntuというのはLinuxというUNIXライクなOSのディストリビューションの1つで、Debian系のわりとポピュラーなやつである。Gnomeというのはウィンドウマネージャーである。学生時代はtwmとか使ってた。この説明でわかるかな。わからんか。

アップデート画面

アップデート画面が流れていく。ぶれてしまった。2時間くらいかかってアップグレードが終わって再起動。ロゴがしばらく出る。

ubuntuロゴ

いろいろ変わったようだ。まあ私はUbuntuのデスクトップは使わんけどね。

ubuntu18.04新機能

ちゃんと18.04になってました。いろいろちゃんと動いてるのかな。

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.4 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

Pythonはちゃんと3.6にできました。

$ python
Python 3.6.9 (default, Apr 18 2020, 01:56:04)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

昨日は22時半に寝た。よく眠れた。朝は6時50分に目が覚めて、トイレに行きたくなったのでいったん起きた。7時前なのでもうそのまま起きようとも思ったのだが、眠いし土曜日なのでまた寝るべ、と思ってまた寝たら9時前まで寝てしまった。まあいいや。

妻が朝の情報番組で「イオンのピタマスク」というのが紹介されてたと言う。冷感マスクで、実際にサーモグラフィーで実験したら他のマスクより体温が低かったというのをやってた、ほしいほしいとのことなので調べたら、イオン系列のコックスというオンラインストアのみで販売。3枚で1,200円+税で1,320円。そして送料330円。洗って繰り返し使える。私も今の段階でマスクをして歩いていると既に暑くて苦しい。人通りが少ないところでは、いわゆる「あごマスク」にしたりしている。私もほしいぞ。

ということで、じゃあ私の分も買おうかと色違いで2組注文しようとしたら、「お1人様1点限りでお願いします。2点以上ご購入の方は別々にご注文ください」と言われた。別々に買うと送料が別々にかかるではないか。う~ん、まあそうしないと100個とか買い占める人がいるからしかたがないのか。しかたがないから別々に注文しようとしたら「現在アクセスが集中しております」との表示が。何回かリトライしてようやく繋がり、注文できた。7月上旬以降お届けとあるから1ヶ月以上あとだが、その頃でもまだマスクはしているだろう。私が5月7日に注文したパルスオキシメーターはまだ来ない。もう必要ないのかもしれないが、まあ第2波に備えることにしよう。

しかしこの「サーモグラフィーで実験したら」というのをテレビでやってたというのは、あまり真に受けてはだめだとも思っている。私は実際にはその番組は見てないが、テレビでは視聴率のためにテレビ的にインパクトのある結果に見せかけたり、インチキをしたり、あるいは偏向報道をしたりする。そのため意図的に前提やら他の条件が違うものを無理やり比較して「ほらこんなに違うでしょ」みたいなことをやったり、特定の印象に誘導するために都合のいいようにグラフを変な風に加工したりする。有名なのはこれ。これはひどいのでネットでさんざん晒された。

ひどいグラフ

それは置いておいて、まあエアリズムとかいろいろとか出てるから、ひんやり感てのはあるんだろうな。ただし、つけることによって体温がそれより下がるのかはモノ次第だろう。私が夏場になったら首に巻いている冷感スカーフや、おでこに貼る冷えピタなんかは、高分子ポリマーに含まれた水分やらゲルやらが蒸発する時に皮膚から気化熱を奪うことによって体温を下げる。普通の生地だとそこまでの機能はないが、吸湿速乾性の生地だと、汗を吸収して速やかに蒸発させることによって、他のマスクをするより、あるいはマスクをしないよりも体温を下げる効果があるかもしれない。汗は体温を下げるために体から出るが、それが蒸発して初めて体温は下がる。問題は、その生地がどれほどの効果よ、てなところだ。あんまり生地としてすかすかだとマスクの意味がない。マスクが来るのは7月なので、来たらお手並み拝見と言ったところか。マスクなんていらない状態になっていたらいいのだが、さすがにあと1ヶ月でそれはないだろう。

今日のお昼ごはんは「もっと赤いたぬき」。

もっと赤いたぬき

去年に引き続き赤いきつねと緑のたぬきの熾烈な戦いがあったらしく、そして去年に引き続き赤いきつねが勝って、その記念で期間限定販売。去年はただの「赤いたぬき」だったが、今年はパワーアップして「もっと赤いたぬき」らしい。さっそく作ってみたら、

もっと赤いたぬき

赤い、赤いぞお前。天ぷらが赤すぎる。さてはシャア専用だな(古すぎ)。紅生姜で赤いのだが、正直味はいまいちだった。普通の天ぷらの方がよかった。ところで関西では天ぷらのことを「てんぷら」というが、さつま揚げのことも「てんぷら」という。ということも上京してしばらく知らず、全国的な言葉だと思っていた。妻に言っても通じなかったので「ごぼ天の天だよ」と言っても「ふーん?」てな感じ。まだまだカルチャーショックがある。

お昼過ぎに妻がお買い物に行くというのでついて行った。激安衣料品店に行ったら今日も店頭でいっぱいマスクを売っていた。

マスク980円

おお、ついに50枚980円にまで下がった。ものの良し悪しはわからないが、うちのマスクもそろそろ在庫が気になってきたので1箱買っておいた。やっとここまで下がったか。マスクと一緒にこの前ここで買った400円ちょいのTシャツを2枚買い足しておいた。薄くて肌触りがよくてめっちゃ着心地がいい。これは家用として着倒すのにちょうどいいや、というので買っておいた。この激安衣料品店があるからいろいろ(特に妻は)助かっている。

それにしても今月は本当に外に出てないな。私のスマホは新auピタットプランNというプランで、月1GBまでなら1,980円、それを超えると2,980円で4GBに、その次は4,480円で7GBに自動的になるというプランなのだが、月に1GBを超えるということはまずない。その残りギガ数はデジラアプリというので見れるのだが、5月末の今日時点で、この状態。使った量ではない。残量である。

デジラアプリ

え?1GBのプランで残り1.39GBってどういうことよ。いや1GBと言っても厳密に1GBでなくてもうちょとあって、キャンペーンで100MBプレゼントとかあったけど、それでも全く使ってないに等しい。繰り越せたらいいんだけどな。まあどっちにしろ1GBも使わないか。

今日はその後は、今更だがPythonのお勉強をちょこっとWebでやっていた。ほんと今更・・・。今後使うことあるだろうか。でもPythonとかRubyとか、少しでもやっておかないと「元」とはいえITエンジニアとしてどうよ、という気がする。