スポンサーリンク

BlognPlusをPHP7対応に

スポンサーリンク

不具合ではないのですが、サーバOSをFedora25にアップグレードしたことにより、PHPが7になってしまい、mysql_の関数が使えなくなってしまいました。
このため、BlognPlusが動作しなくなりました。
概ね対応をしましたので、概略を説明します。
blognplusのフォルダ内の全て(databaseやmoduleも)の*.phpについて、
(1) “mysql_”を”mysqli_”に全置換
(2) mysqli_query関数のパラメータ2個の順序を全て入れ替える
また、admin.phpのblogn_blog_new関数につきまして、同じパラメータが、意図は不明ですが2つ存在するためエラーになります。12番目のパラメータ$user_keyを、関数本体の宣言と呼び出し元それぞれから削除します。
利用しているモジュールの中で、「コメントスパム対策」(asm4cmt)で本文が書き込まれない不具合が発生しましたので確認しましたところ、asm4cmt_autolink関数で、ereg_replace()がエラーとなっていました。やはりPHP7で廃止になっていました。代替としてpreg_replace()があるのですが、そのままでは動作しませんでした。試行錯誤の末、以下のように解決しました。

// $str = ereg_replace(‘(https?)(://[[:alnum:]S$+?.-=_%,:@!#~*/&^-]+)’,’\1\2‘, $str);
$str = preg_replace(‘/((?:https?|ftp)://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)/u’,’1‘, $str);

他にも細かなエラー(変数未定義など)がありましたが、ssl_error_logを見ながら潰していきました。
このサイトはhttps強制になっているためssl_error_logですが、httpの方はerror_logを参照してください。

コメント

  1. dimag より:

    AGENT: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
    初めまして。
    長い間放置していたblognplusを再開しようとしたところ
    表示はされているものの、新規投稿や記事編集、画像のアップロードなどが
    出来ずに困ってました。
    貴サイトの記事がとても参考になりました。
    どうもありがとうございました。

  2. 凪パパ★ より:

    AGENT: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36 Sleipnir/4.5.10
    コメントありがとうございます。
    参考になったとのことで、当方もとても嬉しいです。
    本家は閉鎖されてしまいましたが、可能な限りBlognplusを使い続けるつもりですので、よろしくお願いします。

  3. 困ったさん より:

    AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36
    すみません、eregiとか全部書き換えたんですか?
    blognplusの中、結構使えない関数が大量にあって、もう直すの一苦労で…

  4. 凪パパ★ より:

    AGENT: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36 Sleipnir/4.6.4
    既に記憶が曖昧ですが、この記事にある通りの作業を地道に行いました。1,2時間くらいかけた覚えがあります。
    viで全置換し、検索しながら手作業でパラメータを入れ替えていきました。

タイトルとURLをコピーしました