スレッド一覧 > 記事閲覧
[247] PHPバージョンについて
日時: 2024/02/19 20:27
名前: 声優共演検索◆h/gfidhaZo ID:iFb6YMlw メールを送信する
参照: http://seiyu.ie-t.net/

いつもお世話になっております、貴サーバーを利用させてもらっている者です。

貴サーバーのPHPのバージョンは7系の最終バージョン(と思われる)7.4.33ですが、今後8系に移行する御予定などはございますでしょうか?

それと貴サーバーのコントロールパネルで実現可能か分からないのですが、利用するPHPのバージョンをコンパネユーザーが変更できるとありがたいです。

質問と要望を記載しました。

お手数ですが、ご回答のほどよろしくお願いします。
メンテ

Page: 1 | 2 | 3 | 全部表示 スレッド一覧 新規スレッド作成

Re: PHPバージョンについて ( No.12 )
日時: 2024/02/22 18:23
名前: ちらみ◆kBt3KPJY0E ID:e3zpoUIo

検証とご報告をありがとうございます。

サーバ全体設定のphp.iniではdisplay_errorsはOFFなので、明示的にONの方以外はログに記録されてしまう事以外に問題は無いかなと思いました。

私自身、既にサポートの無い7.4を使い続けるのも気になっていたので今回の問い合わせを機に8.3への変更を決行したいと思っています。
メンテ
Re: PHPバージョンについて ( No.13 )
日時: 2024/02/22 18:51
名前: 声優共演検索◆h/gfidhaZo ID:Y5krv/Xk メールを送信する
参照: http://seiyu.ie-t.net/

ちらみ様の意向、理解しました。

時間が無くて結果報告に含めきれなかった「速度向上」についてですが、大きな数を文字列で計算するPHPの「BCMath」を使ったお手製ベンチマークで調べました。
結果は8.3の方が早い・安定する、でした。

お手製ベンチマークのURL(paiza.io)がこちらです(paiza.ioはBCMathモジュールがインストールされてない?ため動作しません)
https://paiza.io/projects/RTYc6uDqDKu7Hy-BuEc_eg

■結果

PHP version 7.4.33 (Before)

7.3526668548584 sec.
9.1178860664368 sec.
6.4656918048859 sec.
7.8897581100464 sec.
10.860679149628 sec.
11.142512083054 sec.
6.9362699985504 sec.
6.3370621204376 sec.
15.720798015594 sec.
6.4699740409851 sec.
--------------------
Min: 6.3370621204376 sec.
Ave: 8.82932982444766 sec.
Mid: 7.6212124824524 sec.
Max: 15.720798015594 sec.

---

PHP Version 8.3.3 (After)

6.5621728897095 sec.
6.4722361564636 sec.
6.3993890285492 sec.
6.5084700584412 sec.
6.4470300674438 sec.
6.3642098903656 sec.
6.4180729389191 sec.
6.5234808921814 sec.
6.4500598907471 sec.
6.3397800922394 sec.
--------------------
Min: 6.3397800922394 sec.
Ave: 6.44849019050599 sec.
Mid: 6.44854497909545 sec.
Max: 6.5621728897095 sec.

PHP 7.4は速度に大きくバラつきがあるのに対して、PHP 8.3は安定して早い結果になりました、参考までに。
メンテ
Re: PHPバージョンについて ( No.14 )
日時: 2024/02/22 22:29
名前: ちらみ◆kBt3KPJY0E ID:e3zpoUIo

詳細な検証ありがとうございます。

先ほど(2024/2/22 22:10頃)しれっとグローバルなPHPを7.4 --> 8.3に変更しました。
アップグレードしたのでほぼ無停止です。

時間ある時にお知らせページに報告しようと思います。

取り急ぎご連絡まで。
メンテ
Re: PHPバージョンについて ( No.15 )
日時: 2024/02/22 22:40
名前: 声優共演検索◆h/gfidhaZo ID:Y5krv/Xk メールを送信する
参照: http://seiyu.ie-t.net/

ご対応ありがとうございます。

Warning箇所を修正次第にPHP 8.3に変更しようと思っています。
X(旧Twitter)で教えて頂いた「Let's Encrypt」をオンにしてSSL化も予定しています。どうやら「http://」固定で書いてる箇所があるのでソースも修正しないといけないようです。

この度は色々とありがとうございました
メンテ
Re: PHPバージョンについて ( No.16 )
日時: 2024/02/23 19:46
名前: Kou ID:6vKNkFjk
参照: https://tnsk.ie-t.net/

完全なるメモですが皆さんに共有したいのでここにお知らせします。

PHP8にアップデートしてから文字化けとSQL接続不可が発生するようになりました。
色々調べてみたところ、
・PDO宣言を厳格にする
・php.iniのdefault_charsetが空欄からUTF-8になったので、ini_setを使用し、変更する
の二つをしなければいけないことがわかりました。
自分のサイトもこれから変更していきます。
メンテ
Re: PHPバージョンについて ( No.17 )
日時: 2024/02/23 20:42
名前: Kou ID:6vKNkFjk
参照: https://tnsk.ie-t.net/

今さっきini_setを使用してエンコーディングを書き換えたらメモリがいっぱいと言われました。

PHP7.4の時とプログラムは全く同じです。
どうすればいいでしょうか?
わかる方がいましたらよろしくお願いします。
メンテ
Re: PHPバージョンについて ( No.18 )
日時: 2024/02/23 21:21
名前: 声優共演検索◆h/gfidhaZo ID:/dsfjQYU メールを送信する
参照: http://seiyu.ie-t.net/

Kou さんへ

私もPDOを使用していますが文字化けとSQL接続不可は発生しませんでした。
参考まで私のPDO宣言は以下の通りです。
https://paiza.io/projects/Le5M3NJ2FI0klVMwSkpF9w
※paiza.io 上では動作しません

PHP 8.0対応には興味があるので、よろしければ参考にされたサイトのURLなどを教えて頂けないでしょうか?
メンテ
Re: PHPバージョンについて ( No.19 )
日時: 2024/02/24 08:30
名前: Kou ID:ly/AMgFs
参照: https://tnsk.ie-t.net/

自分が参考にしたサイトは以下の通りです。
https://tadtadya.com/php8-consistent-type-errors/
https://teratail.com/questions/118912

文字化けは
変更前:JF6DEUの備忘録
変更後:JF6DEU?????????????
のようにUTF-8の日本語が認識できないみたいです。(よくわかりませんが...)
ここの変換関連のプログラムは以下のようになっています。
https://paiza.io/projects/4c50WeqlL6XAK9U6kVH3vQ

SQLについては、PHP7.4までは独自クラスの「SQL」を作るためにclass SQLとだけしていたものをclass SQL extends PDOと変更したら動きました。
メンテ
Re: PHPバージョンについて ( No.20 )
日時: 2024/02/24 18:20
名前: 声優共演検索◆h/gfidhaZo ID:m1WBZU0E メールを送信する
参照: http://seiyu.ie-t.net/

Kou さん

参考にされたサイトを確認しました。

こちらのサイトでは「関数の引数と戻り値を厳密にでき、PHP 8.0からはそれを守らないとエラーになる」ということが書かれており、
文字化けとSQL接続不可とはあまり関係が無いように感じました。
https://tadtadya.com/php8-consistent-type-errors/

こちらのサイトはPHP 5.4→7.0アップグレードの話で、家Tサーバーさんに該当するかは不明です。
https://teratail.com/questions/118912
現在、家Tサーバーさんのコントロールパネルで設定できる「PHP 8.3 (Default)」と(救済策として残された)「PHP 7.4」は、
「default_charset」はどちらも「UTF-8」です。
アップグレード前の「PHP 7.4」は確認することができませんがおそらく変更されていない(UTF-8だった)と思われます。

変換関連のプログラムを拝見しました。
変換が必要ということはPHPファイルはUTF-8以外のエンコーディングを使われているのでしょうか?
PHPファイルのエンコーディングがUTF-8であれば変換は特に必要ないかと思われます。
https://paiza.io/projects/4c50WeqlL6XAK9U6kVH3vQ

> SQLについては、PHP7.4までは独自クラスの「SQL」を作るためにclass SQLとだけしていたものをclass SQL extends PDOと変更したら動きました。
独自クラス「SQL」でPDOクラスを使われていたという認識で合っていますでしょうか?
独自クラスをPDOのサブクラスにしたら動作した、というのは少し引っかかります。
可能性としてはPDOのコンストラクタの記述が7.4までしか対応していないもので動作せず、
PDOの子クラスにしたことで親クラスのコンストラクタが呼ばれ8.3でも動作するようになった、ということが考えられます。

PDOコンストラクタの記述を載せて頂ければ何か分かるかもしれません(DB名やユーザ名・パスワードは伏せた形で)。
メンテ
Re: PHPバージョンについて ( No.21 )
日時: 2024/02/24 23:35
名前: Kou ID:vBG20Tb.

確認しました。
関数関連だと思っていていたのですが...全然違いましたか...
あと、default_charsetの件については自分もどうだろう...という感じです。
分かりませんがもしかしたら...という気持ちで投稿しました。

文字コード変換関連については、設定ファイルを別のPHPファイルで保存して、それを変換して使用している...という感じです。

>独自クラス「SQL」でPDOクラスを使われていたという認識で合っていますでしょうか?
はい、その通りです...
コードの公開についてはちょっと...という感じなので明日またメールを送ります。
その際にはよろしくお願いします。
メンテ

Page: 1 | 2 | 3 | 全部表示 スレッド一覧 新規スレッド作成

題名
スレッドをトップへソート
名前
「名前#任意の文字列」でトリップ生成
E-Mail
入力するとスレッドの通知メールを受け取れます。(非表示)
URL
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存