実行速度が2倍以上高速になるというので、PHP(このブログを動かしているスクリプト言語)のバージョンを5から7に(なぜか6はない)上げてみた。

以前から興味はあったのだが、同じくPHPを使うカレンダーやアドレス帳のサーバソフトが対応していないという情報があって二の足を踏んでいた。が、近頃は検索しても余り出て来ないので、きっと対応できたのだろうと思って、試してみた。あと、PHP 7.1がベータになっているので、7.0系は安定したと思われたのも、きっかけけだった。更に、今日は元々PHP(元のバージョン)の更新をしようと思っていたのと、暇だったというのもある。

結果としては、残念ながら、体感速度は変わらなかった。そうであれば、それ以上調べても意味がないので、(面倒だし)正確な数値は測定していない。

移行作業ではいろいろな問題が起こった。

まず、PHP自体が起動しなかった。APCuというモジュール(apcu.so)がロードできなかった。PHP 7になって今までのものが使えなくなったようなので、ダウンロードして更新した。それから、設定ファイル(php.ini)中のコメントの仕様が変わったせいか、"#"(自分でも意識せずに使っていた)がエラー(もしかして単なる警告だったかも)になっていたので、";"に直したら、動いた。

それで、カレンダーやアドレス帳については全く問題なく動いたのだが、ブログがうまく動かずに焦った。

ブログにアクセスすると、「DBに接続できない」というエラーになった。検索したら、PHPにDB関連の設定(mysqli.default_socket)が要るようになったらしく、その設定を追加したらそのエラーは消えた。これは、PHP 7でmysqlモジュールが削除されたせいかも知れない。

ブログには繋がったのだが、今度は、僕の作った追加モジュールがエラーを出した。その中で、APCというキャッシュのモジュールを使っていたのだが、それが数年前にAPCuに変わり、それでも同じ関数名で使えていたのだが、PHP 7では駄目になったようだ。検索するとそんなことはないのだが、僕の環境では駄目だった。互換モジュール(apcu_bc)を入れようとしたのだが、ビルドでエラーになってしまった。

それ以上調べるのも面倒なので、僕のモジュールをAPCuに対応させることにした。それはとても簡単で、関数名の先頭をapc_からapcu_に変えるだけで良かった。ただ、コマンドラインのプログラムでテストすると、なぜか動かず、手こずった。調べたら、PHPの設定で、デフォルトではコマンドラインではAPCuが動かないせいだった。どうしてそうなっているのかは分からないが、そこを変更して試したら、テストプログラムが動き、めでたくブログも動くようになった。

本来は、まずは移行に関する資料などを熟読して検討すべきだったのだろうが、趣味のサイトなので、まあ動けばいいってことにした。それに、これから読むしw

という訳で、何か変な挙動を見掛けられましたら、お知らせ下さい。

その後、Wordpressのウィジェット管理ページがうまく動かないことが分かったので、5に戻した。いろいろあるものだな。。。(9/4 20:20)

 

PS. PHP 7にはいろいろ新機能があるようだが、僕は余り積極的ではない。まず、使っているいろいろな環境の処理系は全然7ではないから、覚えても使えないし、そもそもPHPの機能をフルに使っている訳ではないし、ちょっとコードが短くなる程度のことは別にどうだっていいからだ。

  •   0
  •   0

コメントを書く

名前    

メール 

URL