MacPorts Apache2 прекратил запускаться на начальной загрузке

Что-то, что я недавно заметил на двух различных машинах, - то, что Apache2, установленный через MacPorts, кажется, прекратил запускаться, когда я загружаюсь. Чистая правда - то, что я не могу поклясться, что это сделало так прежде, но это - что-то, что я думаю, что заметил бы, потому что установка LaunchDaemon является частью моего процесса установки. На самом деле, если я пытаюсь перезагрузить LaunchDaemon, он перестал работать:

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
org.macports.apache2: Already loaded

Если я не запускаю Apache вручную (использование sudo apachectl restart), grep'ing или для "apache2" или для "httpd" в моем списке процессов только производит это:

$ sudo ps -ef | egrep "apache2|httpd"
    0    52     1   0   0:00.06 ??         0:00.08 /opt/local/bin/daemondo --label=apache2 --start-cmd /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart ; --pid=none

1410639199 6960 6 792 0 0:00.00 ttys001 0:00.00 egrep apache2|httpd

Похож на демона, самостоятельно существует, но никакой исполняемый файл. Насколько я знаю/могу, говорят, соответствующие исполняемые файлы (httpd и apachectl) являются исполняемым файлом всеми.

Кто-либо еще заметил это? Какие-либо идеи?

ОБНОВЛЕНИЕ

Согласно просьбе ниже, я действительно выполнялся launchctl list. Список длинен, и я не уверен, как отрезать его, но достаточным, чтобы сказать что нет org.macports.* объекты перечислены. Это сам по себе интересно, потому что мой демон MySQL загружается тот же путь. Это работает, но также и не появляется в списке. Сообщите мне, необходим ли весь вывод действительно.

ОБНОВЛЕНИЕ

Я предположил, что выполнился launchctl list под sudo, но запрошенный комментарием mipadi ниже, я попробовал еще раз удостоверяться, что я сделал так, и я принял неправильно. При выполнении под sudo объекты MacPorts появляются:

51  -   org.macports.mysql5
52  -   org.macports.apache2

Я не уверен, поможет ли это, но это - немного больше информации, тем не менее.

ОБНОВЛЕНИЕ

Я спросил другое, но имел отношение, вопрос в LaunchDaemons и Переменных среды. Я обновлю оба вопроса, поскольку я узнаю больше.

ОБНОВЛЕНИЕ

Сегодня, на основе входа списка рассылки, я пытался использовать подстановочный корневой каталог. Академически, это является немного более содержащим, чем я хотел бы, но практическая действительность - то, что я - единственный с помощью этого компьютера; конечно, единственный, у кого было бы наложение файлов конфигурации Apache вокруг.

Include "/Users/*/Dropbox/Application Support/apache/conf.d.osx/*.conf"
Include "/Users/*/Library/Application Support/MacPorts/apache/conf.d/*.conf"

К сожалению...

httpd: Syntax error on line 512 of /opt/local/apache2/conf/httpd.conf: Wildcard patterns not allowed in Include /Users/*/Dropbox/Application Support/apache/conf.d.osx/*.conf

7
задан Community 23 May 2017 в 12:30
поделиться

2 ответа

Поскольку теперь я знаю , почему Apache перестал загружаться при запуске, я собираюсь сформулировать этот ответ и отметить этот вопрос как ответ . Причина, по которой Apache перестал запускаться при загрузке, заключается в том, что я пытаюсь поделиться файлом httpd.conf между системами. Конфигурационный файл должен включать файлов из каталогов, существующих в моем домашнем каталоге. Поскольку домашний каталог на разных машинах разный, я пытался сослаться на переменную среды $ {HOME} .

Это нормально работает при запуске вручную после загрузки машины, но не работает при запуске, потому что переменная среды еще не установлена. Как упоминалось выше, см. этот вопрос для получения дополнительной информации.

1
ответ дан 7 December 2019 в 14:33
поделиться

Роб:

  1. Была та же проблема: «sudo launchctl load -w ...» запустил Apache2, когда я был в системе, но не работал во время запуска («-w» должен был решить эту проблему) . Кроме того, как вы заметили, похоже, что демон зарегистрирован с помощью launchctl. Он будет отображаться с «sudo launchctl list», а другой «sudo launchctl load ...» приведет к сообщению об ошибке.

  2. Я играл с «sudo port load apache2» и «sudo port unload apache2», но не мог запустить httpd при перезагрузке.

  3. В конце концов, я избавился от элемента запуска MacPorts: «sudo port unload apache2», проверил с помощью «sudo launchctl list», что org.macports.apache2 больше не зарегистрирован для запуска.

  4. После этого я выполнил шаги http://diymacserver.com > Документы> Tiger> Запуск Apache. Мне нужно было только адаптировать путь от / usr / local / ... к / opt / local / ...

Теперь MacPorts Apache2 запускается нормально при каждой перезагрузке.

Удачи, Клаус

1
ответ дан 7 December 2019 в 14:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: