以前からやっている、PHPを最新版に更新する件。デスクトップPCは問題なくできたのだが、サーバが結構面倒なことになった。

PHP自体は、PPAを使えば比較的容易に更新できるのだが、PHPを使っているソフトの互換性も確認する必要がある。それで、仕様などを調べて、大体は問題なさそうだったのだが、一つ、カレンダーや住所録の共有・同期に使っているサーバソフトBが怪しいことが分かった。検索すると、少し前のPHPのバージョンからいろいろな問題が出ていたようだし、そもそも開発が終わってしまっていて、ずっと更新されていなかった。それでも使い続けたい人がパッチを出しては居るのだが、さすがにもう「騙し騙し」でも使えない、誤魔化しが効かない状態になった。

仕方ないので、別のサーバソフトを調べていくつか試したのだが、なかなかいいものがなかった。以前使っていたOなら実績があるのだが、どうも下火なようだし、その分家(クーデター版?)Nはあるが、O同様にインストールや保守がちょっと面倒そうなので、もうちょっと楽なのを探したのだが、やっぱりない感じだ。インストールがやけに面倒だったり、インストールしてもうまく動かなかったりするものばかりだった。

仕方ないのでNを使うことにした。やっぱりいろいろ面倒だったが(この中で、前に書いたSnapの問題が発覚した)、デスクトップPCでうまく動くようになったので、今朝からサーバに入れて実際に使って試している。ところが、スマフォ(Android)側同期アプリCとの相性が今ひとつで、スケジュールがうまく同期できないことが多い。確かにそのアプリは、以前から最初はうまく同期できないのだが、時間が経つとなぜかできるようになっていた。これももう駄目と考えて、別のを探すことにした。

同期アプリもなかなかいいものがなく、以前試して止めたソフトの後継のDしかまともに動かなかった。これは同期はちゃんとできるからいいのだが、なぜか、スマフォのアラームを停めても1分後に再度出ることがあるのが嫌だ。どうも、PC側でもアラームを停める場合、停める順序やタイミングが関係しているようだ。気に入らないのだが、ないものは仕方ないので我慢することにした。

影響の連鎖

サーバ [PHP → カレンダー・住所録サーバ*] → スマフォ [カレンダー・住所録同期アプリ*]

※PHPの更新のために、*を取っ替え引っ替えする羽目に。

ただ、どうにも諦められないので、また元のCを試したい気もしている。理由は分からないが、気長に一晩くらい置くといいのかも知れない。

(1/25 6:24) なんとか、アプリCで同期出来るようになった感じだ。どうも、最初は予定(データ)の量が多くて全部同期できていなかったようなので(バッファサイズに制限があるのか、1回の転送量や処理量を制限しているのかと推測した)、1度に同期する期間を短くし(例: 過去は1週間、先は4週間)、短い間隔(10分など)で同期するようにして30分くらい待ったら、遠い過去・将来はいざ知らず、直近の予定は全部同期できた(その後、設定を普通に戻した)。これで様子を見てみたい。

 

最後にちょっと意見を書くと、世の中に良くある、古いソフトが更新・刷新できないというのは、こういう風に、そのソフトが使っているソフト(多くはプログラミング言語、あるいはOS)のバージョン間の互換性のなさが原因になっていることが多い。ソフトを作った人が居なくなり、仕様書・設計書などがなかったりすると、動くかどうかも、どう確認すればいいかも、どうやって直していいかも分からない。もちろん、お金(作業時間)だってない。

だから、「動いているからそのままにしよう」という気持ちは分かるが、重要な用途で、サポートが終わったものを使い続けるのは無責任だ。例えば、過去のバージョンに不具合があって、それが原因で間違った結果になることがあるからだ(でも、その不具合も含めて仕様として作っている場合もあるので、話は単純ではない)。一方、作る方にも責任はあって、バージョンを上げる時に、従来のプログラムが可能な限りそのまま使える(動く)ようにするべきなのだ。

個人的な印象だが、PHPは随分いい方だが、Pythonのように、2つのバージョン(2.*と3.*)がずっと混在して使われている(Ubuntuですらそうだ)のは、(僕は何が違うかは知らないが)余りにも醜悪だと思う。実際、Pythonのプログラムで、「これは(2と3の)どっちで動かすのか?」と疑問に思うけど分からないので、両方試さざるを得ないことが結構ある(両方とも別の原因で動かないことも多い)。そして、Ubuntuのように重要なところでPythonを使っている場合は、片方を削除するとシステムがまともに動かなくなってしまうことすらある。時間もストレージも無駄だ。まったく、「何考えて作ったの?」と言いたい。まあ、「使う方はちゃんと更新しろよ。こっちはお前らのために良くしてるんだからさあ」って論理だろうが、使う方は作る側と違って、その言語を使うこと自体が仕事ではないので、それは全然通らない。

 

※個人情報を扱うサーバに関することで、興味本意で攻撃される可能性を減らしたいので、具体的なプロトコルやソフトの名前などは記載していません。読んでも余り役に立たないかも知れませんが、僕のメモとか、問題の原因の推測・対処の例としたいと思います。

  •   0
  •   0

コメントを書く

名前    

メール 

URL