Невозможно обслуживать страницы в Mac OS X с использованием веб-сервера Apache по умолчанию - PullRequest
3 голосов
/ 21 февраля 2009

Я включил веб-сервер в Mac OS X (10.5.6), перейдя в «Системные настройки» -> «Интернет и сеть» -> «Общий доступ» и щелкнув по опции «Веб-сервер». Он дает мне IP-адрес моей системы в качестве веб-сервера, но даже после нажатия на него, он не показывает страницу, но выдает ошибку: Не удалось подключиться

Любая помощь в этом была бы прекрасна.

Я пробовал использовать MAMP, но там я не могу отобразить свои собственные страницы PHP.

Запуск и / или остановка веб-сервера из командной строки дает мне следующее:

dyld: Symbol not found: _apr_socket_sendfile
  Referenced from: /usr/sbin/httpd
  Expected in: /usr/lib/libapr-1.0.dylib

Trace/BPT trap

Файлы на моей коробке:

~ $ ls -lrt /usr/lib/libapr*
-rwxr-xr-x  1 root  wheel  578640 Sep 23  2007 /usr/lib/libapr-1.0.2.7.dylib
-rwxr-xr-x  1 root  wheel  393696 Sep 23  2007 /usr/lib/libaprutil-1.0.2.7.dylib
-rwxrwxr-x  1 root  admin  569544 Oct 27 10:44 /usr/lib/libaprutil-1.0.2.12.dylib
-rwxrwxr-x  1 root  admin  835824 Oct 27 10:44 /usr/lib/libapr-1.0.2.12.dylib
lrwxr-xr-x  1 root  admin      25 Jan  4 22:28 /usr/lib/libaprutil-1.dylib -> libaprutil-1.0.2.12.dylib
lrwxr-xr-x  1 root  admin      25 Jan  4 22:28 /usr/lib/libaprutil-1.0.dylib -> libaprutil-1.0.2.12.dylib
lrwxr-xr-x  1 root  admin      21 Jan  4 22:28 /usr/lib/libapr-1.dylib -> libapr-1.0.2.12.dylib
lrwxr-xr-x  1 root  admin      21 Jan  4 22:28 /usr/lib/libapr-1.0.dylib -> libapr-1.0.2.12.dylib

Значения MD5:

~ $ openssl md5 /usr/sbin/httpd /usr/lib/libapr-1.0.dylib 
MD5(/usr/sbin/httpd)= d5194790e9cfaca881d0e8fc3db24889
MD5(/usr/lib/libapr-1.0.dylib)= f7f7fd3cd315ca4e7c6ad2a2f222998e

libapr-1.0.dylib связан с более новой версией 1.0.2.12.

Ответы [ 8 ]

4 голосов
/ 03 мая 2009

У меня похожая проблема, и я попал на эту страницу, потому что сегодня мне повезло :) Ошибка означает, что двоичный файл httpd ссылается на символ, который не может быть найден в соответствующей динамически связанной библиотеке (в данном случае libapr, библиотека времени выполнения Apache)

Запуск той же версии OS X на iMac. /usr/lib/libapr-1.0.dylib указывает на самую последнюю версию библиотеки (1.0.2.12), которая не определяет метод / символ _apr_socket_sendfile

Другая версия библиотеки libapr - 1.0.2.7, имеет этот символ. Вместо этого у меня были символические ссылки, указывающие на эту версию (также для libaprutil):

// BEFORE (both 1.0.2.7 and 1.0.2.12 versions exist, symlinks point to .12)
bash-3.2# ls -l libapr*
-rwxr-xr-x  2 userna  wheel  835824 19 Sep  2008 libapr-1.0.2.12.dylib
-rwxr-xr-x  1 root    wheel  578640 24 Sep  2007 libapr-1.0.2.7.dylib
lrwxrwxrwx  1 root    wheel      21 14 Oct  2008 libapr-1.0.dylib -> libapr-1.0.2.12.dylib
lrwxrwxrwx  1 root    wheel      21 14 Oct  2008 libapr-1.dylib -> libapr-1.0.2.12.dylib
-rwxr-xr-x  2 userna  wheel  569544 19 Sep  2008 libaprutil-1.0.2.12.dylib
-rwxr-xr-x  1 root    wheel  393696 24 Sep  2007 libaprutil-1.0.2.7.dylib
lrwxrwxrwx  1 root    wheel      25 14 Oct  2008 libaprutil-1.0.dylib -> libaprutil-1.0.2.12.dylib
lrwxrwxrwx  1 root    wheel      25 14 Oct  2008 libaprutil-1.dylib -> libaprutil-1.0.2.12.dylib

// CHANGE symbolic links to previous version
bash-3.2# ln -sf libapr-1.0.2.7.dylib libapr-1.0.dylib
bash-3.2# ln -sf libapr-1.0.2.7.dylib libapr-1.dylib
bash-3.2# ln -sf libaprutil-1.0.2.7.dylib libaprutil-1.0.dylib
bash-3.2# ln -sf libaprutil-1.0.2.7.dylib libaprutil-1.dylib

// TESTing whether httpd is loaded and run
bash-3.2# /usr/sbin/httpd -t
Syntax OK

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

Надеюсь, это поможет;)
Jon

2 голосов
/ 12 июня 2009

Вы можете попробовать сделать следующее: 1. резервное копирование текущего apache

sudo cp /usr/sbin/httpd /usr/sbin/httpd.old

2. Заменить ссылку в двоичном файле apache на старую библиотеку:

sudo install_name_tool -change /usr/lib/libapr-1.0.dylib /usr/lib/libapr-1.0.2.7.dylib /usr/sbin/httpd

После того, как все заработает, как ожидается, другие приложения по-прежнему будут использовать новую версию libapr

2 голосов
/ 21 февраля 2009

Возможно, есть ошибки в конфигурации apache.

Если вы отключите веб-сервер в настройках системы и откроете терминал, вы можете проверить свою конфигурацию, набрав:

httpd -t

Если он дает «Синтаксис ОК», вы на один шаг ближе к работающему веб-серверу. Запустите веб-сервер вручную, набрав:

sudo httpd

Если ошибок нет, веб-сервер запускается. Откройте браузер и проверьте http://localhost. Иногда требуется дополнительное обновление (Ctrl + R).

Остановка сервера:

sudo httpd -k stop

Если запуск вручную работает, а версия Системных настроек - нет, Проверьте / var / log / apache2 / error_log на наличие ошибок.

1 голос
/ 11 мая 2009

Вы установили клиент Subversion 1.5 на свою машину? Я вижу ту же проблему, и кажется, что до этого. /usr/lib/libapr-1.0.dylib обычно связан с /Developer/SDKs/MacOSX10.5.sdk/usr/lib/libapr-1.0.2.7.dylib, но если вы установите svn 1.5, он снова будет связан с / opt /subversion/lib/libapr-1.0.2.12.dylib.

Версия библиотеки 1.0.2.12 не содержит символа _apr_socket_sendfile.

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

Doug

1 голос
/ 21 февраля 2009

http://foundationphp.com/tutorials/php_leopard.php

Я следовал за этим на своем, и он отлично работает.

Попытайтесь следовать ему, посмотрите, работает ли он

1 голос
/ 21 февраля 2009

Если вы пытаетесь получить доступ к страницам с самого компьютера, просто используйте http://localhost/. Также попробуйте ввести IP-адрес в браузер (вместо того, чтобы просто щелкнуть ссылку в интерфейсе); не проси меня объяснить почему, но я видел, что это меняет дело.

Также убедитесь, что брандмауэр ОС настроен на разрешение подключений к Apache. «Персональный веб-обмен» должен быть проверен.

0 голосов
/ 11 марта 2009

Звучит так:

  1. httpd, который стоит первым на вашем пути, это не / usr / sbin / httpd, и он был странным образом построен, или

  2. Вы установили что-то, что перезаписало httpd или libapr.

Что такое MD5 вашего httpd и libapr? Я получаю:

$ openssl md5 /usr/sbin/httpd /usr/lib/libapr-1.0.dylib 
MD5(/usr/sbin/httpd)= d5194790e9cfaca881d0e8fc3db24889
MD5(/usr/lib/libapr-1.0.dylib)= f1f5ece10140a5c2cea2fece7a9e4918
0 голосов
/ 26 февраля 2009

Тупой вопрос. Существует ли libapr-1.0.dylib?

На моем Macbook /usr/lib/libapr-1.0.dylib является символической ссылкой на libapr-1.0.2.7.dylib.

Запуск nm для этого файла показывает, что в этой библиотеке определен apr_socket_sendfile.

Также: нормально ли работают стандартные html-страницы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...