PHP の恥ずかしい話と TV で見た分福

ついに WordPress から PHP のバージョンが古いと警告されるようになった。amatsukami.jp サーバは PHP 5.3 で動いている。こいつはセキュリティ ホールとかもあって本当は使っちゃいけないバージョンだ。
しかも 2 年前に PHP5 系でしか動かないものは、別のサーバに追い出している。
なのでさっさと PHP のバージョンをアップしないといけないのだ。また、上の別サーバに追い出したときにも書いているが、アップデートしないと WordPress そのものが動かなくなるというのも予想していた(そして今年の 4 月に動かなくなるらしい)。

じゃぁアップデートすりゃいいじゃん。

いや、まったくその通りなんだけど、実は過去に何度か PHP のアップデートを試みて失敗しているのだ。入れるのは 7 系と言われているバージョン。ところが amatsukami.jp サーバに 7 系を入れてもなぜか従来ある 5 系が呼び出されてしまうという現象がおきるのだ。
7 が入っているディレクトリ(フォルダ)から直接 php.exe を叩いても、5 系が呼び出される。しかもその場合、exe は 7 なんだけどその他の全てが 5 なため、PHP が起動すらしないという状況になるのだ。
これがもーわからなくてわからなくて、何度やってもこうなる……orz

という経緯があった。しかしさすがに WordPress から「もう動かなくなるよ」って言われてしまったらなんとかしてアップデートするしかない。そこで今日も設定してみたんだけどやっぱり動かない。まぁそうだよなー、もう何度も試してるしなぁ……もう Windows Server 自体がおかしくなってるのかなぁ……とか思い始める。

PHP は php.exe というプログラム本体以外に、さまざまな機能を実現するためのプログラム群(Extension)がある。そいつらを読み込むためには MS-DOS 時代からある PATH という環境変数にそのプログラム群が入っているディレクトリを定義したりするのだが、それは php.ini という定義ファイルに書いておくことも出来るので amatsukami.jp サーバの PATH にはその設定はない。
なければ定義ファイルを見に行くはずだよなーなんて思いながら、環境変数をぼけーっと眺めていたら、「PHPRC」っていう環境変数を見つける。そしてそこには PHP5 系のディレクトリが設定されている。

これかぁぁぁぁぁぁぁぁぁぁ!!!

この環境変数はまさにその php.ini がある場所を設定する環境変数なのだが、これがあるために PHP7 系を起動しても 5 系のプログラム群を読みに行っていたのであるorz
すっかり見落としていたというか、忘れてた!!!
あほやなぁ……。

というわけでこの環境変数を消し、PHP のバージョンごとに PHPRC を設定して無事 PHP7 系が動くようになった。この数年の失敗はなんだったんだ……。

ところが問題はそれだけでは終わらなかった。WordPress が動かないのだ。
もちろん動くサイトもある。ということは PHP 自体のアップデートには成功しているのだろうととりあえず判断し、WordPress 本体をあれやこれやといじる。WordPress そのものはけっこう規模の大きなソフトウェアな上に、ボクがかってにいじくってる部分もあるので何かが引っかかってるんだろうと調べるも、そもそも自分が WordPress のどこをいじったのかも憶えてないwww

とりあえず一つの WordPress でいくつものサイトを運営できる「マルチサイト機能」が問題なのかなと思ったのだが、マルチサイトが ON になっているサイトも動くことが判明

結果的に古いプラグインが原因だと解った。そのプラグインを外すことによって、ほぼ全ての WordPress が動くようになった。ところが GLacé というエロゲ ブランドのサイトがあるのだが、ここだけは動かなかった(汗)。なんだろうなー。
でも、このサイトを管理する義務もないし、しらなーいってなった(ぁ
でもなー、古い PHP で動かし続けるのは問題があるわけで、さてどうしたもんか……。

さて、今日行ったランチはね、楽しかったというか何というか。
お店の名前は『分福』。なんか入り口がけっこう凝ってる(7 番目の写真)のでちょっと入るのに躊躇してたんだけど、入ってビックリ。あ!って思った。中はお風呂屋さんなのだ! そしてテレビで見たことある!! ワールドビジネスサテライトだったかガイアの夜明けだったかまぁなんかその手の番組で居抜き物件とかリノベーション物件でがんばってるお店を特集してたときに出てきたあの店だ!
そうかー、まさか田町にあったとは。

写真は鳥煮定食と、ミルフィーユ豚カツ定食とハムカツ定食。
お値段は 800 円 ~ 1000 円。ご飯お代わり自由だったかな?
鳥はかなりゴロゴロ入ってるし、ミルフィーユ カツはやわらかくて衣サクサクだし、ハムカツは分厚くて中にチーズが挟んであって食べ応え充分。いやー、イイ店でした。ここは常連になりたいと思った店でした。

まぁでもハムカツとかミルフィーユカツとか鳥肉とか、なんていうんだろうね安いもので美味しくしようっていう感じなのかな……と<失礼

切り替えボタンと平吉

同人サイトのプロダクト(作ったもの紹介)ページに切り替えボタンをつけた。小説か、絵関係か、デジタル コンテンツかをカテゴライズした感じだ。それぞれのページを作るのでもよかったんだけど、パッと切り替わるといいかなと思って Javascript で実装した。
仕組みは非常に簡単で、小説・絵関係・デジタル コンテンツ全てのページを重ねて置いてあって、Javascript で表示・非表示を切り替えているだけである(CSSdisplay 属性)。

こういうことをしたい人ってけっこういるので、簡単に実現できる WordPress のプラグインがあるといいのになぁ……と思った。もしかしたらすでにあるのかもしれない(汗)。

同人サイトの話題が出たついでに、懺悔話(汗
今年送った年賀状には QR コードがついてて、年賀状の絵をダウンロード出来たんだけど、同人サイトを SSL したとき、この年賀状の絵もコピーするのすっかり忘れててダウンロード出来ないようになってたっていうお話。
ただ、このダウンロードってしてる人いるのか謎だったので、たぶんあんまり迷惑かかってない……はず(ぇー

さて、今日行ったのはセレスティン ホテルに入っている葱や平吉という和食屋さんというか定食屋さん。このホテルには一階に飲食店とコンビニが入っているんだけど、どれも際コーポレーションのお店なのでこの平吉もそうなのだと思う(そして芝公園に来てから、際コーポレーション経営だと思われる店には、すでに二つ入っている→タイガー餃子PAGLIACCIO)。
そしてすごく繁盛していて、中はほぼ満席。並び客もいたが、すぐに案内されていたのでボクらも入ることにした。

ボクらが入ったのは 13 時ちょっと過ぎなんだけど、その段階でいくつかのメニューが売り切れてた。ボクが頼んだのはチキン南蛮。他の写真は焼き魚定食と鍋焼きうどん。チキン南蛮はタルタルソースがすごく卵! マヨネーズ感よりも圧倒的な卵感、そしてフワフワ。お肉も柔らかくて、チェーン店なのにすごいなぁと思った。際が作るものはボクの舌と相性がいいらしい(ぁ

ai ドメインが高くて iPhone XS は SS 撮りにくい!

ふと新しいビジネスを思いついてドメインとろーって思ったら、ai ドメインが凄く高かったので諦めた<ヲイ
そんなことぐらいで諦めるようなビジネスなのでどうでもいいんだけどね。
もうちょっと経済的に余裕が出て、なおかつそのドメインが取られてなかったら取ろう……<それでいいのか?

iPhone XS のスクリーンショットが凄く撮りにくい。やっぱ音量±ボタンの反対側にボタンあるのダメだよ。まぁそれは iPhone 6 からそうだけどさ。ボクの DEX(器用さ)が低いだけなのかもしれないが、スクリーンショットを撮るとき同時に押すわけではないみたいなんだよね。
SHIFT キーみたいな感じでロック ボタンを押しながら音量+ボタンを押す、みたいな感じ。
ボタンがそもそも堅めだからロック ボタンを押すときに音量下げるボタンも一緒に押しちゃったり、±両方押しちゃったり、もー! ってなる。
こればっかりはホームボタンのほうが押しやすかったかも知れない……。

ゲーム開発とかでスクリーンショットはよく撮るんだけど、未だに慣れないわー。

今日は昼間はずーっと仕事が詰まってて、夜にようやくご飯に出られた。まだ仕事も片付いてないので近場のカレー屋で済ませた(^^; こういうときは一度行ったお店に入ってもよいとした(ぉ
日乃屋カレーは安定のおいしさである。

で、その帰りに 12 時間以上の上限最安値の駐車場を見つけた。今まで 12 時間以上の上限は 2600 円が最安値だったが、2400 円という所があった。しかし昼間はここが満車になるかどうかは夜だったので解らなかった。

今度、明るいときに通ってみる必要がありそうだ。それでも 2400 円かぁ……電車だと往復が 1050 円と考えると……やっぱ高いな~~~。

南国亭の固焼きそば

今日は大門の方に飯屋を探しに出た。
気になる店はいくつか見つけたのだけど、なんとどこも満席!
やっぱり美味しそうな店は繁盛してるのね。

まぁでも店の位置は憶えたから、次回来るのだ。

今日入ったのは南国亭という中華料理屋。ここもけっこう人が入っていた。
そして中が広い。
ランチの種類もいろいろあるが、その中でも固焼きそばが目に入ったのでそれにした。

ランチで固焼きそば食べられるのって珍しくない? そうでもない??
出てきたのは具盛りだくさん!
すごいなぁ。

でも味は普通だった(ぁ

昨日、天津神本舗を SSL 化した。でね、ふと見てたら、萌え時計でキャラが表示されないことがあることに気付いた。ありゃー、なんか失敗してるのか。
すぐに思いついたのが、日本語のファイル名だ。1/2 summer のキャラだけ、ファイル名が日本語なのだ。サーバにアップするとき、文字コードを間違えてアップしてしまったのかも……。キャラが消えるのは深夜と夕方の外。
それに該当するデータを見に行ったら……そもそもそのパターンのファイルがアップされてないだけだった。ディレクトリが一つ足りないでやんの。

というわけで、アップロードしたら表示されるようになった。
もー……。

天津神本舗を SSL 化する話

今日はわりと遅めに食事に出たため、お店はだいたいどこも昼休み(?)に入ってしまっていた。個人経営の飲食店は、14 時頃から 17 時頃まで閉まってしまうことが多いのだ。その時間帯にやっているのはチェーン店かラーメン屋くらいなものである。

というわけでとんこつラーメン屋さんに入ってみた。
一瑞亭
食べログの店数が妙に高いが、とりたててこれはという感じではない。普通(ぁ
スープは真っ白ではなく、濁り系。博多ラーメンらしいあっさりした感じはでてて食べやすいと思った。
炒飯がしょっぱかったー。

ちなみにこの一瑞亭、前に食べた由丸と同じ並びにある。由丸は白くてミルキー系(北九州系なんだろうか?)で特色は全然違うので、その二つが味わえるのはいいなと思った。

ところで同人の方で使っている amatsukami.infoSSLHTTPS)化をしてみた。
世間はなんでもかんでも SSL 化である。Google Chrome に至っては SSL 化していないサイトにアクセスすると警告を出す始末。えー、たかが個人サイトに SSL 化って必要なの?? っていう思いは未だに変わらないものの、世の中がそういう流れになっていくので仕方なく(ぉ

といっても自分のサーバでやったのではない。
実は自分の所でやらない大きな理由がある。それはウチのウェブサーバである IIS7.5 が SNI にちゃんと対応してないのだ。暗号化されたウェブページを取り扱う HTTPS は、何もかも暗号化するため、amatsukami.info と言うようなドメイン名まで隠蔽してしまう。となると一つのサーバでいくつものドメインを運営しているサイトにはアクセスできなくなってしまうのだ(なんのドメインでアクセスしに来たのか解らなくなるため)。
そこで HTTPS で通信を確立する前に平文でドメイン名だけをやりとりする規格が SNI なのだが、ウチのサーバにはその機能が無い(正確にはないわけではないが、対応が中途半端)。
そのため、amatsukami.jp や amatsukami.info、他にも様々なサイトを動かしているウチのサーバは SSL 化ができないでいた。

まぁそもそもサーバ自体を更新しなくちゃいけないんだけどね。こっちは裏で少しずつ進行中。

とりあえず練習も兼ねてテキトーなホスティング サービスを契約した。月 300 円(ぁ
ファイル容量は 100GB、DB は三つまで。DB の容量は 100 MB まで。
DB の制限がきつすぎるなぁ、と思いつつ……。

まず一回目は失敗。どうしても WordPress が動かなかった。
DB の問題か? それとも WordPress のスクリプトの問題か??

それから一日おいて、もう一度試してみた
すると ASCII モードで転送していたのが問題だったようだ。とりあえず動いてエラーを吐くところまではきた(前回はウンともスンとも言わなかった)。そのエラーを見ると、今度は memcached 関連のところで動かなくなっていたことが解った。それらを取り外すと動き始めた。

次に萌え時計だ。これが動かないんだwww
原因はファイル名に日本語を使っているからというのは何となく推測できたのだが、それの何がいけないのかさっぱりわからない。ファイル名の文字コードソースファイル側の文字コードを合わせたりしたのだが、まったくダメ。

結局これはソースコードの UTF8 から EUC にコンバートすることによって動いた。

もっとも時間がかかったのがファイルのアップロードだ。FTPS でアップロードしたのだが、とにかく途中で止まるのだ。天津神本舗は 1.16GiB ほどのデータが有り、ファイル数は 6174 個。とまりまくってそのたびに再接続してまたアップするファイルを指定して……とかやってたんだけど、6 時間ぐらいかかった。
あほらしい……orz

これ、どうも NextFTP というソフトだとなるらしい。確かに一回目の時は CyberDuck というソフトを使ったのだけど、そちらだと三回ぐらいしか止まらなかった。もー、なんなの?? じゃぁなんで二回目も CyberDuck を使わなかったのかというと、同じファイルがあった場合にちゃんとした比較がなかったのと、バイナリ モードだけでアップする方法がよく解らなかったため。たぶんどっちもないわけじゃないとは思うんだけどね……設定を見つけられなかった。

ちなみに萌え時計はもっとデータがデカくて、7GiB オーバー。こっちもアップするのが大変だった~。

なんだかんだで Windows Server と Linux はけっこう違うなぁと実感した作業であった。

めげずに Gutenberg を使ってみる

WordPress の記事を編集するためのエディタ Gutenberg がクソだという話は過去にも書いた。
ただ問題点はわかっている。大きく二つ。何度も書いたが、一つのブロックに複数の画像を貼る方法と、リスト内での改行だ。
このうち、一つのブロックに複数の画像を貼る方法がわかった。

それはクラシック スタイルだ。

古い編集機能のブロックというのを作れるのだ。古い編集機能では複数の画像が貼れるので、これで Gutenberg でも複数の画像が貼れるようになった。

けど、やはり Guteberg そのものが使いづらいと言うことが解った。
なぜか?

それは、Gutenberg がマルチメディアな記事を書くことを目指して設計されたからだ。つまり画像あり、動画あり、文章あり、一つの記事に様々な形態のデータがあってそれらを包括的に一つの記事にまとめるためのエディタなのだ。
ところがボクの記事はそうではない。そもそも物書きだから文章がメインとなる。
基本的に文章をつらつらと書ければそれでよいのである。だから Gutenberg のように画像を貼るのは楽になったけど、文章を貼るのも画像を貼るのも同じコストがかかるようになってしまいました、ではダメなのだ。

なので WordPress が古い編集機能を使えなくするようになるまではこのままで行こうと思う。

屋台の味、麻布ラーメンと Google Cloud

今日は麻布ラーメンというところに行った。屋台の味と書いてある。
屋台、そして麻布という単語から想像したのは、鶏ガラの東京醤油ラーメンだった。

店に入ると中はほぼ満席。おぉ、人気ではないか。
そして中国人らしいおばさんがお出迎え。
そこでちょっとボクの頭の中に?がいくつか並ぶ。
店内の装飾というか、様子というか、それがどうも中華料理屋チック。
ますます頭の中に??が増える。

まぁ普通に醤油ラーメンを頼んだのだが……出てきたのが和歌山ラーメンだった。東京で横浜家系が流行る前、大流行した背脂がたくさん入った豚骨醤油ラーメンである。ボクが嫌いな奴<ヲイ
池袋なんてひどかったんだから。一時期、全部のラーメン屋がこの豚骨醤油だったんだから!
いや、正確に言うと嫌いではないんだけど、池袋に勤務していた頃、ラーメンというとこれしかなくて困ったことから嫌いになったという感じだ。無敵屋なんか夜中の 3 時に行っても並んでるんだから辟易したものである(ぉ

この豚骨醤油の店では、屯ちんばんからが好きだった。

で、麻布ラーメンはというと、まぁ普通の東京豚骨醤油。ただわりとストイックというか、豚骨と背脂推し。屯ちんのように脂の甘みやチャーシューの甘みで食べやすくしているわけではなかった。あと豚の角煮丼を一緒に頼んだんだけど、これがもろに中華料理の角煮だった……orz ボクは八角が苦手なのだ。あのなんとも言えないよく解らないあとを引く薬っぽい甘い味と匂いがどうにも好きになれないのだ。そしてやっぱり元は中華料理屋だったのだなと確信した。
店の雰囲気も屋台をまったく彷彿とさせないし、接客は中華料理屋だし、中華料理屋が日本のラーメン屋さんに鞍替えしましたみたいな、そんな感じ。
変なお店であった。

さて、仕事で Google Cloud を使うことになった。
まぁどうせやることは変わらない。仮想サーバを立ててそこに Web サーバPHPDB 入れて動かすだけである。
なんて軽い気持ちで始めたんだけど、これが大苦戦。とはいえそれはボクが Linux にまったく明るくないからだが……何が詰まったかというと、まずログオンするための設定が解らない。AWS だと仮想マシン用の管理者権限のユーザを作ってくれてまずはそれでログインせぇやってなるんだけど、Google Cloud はその作ってくれたユーザのユーザ名とパスワードがわからないwww
でもとりあえずウェブ ブラウザ上のコンソールからはログオン出来る。
しかしファイルとかの転送をしたいのであって、SSHSFTP でログオンしたいのだが……いったいどうすれば……。

そしてようやく、ユーザの公開鍵を登録する場所を見つける。さらに Google Cloud ではユーザ名とパスワードのみでのログオンは出来ないらしい。

これでなんとか SSH でログオンして仮想マシンを操作できるようになったが、今度は Apache やら MySQL やら PHP やらの設定が解らない。Google などで検索して出てくるコマンドを入力してもそんなコマンドはないと言われてしまうwwww
これはたぶん Debian という Linux を選択してしまったからだとはおもうのだが……インストールするコマンドが違ったり、httpd というコマンドが apache2 だったり、定義ファイルのファイル名も定義ファイルがある場所も全然違う。さらに貼り付けが出来なかったり、パスが通ってなくていちいちフルパスでコマンドを指定しなければいけなかったり……。

しかもそもそもそんなことも解らないから、まず何がいけないのかをあーだこーだ推測しながら検索しなくちゃいけなくて、Windows Server ならそれこそ 1 ~ 2 時間で終わるようなことが今日中には終わらなかった(結局、5 日間もかかった)。

AWS の時はこんなに手間取らなかったのだけど、その原因は一つはデフォルトのユーザ情報が解りやすく、ユーザ名&パスワード形式でログオン出来たこと、Amazon LinuxCentOS だったためにググった結果をそのまま入れればすぐに動いたことだと推測される。
いやー、Windows Server の仕事ってほんとないね……orz