Windows11にApache+PHP8.3を導入する
普段はポータブル版のXAMPPを使用してWindows上にApache+PHP8.xの環境を構築していました。今回はXAMPPが現時点でまだPHP8.3に対応していなかったため、Apache, PHP8.3を手動導入してみました。
ありきたりな構成なので5秒で構築できると思ったら数時間かかってしまったのでつまづきポイントを省みる意味も込めての作業メモです。
Apache導入
C:\Apache24
に設置します。
CLIから C:\Apache24\bin\httpd.exe
を起動し、 http://localhost
にアクセスして疎通確認します。
必要があればモジュールを有効にします。
- ;LoadModule rewrite_module modules/mod_rewrite.so
+ LoadModule rewrite_module modules/mod_rewrite.so
PHP8.3導入
最新のスレッドセーフ版(VS16 x64 Thread Safe (2024-Apr-10 15:13:46)
)をダウンロード、解凍して C:\php83
に設置します。
パスを C:\php83
に通し、CLIから利用できるようにします。
php.ini-development
を php.ini
にリネームします。必要な拡張が分かっていればこの時点で有効化してもOKです。
- ;extension=curl
+ extension=curl
正しく構成管理されたcomposerプロジェクトであれば composer check-platform-reqs
で依存状況が確認できます。
composer check-platform-reqs
Checking platform requirements for packages in the vendor dir
composer-plugin-api 2.6.0 success
composer-runtime-api 2.2.2 success
ext-ctype * success provided by symfony/polyfill-ctype
ext-curl 8.3.6 success
...
Apache-PHP連携
デフォルトのApacheは静的HTML向けの設定となっているのでphpを利用できるように設定します。
ServerName
は未指定でも警告が出るだけで動作はします。localhostでしか使わないなら適当な設定値でOKです。
- ServerName
+ ServerName www.example.com:80
+ PHPIniDir "c:/php83"
+ LoadModule php_module c:/php83/php8apache2_4.dll
+ AddType application/x-httpd-php .php
- DirectoryIndex index.html
+ DirectoryIndex index.php index.html
- ;extension_dir = "ext"
+ extension_dir = "C:\php83\ext"
CLIからの利用する場合は相対パス("ext"
)で拡張を読み込んでくれますが、Apache経由での処理は絶対パスでないと読み込まれないようです。
XAMPPでも毎回設定変え忘れて1時間ぐらいロスしています。ぴえん。
PHP公式にも絶対パス推奨と書かれています。
Apacheをサービス登録する
PC起動時に自動実行するようにサービス登録します。
コマンドプロンプトは管理者権限で実行する必要があります。
cd c:\Apache24\bin
httpd.exe -k install
Apacheの再起動
タスクマネージャー>サービス>Apache2.4
を選択して再起動でできます。
Discussion