まさはる's Weblog

まさはる's Weblog
Macintoshとオーディオの話題

2021年5月 4日

サイトのPHPを5から7に変更しました

Category : Web 2 / Posted at 2021年5月 4日 16:55

 さも自主的に変更したようなタイトルですが、うちのレンタルサーバーが2021年3月31日にPHP5の提供を終了し、PHP7に強制的に変更となったため、PHPのバージョンの設定を変更しました。うちのサイトでは、PHPを使って動的に生成しているページが3つあるのですが、特殊な使い方をしていないので問題ないだろうと思って変更したら落とし穴が...。

 その3つのページは動作しなくなったため、とりあえずリンクを切って、ファイルは実行できないようにパーミッションを変更しておき、GWに修正しようと放置していました。

 原因を調べてみると、PHP5で使っていたデータベースのSQLite2が使えなくなり、PHP7ではSQLite3を使うようになったのですが、SQLite3とSQLite2のデータベースファイルは互換性がなく読めない上に、これまで便利に使ってきたPHP5のSQLite関係の関数も無くなっている...(-_-;)。

 どうやら楽はできないようなので、
1. SQLite2のデータベースファイルからデータを抜き出して、SQLite3のデータベースファイルを作成する
2. PHP5のソースファイルをPHP7用に修正する
という作業をすることに。

● SQLite 2.8.17のインストール

 Mac OS XにSQLite3は入っていますが、SQLite2は入っていないのでデータを抜き出すためにSQLite2をインストールします。SQLite Home Page47fee16bのページからSQLite 2.8.17のソースコードをダウンロードできます。
 ダウンロードして解凍したら、そのディレクトリに入って、

$ ./configure
$ make
$ sudo make install

● SQLite2のデータベースファイルからSQLite3のデータベースファイルの作成

$ sqlite old.db .dump | sqlite3 new.db

● PHP5のソースファイルをPHP7用に修正

 sqlite_open() や、便利だった sqlite_num_rows()、sqlite_fetch_all() が無くなってしまったのでPHP7用に修正。(長くなったので内容は割愛)

 とりあえず、3つのページのうちの1つは復旧させました。あとは古いページなので様子見です。

このページのトップに戻る