2

Фон:

Я использую свой Mac для веб-разработки, локально запускаю копии веб-сайтов. Недавно я установил обновление Snow Leopard, которое, судя по всему, прошло нормально, кроме ...

Что не работает?

Web-обмена; точнее я не могу включить его через настройки. Панель настроек просто зависает, когда я пытаюсь.

Таким образом, Apache не запускается при перезагрузке. Я могу запустить Apache вручную, но я не знаю достаточно, чтобы настроить apache для запуска с компьютера или правильно настроить общий доступ к сети.

Более подробная информация

Мой журнал ошибок Apache ничего не показывает при загрузке системы (как я и ожидал).

Это сообщение об ошибке, когда я пытаюсь запустить веб-общий доступ из панели настроек общего доступа.

28/09/2009 10:58:05 System Preferences[834] setInetDServiceEnabled failed with 1 for org.apache.httpd

Вот сообщения, которые я получаю, когда я запускаю apache из командной строки.

[Mon Sep 28 10:35:53 2009] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Mon Sep 28 10:35:54 2009] [warn] mod_bonjour: Skipping user 'sams' - index file /Users/sams/Sites/index.html has zero length.
[Mon Sep 28 10:35:54 2009] [notice] Digest: generating secret for digest authentication ...
[Mon Sep 28 10:35:54 2009] [notice] Digest: done
[Mon Sep 28 10:35:54 2009] [notice] Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8k DAV/2 PHP/5.3.0 Phusion_Passenger/2.2.5 configured -- resuming normal operations

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация по этому вопросу.

Любая помощь будет принята с благодарностью.

ОБНОВИТЬ

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

2 ответа2

2

Это немного того и другого. Флаг отключения (снят при launchctl load -w /PATH/TO/PLIST - запускается автоматически, когда вы отмечаете «Общий веб-доступ» на панели настроек общего доступа), говорит, что он не запускается. Однако из-за того, что эта строка находится вне пределов, она выглядит как искаженный файл. Поместите обратно в с предыдущими значениями или удалите все это вместе (см. Ниже).

Пример работающего (но отключенного) .plist от Snow Leopard

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <true/>
    <key>Label</key>
    <string>org.apache.httpd</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/httpd</string>
        <string>-D</string>
        <string>FOREGROUND</string>
    </array>
    <key>OnDemand</key>
    <false/>
    <key>SHAuthorizationRight</key>
    <string>system.preferences</string>
</dict>
</plist>
1

Пожалуйста, не стесняйтесь внести некоторую ясность в следующий ответ. Я не особенно техничка, поэтому большая часть моего решения включает взлом между двумя файлами. :)

Следуя вышеприведенным сообщениям об ошибках, я проверил файл org.apache.httpd.plist. Затем я проверил его по файлу plist до того, как установил Snow Leopard. Файлы отличались по этим пунктам:

Конфиг Snow Leopard (не работает)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <true/>
    <key>Label</key>
    <string>org.apache.httpd</string>
    <key>EnvironmentVariables</key>
   <dict>
     <key>PATH</key>
   </dict>
     <string>/opt/local/bin:/usr/local/mysql/bin</string>
    <key>ProgramArguments</key>
    <array>

Предыдущая Конфиг (Работы)

<?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>EnvironmentVariables</key>
    <dict>
        <key>PATH</key>
        <string>/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
    </dict>
    <key>KeepAlive</key>
    <false/>
    <key>Label</key>
    <string>org.apache.httpd</string>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>

Кажется, здесь есть 3 проблемы:

Следующее - я предполагаю, отключает httpd? Или файл. Не совсем уверен.

<key>Disabled</key>
<true/>

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

<string>/opt/local/bin:/usr/local/mysql/bin</string>

и кажется, что весь этот блок неправильно отформатирован - то есть строковый элемент должен находиться внутри блока dict.

   <dict>
     <key>PATH</key>
   </dict>
     <string>/opt/local/bin:/usr/local/mysql/bin</string>

Таким образом, может быть любой из них. Хотелось бы, чтобы я понял это лучше, но, по крайней мере, сейчас это работает.

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