概要
windowsでMAMP使っていて、
PHPのバージョン切り替えようとした際に、MAMPが落ちてしまう現象があったので対処方法を記載します。
前提
無料版のMAMPは内部的いくつかPHPのバージョンを持っておりますが、アプリ上では2つまでしか選択できません。
その場合は、以下のファイルパスにある使っていないphpのフォルダ名を一時的に変更すると使えるようになります。
C:\MAMP\bin\php
私の場合は、アンダーバーでフォルダ名に入れて以下のような形にしています。(MAMPは最新のPHPから最大2つまで読み込みます)
上記の場合だと、PHP7.4.1と7.2.14がMAMPのアプリ上で切り替えられます。
現象
php7.3を使おうとフォルダ名を以下のようにしました。
しかし、MAMPを起動するとサーバーやDBのランプが点灯せず、アプリが落ちるような現象になっていました。

対処法
MAMPのアプリを一度落としてから
confにあるC:\MAMP\conf\apache\httpd.conf
内にあるAdditional libraries
部分を修正することで起動するようになります。
実際にhttpd.conf
の60行目あたりを見ますと、
おそらく今利用しているPHPのバージョンが読み込まれて、以下のような感じになっていると思います。
# Example:
# LoadModule foo_module modules/mod_foo.so
#
#
# Additional libraries
#
LoadFile "C:/MAMP/bin/php/php7.2.14/libssh2.dll"
LoadFile "C:/MAMP/bin/php/php7.2.14/libcrypto-1_1.dll"
LoadFile "C:/MAMP/bin/php/php7.2.14/libssl-1_1.dll"
LoadFile "C:/MAMP/bin/php/php7.2.14/nghttp2.dll"
# End Additional libraries
#
#
# Additional libraries
#
LoadFile "C:/MAMP/bin/php/php7.4.1/libssh2.dll"
LoadFile "C:/MAMP/bin/php/php7.4.1/libcrypto-1_1.dll"
LoadFile "C:/MAMP/bin/php/php7.4.1/libssl-1_1.dll"
LoadFile "C:/MAMP/bin/php/php7.4.1/nghttp2.dll"
LoadFile "C:/MAMP/bin/php/php7.4.1/libsqlite3.dll"
# End Additional libraries
#
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
・
・
このAdditional libraries
で使わないバージョン部分は消します。
# Example:
# LoadModule foo_module modules/mod_foo.so
#
#
# Additional libraries
#
LoadFile "C:/MAMP/bin/php/php7.4.1/libssh2.dll"
LoadFile "C:/MAMP/bin/php/php7.4.1/libcrypto-1_1.dll"
LoadFile "C:/MAMP/bin/php/php7.4.1/libssl-1_1.dll"
LoadFile "C:/MAMP/bin/php/php7.4.1/nghttp2.dll"
LoadFile "C:/MAMP/bin/php/php7.4.1/libsqlite3.dll"
# End Additional libraries
#
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
・
・
このようにして上書き保存してMAMPを再起動します。
そうすると私の場合は無事起動するようになりました。
どうも無料版は設定ファイルに2種類以上のバージョンのモジュールが読み込まれるとダメみたいです。