最低動作環境を PHP 4.1.2 から PHP 5.x にする

  • ページ: BugTrack2
  • 投稿者: bee
  • 優先順位: 普通
  • 状態: 提案
  • カテゴリー: 本体バグ
  • 投稿日: 2016-09-28 (水) 21:04:57
  • バージョン:

メッセージ

PHP 4.x の動作するレンタルサーバーもずいぶんと少なくなりました。
また、PHP 4.x を採用した OS も軒並み EoL となっており、テスト環境を構築することさえ難しくなっています。
そこで Pukiwiki を利用できる要件を PHP 4.1.2 から PHP 5.x に上げよう、という提案です。

これまで

  • official:FAQ/21 PukiWiki 1.3が動くPHPのバージョンは?
    PHP 4.0.6 以降でなら動くと思います。但し、日本語を扱う場合は、
    mbstringモジュールが組み込まれている必要があります。4.1.2以降がよいでしょう。
  • official:FAQ/22 PukiWiki 1.4が動くPHPのバージョンは?
    4.1.2 以降が確実です。それより前のバージョンでは、グローバル変数周りや
    mb_string関係、version_compare()*1 などで問題が起きることがあります。
    (*1 PHP 4.1.0 以降に標準搭載)

歴史的経緯など

(コメント/開発談義 より移動)

  • ところで、PHP4.1.2 を動かす方法をご存知の方いらっしゃいますか?LinuxかWindowsで。どこかのLinuxディストリビューションに含まれていると楽なのですが。今のPukiWikiはPHP4.1.2から動作するはずなのですが、環境がないため確認できないでいます -- umorigu 2014-09-13 (土) 15:50:00
    • (主に認証関連で)いくらかPHP側の制約を受けますけど、簡易で動作確認するだけならcgiで動かすのが楽かもです。前にXSASへ突っ込んでみた事ありますし、PHP4.1.2のcgiプログラムが正常動作するOSさえあるのならmod~なサーバプログラム組み込み型よりかは組み合わせ制約を回避しやすいのではないかと… -- 2014-09-15 (月) 16:46:28
      • ありがとうございます。CGIでの実行も考えながら探してみます -- umorigu 2014-09-17 (水) 02:45:48
    • こんにちは。Debian woodyが良いでしょう。当時複数のディストリビューションを比較した中で、最も長期的に維持されそうに見え、かつバージョンが古めで渋かった*1のが Debian GNU/Linux 3.0 (Woody) であり、それがたまたま PHP 4.1.2 を搭載していたから、PukiWiki 1.4.x は PHP 4.1.2 (http:// archive.debian.net/en/woody/php4) をターゲットの上限に据えたのです。 https:// www.debian.org/distrib/archive.ja.html -- henoheno 2014-09-17 (水) 23:55:48
      • 情報ありがとうございます。Debian woodyを試してみます -- umorigu 2014-11-05 (水) 03:32:53
    • Debian woody を使おうとしたのですが、VirtualBox にうまくインストールできなかったので、結局Windows 上で Apache1.3 + PHP4.1.2 の環境を構築しました -- umorigu 2015-01-18 (日) 09:56:03

候補案

  • PHP 5.1.6
    • CentOS 5 が 2017-03-31 までサポート
    • RHEL 5 は 2020-11-30 まで Extended Lifecycle Support(ELS) が提供される
  • PHP 5.2.4
    • WordPress の最低動作要件が PHP 5.2.4+
    • その影響か PHP 4.x/5.2 の両対応でお茶を濁しているレンタルサーバーがある
  • PHP 5.3
    • PHP 5.3.3 を RHEL/CentOS 6 が 2020-11-30 までサポート
    • PHP 5.3.10 を Ubuntu 12.04 が 2017-04 までサポート
    • "w3techs の統計によれば PHP 5.3 がもっとも広く使われるバージョンになり、国内の大手サーバーであるさくらインターネット、ロリポップ、Coreserver などで利用できるようになっている" (PukiWiki の開発プロジェクトの再建案 blog.sarabande.jp/post/46424933556 より)
  • PHP 5.4
    • PHP 5.4.16 を RHEL/CentOS 7 が 2024-06-30 までサポート
    • PHP 5.4.45 を Debian 7 が 2018-05-31 までサポート
  • PHP 5.5.9
    • Ubuntu 14.04 が 2019-04 までサポート

メリット/デメリット

  • 動作確認する環境が少なくなるため、開発者の負担軽減になる
  • PHP の新しい機能を利用できる
  • どんな環境でも動く pukiwiki の利点を捨てることになるかもしれない

恩恵がありそうなもの

  • PHP 4.2.0
    • mbstring が利用できるようになる(例: BugTrack/436
  • PHP 5.1.6
    • __construct() メソッドが利用できるようになる
      • 古い形式のコンストラクタは PHP 7.0 から非推奨(E_DEPRECATED が発生)
    • CoW が採用され、オブジェクトを参照渡しする必要がなくなる(E_NOTICE の主要因)
    • 日付/時刻のサポート - PHP 5.0.x から PHP 5.1.x への移行 に関連する分岐対応が不要になる(例: strtotime() の返り値の仕様変更)
  • PHP 5.3.3
    • namespace がサポートされ、autoload や composer を利用できるようになる
    • 無名関数(クロージャ)や const キーワードを利用できるようになる
    • 遅延静的束縛 (static::) が利用できるようになる
  • PHP 5.4
    • array の短縮構文を利用できるようになる
    • trait が利用できるようになる

  • 5.4以降でいいと思う。それ以前は1.5,1を使用するという形でいいのではないか?MediaWikiがそういう形式だし。 -- 匿名? 2016-10-09 (日) 22:51:33
  • これまで&歴史的経緯を書き加えてくださった方、ありがとうございます。RHEL/CentOS に加えて Debian/Ubuntu のサポート状況を追記、ほか諸々書き足しました。 -- bee 2016-10-10 (月) 20:11:11
  • 個人的にはとりあえず PHP 5.1.6 を下限に据えて、E_NOTICE と E_DEPRECATED を狩りたい。あとは具体的なメリット次第だと思っています。 -- bee 2016-10-10 (月) 20:17:19
  • PHP 4 の載っている RHEL 4 も 2017-03-31 で ELS が終わるらしいですね。 -- bee 2016-10-20 (木) 10:20:41
  • サポート終了品のPHPをいつまでも対応する意味が分からん。サポート終了のPHPを使っている時点で公開サーバー使っていないんだから、対応する必要ないし、動かないって苦情いうならPukiwikiのフォルダだけハンドラー変えて、最新のPHP-CGIを動かす努力をすればいいだけのこと。 -- kintok? 2017-01-22 (日) 16:10:33
    • Pukiwikiのversionを 7.x を同時にだしてPHP7.0以降にする。Pukiwiki5系列のコードは現状維持にすればいい。 -- kintok?
    • こんにちは。「サポート終了のPHP言語を公開サーバ-で使ってはいけない」とは言えません。「サポート」という言葉の解釈が違う様ですが、仮にプログラミング言語の「サポート」が打ち切られた場合でも、Linuxディストリビューションは可能な限り欠陥を塞ぎながら独自の「サポート」を継続するので、ソフトウェア製品の「サポート」対象はディストリビューションが採用しているバージョン(と利用者の規模)を考慮して設定する必要があります。自らのこれまでの、また、潜在的な今後のユーザーを切り捨てることに直結するからです。 -- henoheno 2017-01-22 (日) 22:06:25
      • 提案議題は却下というこで終了 -- kintok?
      • どなたかがまとめた候補案には、整理や追記の必要があるかもしれませんが、現状 PHP 5.x しか挙げられていないということを確認してください。(この指摘は客観的事実を述べているだけです) -- henoheno 2017-01-29 (日) 12:01:49
      • どなたかが書かれた「(ブランド)」という表現を気にされたのであれば、「(要出典)」という揶揄を含めて削除しておきます。 -- henoheno 2017-01-29 (日) 12:02:15
      • 初期タイトルの「PHP 5.x にする」という文言も意見の相違の元になっているポイントかもしれませんが、必要とあらばそこも抽象化するのでコメント願います。 -- henoheno 2017-01-29 (日) 13:09:44
  • 今になって思い出しましたけど、開発日記/2016-02-25 にPHPのターゲットについての言及がありますね。 -- 2017-02-01 (水) 01:30:47
  • version_compare 関数でPHPのバージョンチェックを行い ... (BugTrack/2415 に移動しました -- henoheno)
  • 開発日記/2016-02-25 PHP4への言及、忘れてました。大規模な変更が必要になったらPHP4を切った方がいいかもしれませんが、結構今でも動いちゃってるので無理に動かないようにすることもないかなぁと思ってます。外部公開されていない、イントラネットで動作させていることも多いでしょうし -- umorigu 2017-02-16 (木) 23:19:21


*1 既にさまざまなサーバー環境が乱立している中で、そのほとんど全てにおいて「誰にでも素早く」扱える様にするためには、実行するプログラムのバージョンを(ある程度低めに、保守的に)揃える必要があります。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-02-19 (日) 22:46:16
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.219 sec.

OSDN