Apachectl“服务已经加载”,当它不是

时间:2018-01-18 11:52:08

标签: apache unix terminal localhost httpd.conf

我正在尝试了解终端和服务器。我正在学习一门课程,在本课程中它说明你可以使用以下命令启动和停止服务器apache(在mac上):

sudo apachectl start

但是,当我这样做时,它会返回一条消息,说apache已经在运行。完整的信息:

/System/Library/LaunchDaemons/org.apache.httpd.plist: service already loaded

Apache显然没有运行:

ps aux | grep httpd

不会返回任何活动。

我希望这与我所遵循的课程是为优胜美地而且我正在经营El Capitan这一事实有关。我对这个问题了解不多,我正在努力学习,但如果我甚至无法启动服务器,我甚至无法遵循该课程。

有人可以帮忙吗?

谢谢,

P

编辑---------------------------------------------- -----------------------

<?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>Disabled</key>
        <true/>
        <key>Label</key>
        <string>org.apache.httpd</string>
        <key>EnvironmentVariables</key>
        <dict>
                <key>XPC_SERVICES_UNAVAILABLE</key>
                <string>1</string>
        </dict>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/sbin/httpd-wrapper</string>
                <string>-D</string>
                <string>FOREGROUND</string>
        </array>
        <key>OnDemand</key>
        <false/>
</dict>
</plist>

3 个答案:

答案 0 :(得分:1)

可能是配置错误。运行以下命令并修复所有错误

sudo apachectl configtest

答案 1 :(得分:0)

尝试

i = (data[3]<<0) | (data[2]<<8) | (data[1]<<16) | (data[0]<<24);

这可能是检查Apache状态的最佳方法。

答案 2 :(得分:0)

你能试试下面的

吗?
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
sudo apachectl stop
sudo apachectl start