実は以前も遭遇したのだが、今回再度躓いたので備忘メモとして残しておく。
発端
ある日XAMPPでApacheを起動しようとしたもののうまく起動しない。
11:22:29 [Apache] Attempting to start Apache app... 11:22:30 [Apache] Status change detected: running 11:22:31 [Apache] Status change detected: stopped 11:22:31 [Apache] Error: Apache shutdown unexpectedly. 11:22:31 [Apache] This may be due to a blocked port, missing dependencies, 11:22:31 [Apache] improper privileges, a crash, or a shutdown by another method. 11:22:31 [Apache] Press the Logs button to view error logs and check 11:22:31 [Apache] the Windows Event Viewer for more clues 11:22:31 [Apache] If you need more help, copy and post this 11:22:31 [Apache] entire log window on the forums
ログ確認
エラーログを見ろとあるので、Apacheのエラーログを確認すると下記のようなログが出力されていることが確認できた。
PHP Warning: 'C:\\WINDOWS\\SYSTEM32\\VCRUNTIME140.dll' 14.13 is not compatible with this PHP build linked with 14.29 in Unknown on line 0
調査
PHPのインストール要件にあるように、WindowsでPHPを動かすには、Visual C ランタイム(CRT)が必要になる。
https://www.php.net/manual/ja/install.windows.requirements.php
対応
https://learn.microsoft.com/ja-jp/cpp/windows/latest-supported-vc-redist?view=msvc-170 から利用環境に合った再販不可能パッケージをダウンロードする。
(私の場合は、vc_redist.x64.exe をダウンロードしました。)
ダウンロードしたファイルを実行してインストールする。
起動確認
インストール後に、再度XAMPPでApacheを起動すると問題なく起動しました。
(結果的に多分XAMPPは関係なく、WindowsでPHPを動かす際に躓くかもしれないポイントという感じでした。原因に関してはよく分かっていないのですが、OSのアップデートか何かの影響でCRTのインストールが壊れたのかもしれないです。)