PHPをUpdateして Ver 8.2.11
2023-10-16 記載
概要:Windows10でPHPのバージョンUPを行った手順を紹介しています
Keyword : Windows10, PHP,バージョン,Update,更新,ini,Apache,連携,httpd.conf,
現在Windows10(22H2)を使用中です。
先日はApacheを最新にUpdateしました。そしてSSLを実装しました。
このところ、ローカル開発環境の構築に勤しんでいます。
次はPHP。現在ここcloudfreeでは PHP8.2.9 を使用中です。(2023.10.12時点の最新)
マイマシンにも一応PHPはいれてましたのでバージョン確認。
C:\WINDOWS\system32>php -v
PHP 8.2.7 (cli) (built: Jun 7 2023 10:25:38) (ZTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.2.7, Copyright (c) Zend Technologies
8.2.7 なのでUpdateする意味ありです。その前に新ApacheでPHPが動かないことを確認。
phpinfo.phpというファイルを以下のコードで作成してC:\pgm\Apache24\htdocs に配置しました。
<?php
echo 'Hello PHP';
phpinfo();
?>
http://localhost/test.php を呼んでみますと、思った通りの白ボンテ、でOK。
公式PHPへ取りに行くと、8.2.9はもうなくて.11に。
cloudfreeサーバより新しくなりますがノープロブレム、微々たる差にはこだわりません。
PHP 8.2 (8.2.11)
VS16 x64 Thread Safe (2023-Sep-26 16:01:20)
の Zip [30.35MB] をDownload。
環境変数でPathを通してるだけだし、PHPこそはフォルダのすげかえでいけそう。
一応ApacheをStopさせて(白ボンテだから関係ないけど)、すげかえてバージョン確認。
C:\WINDOWS\system32>php -v
PHP 8.2.11 (cli) (built: Sep 26 2023 15:25:31) (ZTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.2.11, Copyright (c) Zend Technologies
Good-Job。(※ 私のSetup先は c:\pgm\php8 なんですが、環境変数でPathは通ってます)
ApacheからPHPモジュールが呼び出せるように httpd.conf の LoadModule群の末尾に追記。
LoadModule php_module "c:/pgm/php8/php8apache2_4.dll"
PHPIniDir "c:/pgm/php8"
これでApacheをStartさせて、http://localhost/test.php を呼んでみますと。
白ボンテ。やはりそう一発では動きません。
フォルダをのぞいてphp.iniを作ってなかったことに気づきました。
php.ini-development をコピーしてphp.iniを作成。
以前のものとつきあわせて変更箇所を書き換え。
(本当は設定が必要になったときに都度、ココにその理由を書きながら、書き換えていきたいのだけれど、トラブルってから原因究明にいたるまでにストレスたまるのはもうゴメンという気分なので、もう楽させてもらう)
;max_execution_time = 30
; cloudfree = 180
max_execution_time = 3600
; ……
;memory_limit = 128M
; cloudfree = 1G
memory_limit = 4096M
; ……
;post_max_size = 8M
; cloudfree = 1G
post_max_size = 1024M
; ……
include_path = ".;c:\pgm\php8\pear;c:\pgm\php8\includes"
; ……
extension_dir = "ext"
; ……
sys_temp_dir = "c:\pgm\pgm_tmp"
; ……
;upload_max_filesize = 2M
; cloudfree = 1G
upload_max_filesize = 1024M
; ……
extension=curl
;cloudfree cURL support enabled
extension=fileinfo
;cloudfree fileinfo support enabled
extension=gd
;cloudfree GD Support enabled
extension=mbstring
;cloudfree Multibyte Support enabled
extension=mysqli
;cloudfree MysqlI Support enabled
extension=openssl
;cloudfree OpenSSL support enabled
extension=pdo_mysql
;cloudfree PDO Driver for MySQL enabled
;vvvvvvvv 2023.11.08 Add for Windows .NET new COM("WScript.Shell")
extension=php_com_dotnet.dll
; ……
date.timezone = Asia/Tokyo
;session.cookie_lifetime = 0
;cloudfree 0
session.cookie_lifetime = 2880
;session.gc_maxlifetime = 1440
;cloudfree 1440
session.gc_maxlifetime = 2880
; ……
mbstring.language = Japanese
;cloudfree mbstring.encoding_translation Off
mbstring.encoding_translation = Off
;mbstring.detect_order = auto
;cloudfree auto
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
;cloudfree (no value)
mbstring.substitute_character = none
以上の箇所を過去に書き換えてましたのでとりあえずあわせました。
それと書き換えた値は、cloudfree ではどう設定されているか(2023.10)もコメントでいれました。サーバで、phpinfoが使えましたので。
【注意】php.iniに日本語(マルチバイト文字)を書かないように。;コメント などの所に。
正しく読み込んでくれないようです。
これでリトライ。まだ動かない。
んー、なにが抜けてるんだろう?……と考えて、『そうだ、httpd.confの拡張子対応だ』とひらめきました。そのあたり何も書きくわえた記憶がありません。
httpd.confの古いファイルをみて、以下の記述を追記。
<IfModule mime_module>
# ……
<FilesMatch "\.php$">
AddHandler php-script .php
AddType application/x-httpd-php .php
</FilesMatch>
</IfModule>

こんどこそ、動きました。\(^o^)/