蛇口から流れ落ちる水音をトリガーとして瓶から脱走したナメクジの行方

姉が届けてくれたキャベツの外葉を剥いで洗っていたら,内側の白い結球した葉の中に小さなナメクジが縮こまっているのを見つけた.ナメクジに会うのは久しぶりだったので梅酒用の瓶を天袋から下ろし外葉を二枚入れてそこで飼うことにした.ナメクジは葉っぱの折り重なったややこしいところにいたのでつまみ出すのは難しそうに思えたが,指を伸ばすと黙ってその指に乗ってきたので思いの外簡単に移すことができた.とても小さな赤ちゃんナメクジと言ってよいくらいの幼いナメクジだった.ナメクジは結構リラックスしていて指から外すとすぐに体を伸ばして居心地のよさそうな位置に移動した.このナメクジは最初から与えられた環境になじんでいるように見えたのでフタはしなかった.

93058562_1820308731438251_4009976437586001920_o

キャベツの葉は日持ちがいいので2,3日放置しておいたが,ナメクジのいる辺りの葉っぱがしおれてきているのを見て,瓶を流しのところまで持ち出してキャベツの茎に届くまで少し水を張ってみた.翌朝みるとしおれかけていたキャベツはパリパリに戻り,巻き癖が付いていたところまでピンと張り切った状態になっていたが,ナメクジの姿が見当たらない.ナメクジは隠れるのが上手なのでどこかに隠れているのかと葉を捲くってあちこち探してみたがどうも本当にいなくなってしまったようだ.以前にも瓶に水を入れたことがきっかけになって飼っていたナメクジを逃してしまったことがある.ここから出てゆくのはよいがあの小さなナメクジがどうやって戸外の安全な場所まで分速30センチメートルの足でたどり着くことができるのだろう?

外に出るためにはまず.長い机の端まで移動しなくてはならない.そこから垂直に1メートルくらいを下って床に出たとしてもまっすぐ戸口まで向かうことができるのだろうか?確かに潜水艦の潜望鏡のような伸縮自在の便利な目玉を持ってはいるが,あのサイズでは室内の複雑な「地形」を俯瞰するのには大して役立たない.キッチンの壁の換気扇の穴を見つけることができたとしても,そこから地上までは5メートル以上のザラザラな壁面を垂直に下る必要がある.ドアの隙間をかいくぐって外に出たとしても地上に降りるためには長い鉄製の階段をさらに何段も降りなくてはならない…ここに居れば野菜だけは切らさず供給されるであろうこともうすうすは知っていたはずだ.なぜこのナメクジはその安逸な生活を捨てて危険に満ちた外界に向かうという「暴挙」をあえて決断し実行したのだろう?

ここで「決断」と言っているのは明らかにこの行動は計画的なものであったと認められるからだ.つまり,ナメクジはわたしが眠り付くのを待ってこの部屋を出ていったように思われる.「決断」したのはそれより前,おそらく蛇口から瓶に注がれる細い水道水のひそやかな水音を聴いた瞬間だったのではないかとわたしには思われる.ナメクジやカタツムリなど水から陸に上がった軟体動物にあっては雨音は心地よい天上の音楽だ.水音ないしそれに伴う水の匂いは彼らにとっては目眩く祭祀の表象であり生の歓喜そのものと言ってよい.その水音が彼の本能を呼び覚まし,自由への憧れに駆られて決行に至ったのだろう.『自由への脱出』それはこの小さなナメクジにとっても一生に一度の死物狂いの冒険だったに違いない.

出窓のところに今年もまた訪れた鳩のつがい

北側の窓は冬囲いを解いて風が抜けるようにしている.東側の出窓はまだぷちぷちで覆ったままなので外は見えないが数日前から鳩が来て何やら物音がしている.出窓の上に巣を作ろうとしているのだろうか?まだ確認していないが,多分つがいだと思う.この鳩たちは毎年この季節になると戻ってきて巣作りをしようとしている.数年前に隣家の煙突の中に掛けた巣から追い出されたカップルだ.この鳩たちが温めかけていた卵を失った季節にわたしもたった一人の息子を失った.出窓のひさしに飛び移ったりするたびにかなり大きな音がする.東側の冬囲いも外して鳩たちの様子を見てみたい気もするが…⇒鳥が離れている間に開けてみた.今年もつがいで来ているのかどうか?という点が気になるところだ.

XoopsCore25でWordPressの蓄積データを復活させようとしているところだが,なかなかうまくゆかない.WordPressをXOOPSのモジュールとして使うためにはXOOPSとWPをつなぐ仲介となるXpressMeというモジュールが必要になる.XpressMeは内部にWPを抱えたような形態で実装されるが,どうもこの両者がシームレスに接続していないように思われる.XpressMe Integration Kitを開発・配布していたサイト http://ja.xpressme.info/ はすでに更新を停止していて,過去記事もほとんど削除されてしまっている.仮にwordpressモジュールの実装に成功したとしても,もしやるとすれば今後は自力でメンテナンスする以外の手段がない.これもかなりリスキーに思われるので,ひとまず退却することに方針決定した.つまり,WordPressをXOOPSから切り離して独立させるという方向だ.

WordPressで複数ブログを管理する方法は複数ある.WordPressを1個,データベース1個で複数ブログを管理する「マルチサイト機能」とWordPressを複数個インストールする方法があり,後者の場合には単一のドメインで行う方式と複数ドメインを用いる方式が考えられる.もっともシンプルなのは最初の方法だが,実装は結構厄介でセキュリティ上の問題を指摘する向きもあり,ロリポップではサブドメインを使ったWordPressの複数インストール方式を推奨している.どちらにしても,まずローカルで過去記事が読めるようにしなくては始まらないので,まず,それを試してみることにする.既存テント村ブログをローカルに移植できることはずっと前に確認している.基本的にはそのときと同じ手順で復元できなくてはならないのだが…参考のためにそのころのログを読み直しておこう.⇒いや,どうもそんな簡単な話ではなさそうだ.インストール済みのWPにlocalhostでアクセスしてみたが,データベース接続エラーが発生する.これを回避するためにwp-config.phpでデータベースアクセス用パラメータを設定すると,以下のエラーが起きる.

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at postmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.


Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.4.2 Server at localhost Port 80

どうもWPは本来作り込まれたブログと一体化している模様で,localhostでアクセスした場合には最初にlocalhost/wp-admin/install.phpを実行しようとする.ここで矛盾が生じているものと思われるが,DBサーバーにすでに構築済みのブログデータがないと開けないようになっているのではないだろうか?この辺りにマルチサイト機能を実装しようとするときの難しさがあるのかもしれない.以前テント村を完全に再現できたとしているが,そのときのDBデータはバックアップしてあるだろうか?もしかすると,それすらやり直しになるかもしれない…⇒旧サイトデータをDBにロードしておくということも考えられるが,おそらくそれでもうまくゆかない可能性はある.というのは各種の秘密キーがインストール時に決定されてしまうようになっているためだ.XOOPSはXOOPS_SALTという値を持っているが,それとはまったく別のものだ.

ロリポップは最大30個までのデータベースを持つことができる.また,同一サイトに複数のWordPressをインストールすることを認めているのでWordPressを複数導入し,それぞれ個別にデータベースを使うというのが一番無理がない構成であるように思われる.テント村ブログをローカルに移植する作業はそれほど難しくはなかったはずなので,あとからやり直しはできるだろう.いまはとりあえず,新しいWordPressを1個導入してそれに保存してあるDBデータを背負わせて見ることにしよう.テント村のときは最初にMySQLにデータをロードしてからWordPressを導入という手順になっていたと思うのだが,違うだろうか?

テント村ではロリポップ!からサイトイメージをダウンロードし,それにサイトからMySQLでエクスポートしたデータをインポートしているから,基本的に完全に両者が整合していると言える.安全な手順としては,最初にロリポでWordPressとデータベースを追加導入し,それをローカルに持ち出すということも考えられる.この場合は保存データとの不整合はSQLを直接編集することで行うしかないように思われるが,確実に実施可能であるのならそれもやむを得ないのではないか?⇒WordPressのデータをエクスポート/インポートするという手段もあるようなのでそれを使うという方法もない訳ではない.このためにはもう一度古いサイトを復元しなくてはならないが…もしかするとそれが最短である可能性もある.ロリポにWPとDBを追加する際のパラメータを保存データに合わせるということももしかしたらできる可能性はある.それができればかなり実現までのステップを短縮できるのではないか?

Failed opening required ‘../../../ mainfile.php’ (include_path = ‘C:\xampp7\php\PEAR’)

いつどこでそうなったのかわからないが,MySQLを起動できない状態になっている.

18:23:25  [mysql]     Status change detected: stopped
18:23:25  [mysql]     Error: MySQL shutdown unexpectedly.
18:23:25  [mysql]     This may be due to a blocked port, missing dependencies,
18:23:25  [mysql]     improper privileges, a crash, or a shutdown by another method.
18:23:25  [mysql]     Press the Logs button to view error logs and check
18:23:25  [mysql]     the Windows Event Viewer for more clues
18:23:25  [mysql]     If you need more help, copy and post this
18:23:25  [mysql]     entire log window on the forums

ともかくバックアップに戻ってみよう.xampp7のバックアップは2020-03-28が最新だ.念のためOSを再起動してから始めよう.⇒MySQLは起動できるようになったが,あまりよい状態ではない.WordPressのデータベースでprefixの付かないテーブルが残った状態になってしまっている.まず,これを整理してクリーンな状態から始めた方がよさそうだ.12020-03-30まで戻る必要がある.XoopsCore25のバックアップも2020-03-28しかないので,現状を一度バックアップしておこう.

WordPressをアンインストール→WP関係のデータベースが丸残りになっている.⇒手操作で削除したが,picotoとprotectorのアイコンが出ていないという状態になっている.Xoopsも一度バックアップに戻した方がよいのではないだろうか?⇒両側を完全に2020-03-28の状態に戻してみたが同じだ.ということはすでにこの時点でアイコンは出ていなかったということになるのだが…

image

いや,それでも今回はWordPressをアンインストールしてprefix付きのテーブルは全削除されたので多少改善している.2020-03-31 にはWordPressモジュールを作り直して再インストールしているが,最終版Xoops25には入っているはずだから,それを使うことにしよう.

そのあとにもPHPコードの修正を実行しているので,この際modulesとextras, およびxoops_data, xoops_libの内容をすべて差し替えてもよいのではないだろうか?始業時のバックアップはXoopsCore25 2020-04-05 BADの中に入っている.⇒実行した.これでpicoとprotectorのアイコンも表示されるようになった.⇒インストール可能なモジュールが2個になった.WordPressとXpressmeだ.後者の方をインストールすべきだろう.⇒あとで混乱しないようにwordpress モジュールを削除しておこう.⇒Xpressmeをインストールしてエラーが出てしまった.

Fatal error: require_once(): Failed opening required ‘../../../mainfile.php’ (include_path=’C:\xampp7\php\PEAR’) in D:\XoopsCore25\htdocs\modules\xpressme\include\add_xpress_config.php on line 2

この記述はあとから追加したものではなかったろうか?wp-config.phpの中ですでにincludeしているので,add_xpress_config.php では不要であるような気がする…include_path= C:\xampp7\php\PEAR’となっているところが解せない.⇒add_xpress_config.php とwp-config.php の両方で該当箇所からrequired ‘../../../mainfile.php’ の記述を抹消して動作するようになった(インストール時のエラーが解消した).ただし,XPRESSME BLOG の画面からWordPress Adminに遷移しようとしてエラーが発生する.

xpress_eval関数の中でXOOPS_PATHないしXOOPS_TRUST_PATHが未定義の状態になっているものと思われる.3/31のログには「admin.phpでmainfile.phpをインクルードするようにしてこのエラーは解消した」とあるが,解決していない.WordPress Adminを実行する前の段階で何度かxpress_evalが呼び出されているが,その時点では問題なくパスしている.どこかでリセットされているように思われる.admin.phpに入った時点で落ちているようだ.

廃棄を予定していたスチール製書棚を復活させてみた

IMG_20200402_182500

旧サイトをPHP7で動かすためにはPHPのデバッグは避けられない.PHPのデバッグ環境を構築する際の候補は複数ある.①Eclipse,②Visual Studio 2017/2019+PHP Tools for Visual Studio,Visual Studio Code+XDebug,atom+XDebugなど.

Atomのphp-debug使い方備忘録
https://qiita.com/shou-w/items/ebd6da6eecb3db0252ee

これらのすべてを試みたが今のところどの一つも成功していない.これらすべてはサーバー側のデバッガとしてXDebugを使っているものと思われる.EclipseはIBMが提供しているパブリックドメインだ.PHP開発に特化したIDEで以前多少使ったことはあるのだが,使い方を忘れてしまった.完備したIDEシステムだがやや敷居が高い.Eclipseはいまどのくらい使われているのだろうか?Eclipseではまだデバッガを導入するところまで進んでいない.

Visual Studio+PHP tools for Visual Studioはおそらくこれらの中では一番ゴールに近いような気がする.VSのIDE環境は使い慣れているので一番こなし易いが,現在の設定ではまだ動いていない.一度だけ「一瞬」動作したことがあったが,何も設定変更していないのに動作しなくなってしまった.リダイレクトでループが発生するなど動作にもかなり疑問がある.おそらくこれはこのツールの「言いなり」にプロジェクトを構成するようにすれば動かせるのではないかと思われるので,一応出口はある.PHP tools for Visual StudioはVS Codefdeでも使える.

VS CodeもVSと同等の羽の生え揃ったIDE環境で,atomは汎用のエディタだが設定によりIDEとして使えるようになる.VS CodeとatomはともにPHP Debugという拡張機能を使っているので,どちらかで動作すれば他方でも動かせるようになるのではないかと思われる.atomはxamppと相性がいいようだが,立ち上げには皆さんかなり苦労している模様だ.

どうもいまいち乗りが悪い.思い立って廃棄を予定していたスチール製書棚を復活させてみた.