macos - 无法使用默认 Apache Web 服务器在 Mac OS X 上提供页面服务

标签 macos

我已通过转至系统偏好设置 -> Internet 和网络 -> 共享并单击 Web 服务器选项,在 Mac OS X (10.5.6) 上启用了 Web 服务器。它为我提供了作为 Web 服务器的系统的 IP 地址,但即使单击它后,它也不会显示该页面,而是给出错误:无法连接

对此的任何帮助都会很棒。

我尝试过使用 MAMP,但是我无法显示我自己的 PHP 页面。

从命令行启动和/或停止 Web 服务器,给出以下内容:

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 版本。

最佳答案

我遇到了类似的问题并进入了此页面,因为我今天感到很幸运:) 该错误意味着 httpd 二进制文件引用了在适当的动态链接库(在本例中为 libapr,Apache 运行时库)中找不到的符号

在 iMac 上运行相同的 OS X 版本。/usr/lib/libapr-1.0.dylib 指向该库的最新版本(1.0.2.12),它没有定义方法/符号 _apr_socket_sendfile

libapr 库的另一个版本是 1.0.2.7,确实有该符号。我有指向此版本的符号链接(symbolic link)(也适用于 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 Web Server 的软件更新以来这是否已被破坏,我很少在此机器上使用它。

希望有帮助;)
乔恩

关于macos - 无法使用默认 Apache Web 服务器在 Mac OS X 上提供页面服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/573067/

相关文章:

python - 在 Mac (OS X 10.11.1) 上安装 mrjob 时出错

c - 在 Cocoa/Objective-C/C 中编写 DLNA 服务器 (DMS)

linux - 如何在不将本地 RSA key 放在各处的情况下进行多跳 ssh

xcode - 像 zip 一样组合文件夹和文件

mysql - 使用 MySQL 在 Apache2 中配置身份验证和授权

macos - 在 Mac 上安装 DataPusher 后,ckan 网站出现不可逆、可重现的崩溃

macos - 您没有/Library/Ruby/Gems/2.3.0 目录的写权限。 (mac 用户)

java - 为什么我在使用 --option 运行时进行协同设计后无法启动 Java 应用程序

macos - 如何在输出前的 bash 命令后添加新行

c++ - 如何在从 Linux 移植的 C++ 项目中使用 Open GL