MAMP не работает после обновления macOS 27: Internal Server Error и ошибка FastCGI

Очень узкоспециализированная ошибка, но много попортила нервов и потратила времени. После обновления до macOS 27 у меня начал периодически падать MAMP Pro. Особенно часто ошибка возникала при выполнении внешних HTTP-запросов через PHP/cURL.

В браузере появлялось:

Internal Server Error

The server encountered an internal error or misconfiguration
and was unable to complete your request.

В /Applications/MAMP/logs/apache_error.log при этом была ошибка:

+[NSPlaceholderString initialize] may have been in progress
in another thread when fork() was called.

We cannot safely call it or ignore it in the fork() child process.
Crashing instead.

А следом:

FastCGI: incomplete headers (0 bytes) received from server

Как исправить

1. Узнайте используемую версию PHP в MAMP.

В моём случае это PHP 8.2.0.

2. Откройте соответствующий FastCGI-файл:

/Applications/MAMP/fcgi-bin/php8.2.0.fcgi

Для другой версии PHP имя файла будет отличаться.

3. Сразу после #!/bin/sh добавьте:

export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

Получится примерно так:

#!/bin/sh

export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

# остальное содержимое файла

4. Сохраните файл и полностью перезапустите серверы MAMP:

Stop Servers → Start Servers

После этого PHP/cURL-запросы снова заработали, а Internal Server Error и падения FastCGI исчезли.

Если в MAMP переключить версию PHP, изменение нужно внести и в .fcgi-файл этой версии.

Добавить комментарий