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 円。ご飯お代わり自由だったかな?
鳥はかなりゴロゴロ入ってるし、ミルフィーユ カツはやわらかくて衣サクサクだし、ハムカツは分厚くて中にチーズが挟んであって食べ応え充分。いやー、イイ店でした。ここは常連になりたいと思った店でした。

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

ふくの鳥と AI と WordPress

今日は同僚が鶏の唐揚げが食べたいというので、いろいろと彷徨った結果、『ふくの鳥』というお店に入った。ランチメニューがどれも鶏の唐揚げだったからだ。鶏の唐揚げって言うと、あの丸っこいのを思い浮かべるのだけど、ここのは全て一枚肉だった。
同僚は油淋鶏、ボクはカレーを選んだ。

カレー屋さんじゃないカレーはあれね、業務用ね。
当たり前か(^^;

鶏の唐揚げは美味しかったと思うんだけど、カレーがぬめぬめっとしてた。
イマイチ!

ポイント カードについて、このあいだひどい目に遭ったわけだけど(そこまで言う?w)、ふとこの間 THANK で見たロビを思い出して、そもそも AI が普及したらポイント カードいらないじゃん! ってことに気付いた。
いや、AI とかそういう単語を使わなくても現状でも可能だ。
要するに顔認識システムを店頭に置いておいて、会計の時にその人が常連さんなのかどうかを判別して貰えばいいのだ。その人の来店回数や今まで使ったお金の積算を表示するなんて簡単だ。そしてポイントの付与も楽々だ。
たくさん貯まってたら「○○ポイントたまってますけど、お使いになりますか?」と、店員が聞けばいいのだ。自動割引でもイイし、レジのタッチパネルに表示して使うかどうかを尋ねるのでもいい。

いやー、明るい未来が見えてきそうだ。これで財布が金も持ってないのにパンパンなんてことはなくなりそうだ。頼みますよ!

今、仕事をいくつも抱えているんだけど、どれもが PHP + HTML + Javascript な案件なのね。で管理画面があったりとかいろいろするんだけど、クライアントさんには WordPress でやれるようにすることが多い。要するにデザインとかウェブサイトそのものはクライアントさんが作って、システムというか仕組みの部分はボクが組んで、クライアントが作った WordPress 内に組み込むといった感じだ。

ただ 100% WordPress で済むようにはしていなかった。
ボクが作ったシステムの UI は、ボクが自分で HTML を組み、CSS を組んで提供していた。
でもこれだと見た目が良くない。ボクはデザイナーではないからね。それにシステムごとに CSS を組むのがめんどうくさかった。

そこでボクが作ったシステムを全部 WordPress 側で呼ぶ仕組みを作った。
これでボクが作ったシステムも全部 WordPress を通して表示されるようになった。UI も統一されるし、デザインも統一されるうえにクライアントも操作に戸惑うことも減る(まったくなくなるわけではない)。
今までは WordPress とボクのシステムとで管理画面をアクセスする場所が違っていたりしたので、その辺も統一された。

本当は SS とか貼りたいんだけど、開発中なので貼れない……

cURL と file_get_contents と Photoshop と

奈川に旅行している間、プログラミングをしていたと書いた。そしてその日記の中でどうしても動かないので組み直すことになったとも。その組み直す件が上のツイートだ。WebAPI といってネットワーク上で利用できるようにした機能群というものがある。これは様々なサービスを提供している会社が用意してくれている。
たとえば Twitter なんかはこの WebAPI があるおかげで、サードパーティのソフトやサーバなんかがツイートをしたり、色んなツイートに関する統計をとったりすることができるのだ。Facebook しかり Google なんかの様々な機能を利用するにはこの WebAPI というのが公開されていて、それを叩くことによってその会社がもつ機能を第三者であるボクらが利用することが出来るのだ。

でね、PHP で WebAPI を叩く(呼び出す)方法ってのはいくつかあって、ボクは手抜きが大好きなので、その中でも file_get_contents という命令を使ってやっている。これで今まで失敗したことはないし、それこそ大手ゲーム会社が提供する WebAPI も叩いてきたし、そのためのライブラリもすでに作ってあった。
ところが今回の仕事では、これがサッパリうまく動かない。
何度見直しても、悪いところが見つけられなかったのだ。

そこでもう一つのアクセス方法、cURL という命令に置き換えてみたら、渡すパラメータは一緒なのに動きましたよっていう話。えー……。そもそもボクの作ったプログラムからデータを受け取る相手サーバにとって、file_get_contents も cURL も大差ないはず。規格に定められてデータを渡しているだけなんだから。
でも、file_get_contents だとうまくいかなくて、cURL だとうまくいく。
何かが違うんだろう。

そしてその違いがわからないまま、WEB のプログラムを続けていいのか、ヲレ?<ヲイ
ちゃんと調べる必要があるよなぁと思いつつ……とりあえずクライアントの要望通りのプログラムは書けた。

ところで Adobe Creative Cloud の 2018 年版がリリースされた。いや 2019 年版か?w
よくわからんが、とにかく全てのアプリが一新された。
ここでボクが求めるのはただ一つ、Windows 版 Photoshop  で HEIF 形式のファイルが読めるかどうかだ。そして読めなかった……orz

これはもう Adobe は故意に対応するつもりがないで間違いないだろう。こまったなぁ……なんで対応させないんだろう??

Windows Server の証明書サービスを復旧させる方法

amatsukami.jp サーバの SSL 通信部分はボクしか使わないため、オレオレ証明書を使っている。この証明書はボクが勝手に発行したので、他人がブラウザで開くとエラーが出る。ボクのためだけの物なので今の所は問題が無い。
でね、この勝手に証明書を発行するシステムが Windows Server にはあるわけだけど、ftp の証明書の期限が切れていたので更新しようとしたら更新ページがエラーで表示されない。なんだこれ?? 何かいじったかなと思っていじって見るも特に設定は問題なさそうに見える。

エラーの内容は、web.config ファイルが見つからない的な内容なのだが……う~ん、あるよなぁと思っていろいろ調べて見ると、本来あった場所の web.config を見に行かずになぜか C:\Windows\System32\certsrv\ っていうフォルダを参照しに行ってた。

なんだこりゃー!?

何かのパッチでそういう設定に変わったのかしら? Windows Server 2016 や 2019 がそうなってるとか?

そんなわけで C:\Windows\System32\certsrv\ に関係するファイルをコピーしたら普通に動くようになった。もー!

もう一つトラブル事。今、仕事で組んでいるシステムがだいぶ完成してきて、色んな人がアクセスするようになった。ボクはサーバ上のファイルを直接編集していたんだけど、それだとボクのミスでうまく動かなかったりすることがある。そんなときに他の人がアクセスしに来ると、動かないぞってことになってしまう。

そこでボクの開発機にウェブサーバを立ち上げて、開発はそこでやることにし、今のサーバはちゃんと動くものだけ更新することにした。そこで自分のマシンに IIS を入れて PHP を入れて MySQL を入れたんだけどこの時、MySQL の Version 8 を入れてみたのね? SQL 文なんてのは共通だし、別に何か問題が起きるなんてことはないだろうと思って、この新しい開発環境に今まで開発してきたソースファイルをぶっ込んだから、いきなり動かないwww

おい。

エラー内容は SQL 文の Syntax エラー。構文エラーだ。単純にスペルミスとかそういう系のミス。えー、そんなバカな、ちゃんと動くソースですぜ? 間違ってるわけないじゃん、と該当する SQL 文とにらめっこするもどこがおかしいのか全く解らない。
そりゃそうだ、元の環境では動くんだもの。

これは MySQL5.6 系と 8 系で何か根本的なことが変わったのか?
とはいえ SQL 文は規格化されていて、MySQL のバージョンが上がったからと言って勝手に変えていいものじゃない。まぁでもダメ元で調べて見たら、MySQL 8 から新しい内部関数が増えていることが解った。そしてその増えた関数の名前が今回のシステムで使っているカラム名と同じだったのだ。
つまり MySQL はそれを命令だと解釈していたため、エラーになっていたのである。
もー!

解決策はこのカラム名を別の名前に変えるか、カラムを必ず ` で囲むか。
まぁ開発中のものなんでカラム名を変えたので良かったのだけど、ボクの中で意味が定着してしまっていて他の単語がすぐにおもいうかばなかったので `で囲んだ。すると問題なく動いた。

下の写真は大戸屋のカツ煮定食。大戸屋ってセントラルキッチンじゃないのでカツ煮もホクホクとイイ感じのが出てくるんだろうなと思って頼んだんだけど、脂でベチョベチョのカツだった。残念。

妹にジト目で見つめられたい

 

妹にジト目で見つめられたい。妹なんていないけど。
そうなんだよなぁ、最大の原因は 10 代の妹がいないってことなんだよなぁ(何
妹ジト目全集とか作りたい。色んなシチュエーションでジト目される画集。

でもお兄ちゃんは解ってるんだ、たとえ着替え中に間違って妹の部屋に入ってジト目されても、心の中では「やっとお兄ちゃんが襲いに来てくれた!」って心ではドキドキしてアソコがジュンと来ちゃってるってことを!<病気

もしくは部屋でオナニーしてるところを妹に見つかってジト目とか。でも心の中では、「言ってくれれば、あたしが手伝うのに! 何一人でオナニーしてんの? 信じらんない!」って思ってるから! 間違いないから!<重病

ボクのお気に入りの妹のジト目、置いておきますね。

昨日萌え時計をいじったとき、ついでに画像の品質を上げるために JPEG から PNG にしてみたんだけど、転送量が 3.5 倍くらいに増えた(笑)。一日だいたい 400MiB ~ 500MiB くらいなのが余裕で 1GiB を超えてしまった。
というわけで、また JPEG に戻した。ただ今まで 80 だった圧縮率を 100 にしておいた(数値が高い方がキレイらしい)。でもぱっと見、差はよく解らなかったり……。

知人から教えて貰ったダイナーを巡る TV 番組。アメリカ人ってバカだなーってのがよく解る動画なのだが、やっぱりデブ(ボクの事)はすごいね、どれも美味しそうに見えちゃうwwww ダメすぎるwwwww
シナモンロールに SPAM やらベーコンやら卵やら詰め込んでさらに揚げたりとか、ホットケーキにこれまたベーコンやら卵やらを詰め込んだものとか……スゲー、すごすぎるよ。なんか 2ch のスレでさ、日本に留学に来た体重 200kg のデブが日本でも腹一杯毎日食ってたらどんどん痩せていったっていう話があってさ、アメリカの食い物ってどんだけ高カロリーななのよって思ったんだけど、この番組を見ればなっとくできる。

ドラえもんの道具がエロい件について

今開発中のウェブアプリのダミーデータをご覧ください(ぁ

特に話題がないので、今開発しているウェブアプリについて。PHP + HTML5 + Javascript + MySQL で開発してるんだけど、会社でやってる仕事も、構成は同じでしかもボクが個人的に作っている方のウェブアプリの機能を一部移植するだけで済むので、自分のと会社のと同時開発している。

でね、あらかた組み上がったので、データーベースのとりあえずのデータを登録して動作を確認しようとしたんだけど、ハテ、どんなデータを入れようかと思って思いついたのが、ツイートの通りである(ぁ

ドラえもんの道具ってエロいことにも使えていいよね!
っていうかさ、このままのび太が思春期を迎えた時のドラえもんの対応がすごい気になる。
周囲のみんなが童貞を捨てていく中、のび太もドラえもんの力で何とかしようとすると思うんだけど……やはり初めての相手はしずかなんだろうか? まぁそんなことは考えてもしようがないことではあるが。

そんなどうでもいい話。
さらにどうでもいいが、しずかって確かのび太が情けなくてこのままだと可哀想だからとかいう理由で結婚してくれるんだよね。まぁ別にそれはいいんだけど、そんな女の子で見てくれもそこそこ良かったら、たぶん中高大のどこかでチャラ男に騙されてサセ子になっちゃって、20 代の頃にはかなりスレてそう……とか思ったんだけどどうだろう?<偏見
エロ漫画の見過ぎ??(そこかよ

ウェブアプリ開発、色々

正式にはまだ発表出来ないんだけど、ウェブアプリをまた作り始めている。今度のはかなり規模が大きいので、言うだけ詐欺になりかねないのだが、まぁとりあえず(ぉ

HTML と Javascript で画面を作っていたんだけど、縦で使ったときと横で使った時を%だけで表現出来るかなと思ったら無理だった……orz あと上のツイートの立ち絵あるじゃない? この立ち絵をタップできるようにしたんだけど、抜けはタップしても反応しないようにできるかなーと思って調べたら、それをやるには canvas を使わないといけないらしい……。めんどくさい。最近 canvas 使わなくてもイロイロ出来るようになったので、canvas 使うことを考えてなかった(汗)。

ところで、前回当てた大型アップデートから Egde の挙動が変わった。何度更新押しても、CSS と Javascript が更新されない。くそー。仕方ないので、デバッグ画面から常にサーバを読むようにして使ってるけど、これ、普段使いにもどるときにはいちいち OFF にしないとダメだよね? もー……。

最後に、今日は三軒茶屋にある音楽団の PC を診てきたんだけど、その帰り、浅草橋に戻るのに首都高を使ったんだけど、至る所(ジャンクションとか出入り口とか)で検問やってた。検問と言っても、たぶんだけどカメラで撮ってるだけなのかな? 警官と移動交番らしき車両がところどころに配置されていた。ああいう検問の方法もあるんだなぁ。