获取在 mac OS X Yosemite 上运行的 localhost

Posted

技术标签:

【中文标题】获取在 mac OS X Yosemite 上运行的 localhost【英文标题】:Get localhost running on mac OS X Yosemite 【发布时间】:2014-12-14 18:10:24 【问题描述】:

我已将我的操作系统更新为优胜美地,唯一的问题是我的本地主机不再工作。如果这些问题听起来很愚蠢,但我对服务器的了解有限,请原谅。

对于 Mavericks,我可以在系统启动后立即使用 localhostcustomdomain.dev。我的 mysql 服务器也已启动,没有任何操作

现在谷歌浏览器在使用 localhost 时会抛出 ERR_CONNECTION_REFUSED 错误。

我跑

apachectl configtest

返回

httpd: Syntax error on line 58 of /private/etc/apache2/httpd.conf: Cannot load libexec/apache2/mod_authn_default.so into server: dlopen(/usr/libexec/apache2/mod_authn_default.so, 10): image not found

如果我注释掉这一行,它会继续使用其他模块。当我注释掉导致此语法错误的所有模块时,我得到

AH00526: Syntax error on line 131 of /private/etc/apache2/httpd.conf:
Invalid command 'User', perhaps misspelled or defined by a module not included in the server configuration

我正在使用 Mavericks 的 httpd.conf 文件(一切正常)

我不知道下一步该怎么做

【问题讨论】:

不确定如何使用apachectl,但我真的很喜欢 MAMP,免费版 (mamp.info/en)。非常适合在本地运行 Apache 服务器。 我不喜欢每次启动计算机时都启动应用程序 - 它以前可以运行,为什么现在不行? 尝试备份您的sites_available 文件夹并重新安装。问题是否仍然存在? @Qix 抱歉,我该怎么做? 我收到错误 apachectl configtest AH00558: httpd: 无法可靠地确定服务器的完全限定域名,使用 buildserver.local。全局设置“ServerName”指令以禁止显示此消息,如何解决此问题? 【参考方案1】:

您是否保留了升级前的原始 httpd.conf?您可能需要编辑 httpd.conf 中的模块

我发现 Yosemite 附带了 Apache 升级。显然,从 Apache 2.2 到 2.4 有几个与身份验证相关的更改。我不得不反复运行sudo apachectl configtest 来显示要删除的模块。

然后,我不得不添加一些模块。我的模块现在看起来像这样:

LoadModule authn_file_module libexec/apache2/mod_authn_file.so
LoadModule authn_dbm_module libexec/apache2/mod_authn_dbm.so
LoadModule authn_anon_module libexec/apache2/mod_authn_anon.so
LoadModule authn_dbd_module libexec/apache2/mod_authn_dbd.so
#LoadModule authn_default_module libexec/apache2/mod_authn_default.so
LoadModule authn_core_module libexec/apache2/mod_authn_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule authz_groupfile_module libexec/apache2/mod_authz_groupfile.so
LoadModule authz_user_module libexec/apache2/mod_authz_user.so
LoadModule authz_dbm_module libexec/apache2/mod_authz_dbm.so
LoadModule authz_owner_module libexec/apache2/mod_authz_owner.so
#LoadModule authz_default_module libexec/apache2/mod_authz_default.so
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule auth_basic_module libexec/apache2/mod_auth_basic.so
LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so
LoadModule cache_module libexec/apache2/mod_cache.so
#LoadModule disk_cache_module libexec/apache2/mod_disk_cache.so
#LoadModule mem_cache_module libexec/apache2/mod_mem_cache.so
LoadModule dbd_module libexec/apache2/mod_dbd.so
LoadModule dumpio_module libexec/apache2/mod_dumpio.so
LoadModule reqtimeout_module libexec/apache2/mod_reqtimeout.so
LoadModule ext_filter_module libexec/apache2/mod_ext_filter.so
LoadModule include_module libexec/apache2/mod_include.so
LoadModule filter_module libexec/apache2/mod_filter.so
LoadModule substitute_module libexec/apache2/mod_substitute.so
LoadModule deflate_module libexec/apache2/mod_deflate.so
LoadModule log_config_module libexec/apache2/mod_log_config.so
LoadModule log_forensic_module libexec/apache2/mod_log_forensic.so
LoadModule logio_module libexec/apache2/mod_logio.so
LoadModule env_module libexec/apache2/mod_env.so
LoadModule mime_magic_module libexec/apache2/mod_mime_magic.so
#LoadModule cern_meta_module libexec/apache2/mod_cern_meta.so
LoadModule expires_module libexec/apache2/mod_expires.so
LoadModule headers_module libexec/apache2/mod_headers.so
#LoadModule ident_module libexec/apache2/mod_ident.so
LoadModule usertrack_module libexec/apache2/mod_usertrack.so
#LoadModule unique_id_module libexec/apache2/mod_unique_id.so
LoadModule setenvif_module libexec/apache2/mod_setenvif.so
LoadModule version_module libexec/apache2/mod_version.so
LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so
LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so
LoadModule proxy_scgi_module libexec/apache2/mod_proxy_scgi.so
LoadModule proxy_ajp_module libexec/apache2/mod_proxy_ajp.so
#LoadModule proxy_balancer_module libexec/apache2/mod_proxy_balancer.so
LoadModule ssl_module libexec/apache2/mod_ssl.so
LoadModule mime_module libexec/apache2/mod_mime.so
LoadModule dav_module libexec/apache2/mod_dav.so
LoadModule status_module libexec/apache2/mod_status.so
LoadModule autoindex_module libexec/apache2/mod_autoindex.so
LoadModule asis_module libexec/apache2/mod_asis.so
LoadModule info_module libexec/apache2/mod_info.so
LoadModule cgi_module libexec/apache2/mod_cgi.so
LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
LoadModule negotiation_module libexec/apache2/mod_negotiation.so
LoadModule dir_module libexec/apache2/mod_dir.so
LoadModule imagemap_module libexec/apache2/mod_imagemap.so
LoadModule actions_module libexec/apache2/mod_actions.so
LoadModule speling_module libexec/apache2/mod_speling.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule alias_module libexec/apache2/mod_alias.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
#LoadModule perl_module libexec/apache2/mod_perl.so
#LoadModule php5_module libexec/apache2/libphp5.so
LoadModule unixd_module libexec/apache2/mod_unixd.so
LoadModule access_compat_module libexec/apache2/mod_access_compat.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so

你会看到我注释掉了一些。有几个新的。两个_core_unixd_moduleaccess_compat_module 是新的。不要介意看起来很奇怪的 PHP 模块。那是来自 Homebrew 的 PHP。

我还必须删除httpd-mpm.conf 中的LockFile 指令。还有httpd-vhosts.conf 中的NameVirtualHost 指令。

我希望这会有所帮助。

【讨论】:

感谢您的提示。我将/etc/apache2/original/httpd.conf 复制到/etc/apache2/httpd.conf 并且服务器再次工作。我必须再次根据需要重新配置该文件,但这不是问题。谢谢! 在出现此问题时后悔升级到优胜美地。 10分钟后,问题解决。溢出有福了…… 谢谢你;我今天失去了解决这个问题的意愿。最后,我还必须添加:(1)LoadModule authz_core_module libexec/apache2/mod_authz_core.so 来处理错误消息Invalid command 'Require', perhaps misspelled or defined by a module not included in the server configuration。参见:***.com/questions/18844338/… (2) 来自mac-dev-env.patrickbougie.com/apache的“配置文件”部分 太棒了——我所要做的就是删除 php 文件!【参考方案2】:

除了Stephen Farmers 非常好的答案。我还必须再添加一个模块。

LoadModule slotmem_shm_module libexec/apache2/mod_slotmem_shm.so

否则 apaches 日志中会充满如下消息:

[proxy_balancer:emerg] [pid 25593] AH01177: Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??

它不会启动。

现在工作正常。

Link to Apaches bugzilla report of this

【讨论】:

我认为注释掉 proxy_balancer_module 为我解决了这个问题。不完全确定。我没有在我的开发机器上使用负载均衡器。【参考方案3】:

添加此模块似乎可以解决:无效命令“用户”

LoadModule unixd_module modules/mod_unixd.so

【讨论】:

【参考方案4】:

由于 Mac OSX 10.10 Yosemite 之前位于设置 -> 共享中的 Web Sharing 选项不复存在,现在需要手动配置。

检查此链接: http://ole.michelsen.dk/blog/setup-local-web-server-apache-php-osx-yosemite.html

【讨论】:

以上是关于获取在 mac OS X Yosemite 上运行的 localhost的主要内容,如果未能解决你的问题,请参考以下文章

如何在Mac OS X Yosemite上安装 jdk 1.6 开发环境

mac os x yosemite下如何编译milton?

sh 在Mac OS X Yosemite黑暗菜单栏上修复Google相册备份图标

Ruby cairo gem 无法在 Mac OS X Yosemite 上安装

在 Mac OS X Yosemite 10.10 上使用 Mamp Pro 进行 Mcrypt

如何在Mac OS X上安装 Ruby运行环境