1

Мне пришлось установить пользовательский Apache на OSX, потому что мне нужна была очень специфическая конфигурация для клиента, и я, к сожалению, не мог заставить работать по умолчанию одну из них.

Итак, я увидел, как запустить вручную, используя двоичный файл apachectl :

sudo /usr/local/apache2/bin/apachectl start

И я также увидел, что могу запустить Apache по умолчанию с помощью команды launchctl.

Но как сделать так, чтобы пользовательская установка запускалась при загрузке вместо стандартной? Если это возможно, я хотел бы использовать системный launchctl.

2 ответа2

2

Вы сделали бы то же самое, что и процедура launchctl, с которой вы связались. Недостающим является то, что вам нужно создать собственный файл launchd.plist и сохранить его в каталоге LaunchDaemons/. man launchd.plist для получения информации о формате plist ; или, возможно, вы можете скопировать оригинальный Apache и изменить путь в соответствии с вашими потребностями.

2

Решение:

Выгрузить Apache по умолчанию:

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

Создайте файл LaunchDaemon ( /Library/LaunchDaemons/com.aaa.launchd.apache2.plist ):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.aaa.launchd.apache2</string>
<key>ProgramArguments</key>
<array>
    <string>/usr/local/apache2/bin/apachectl</string>
    <string>start</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

Изменить владельца файла:

sudo chown root:wheel /Library/LaunchDaemons/com.aaa.launchd.apache2.plist

И, наконец, добавьте его для загрузки при загрузке:

sudo launchctl load -w /Library/LaunchDaemons/com.aaa.launchd.apache2.plist

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .