Используйте launchd для запуска Apache и заставьте Apache работать на переднем плане, чтобы launchd мог отслеживать его и перезапускать в случае сбоя. Поскольку система включает элемент launchd (/System/Library/LaunchDaemons/org.apache.httpd.plist) для запуска встроенной версии Apache, я просто скопирую это в /Library/LaunchDaemons , изменим имя файла и метку поэтому launchd не запутает их, удалит ключ Disabled и изменит ProgramArguments чтобы они указывали на версию Apache для MacPorts. Обязательно сохраните аргументы -D и FOREGROUND в httpd , иначе он демонизирует себя, а launchd запустит другой экземпляр, и ничего полезного не будет сделано.
(И следуйте советам @ RedGrittyBrick по поиску истинной причины аварии. Хотя launchd - это "правильный" способ запуска демона, такого как Apache, в Mac OS X, это всего лишь бинты для решения любой проблемы, с которой сталкивается Apache.)