0

Mac で Apache を起動したい。にチェックインして Web 共有を有効にするとsystem prefs -> web sharing、Apache が動作します。しかし、ターミナルでコマンドを入力するとsudo apachectl start、Apache が起動しません。この場合、http://localhostSafari で実行すると、常にThe requested URL / was not found on this server.In both cases, I used the default httpd.conf.

したがって、Mac 自体のグラフィカルな構成ウィンドウではなく、端末にコマンドを入力して Apache を起動し、Mac で動作させるにはどうすればよいですか? 私は端末でコマンドを実行することを好みます。

ありがとうございました。

4

1 に答える 1

1

それを理解してください。ポイントは/etc/apache2/httpd.confの言葉からです:

The <IfDefine> blocks segregate server-specific directives and also directives that only apply when Web Sharing or server Web Service (as opposed to other services that need Apache) is on. The launchd plist sets appropriate Define parameters.

MacでのWeb 共有(システム設定 -> Web 共有)のアクションは、本来、最初に起動plistして適切なDefineパラメータを設定し、次に を呼び出しますapachectl。httpd.conf を読むと<IfDefine xxxx>yyyyy</IfDefine>、plist のパラメータに基づいて、ファイルがいくつかのセクションで構成されていることがわかります。

sudo apachectl startLinux で通常行うようにターミナルでコマンドを呼び出すと、 [plist からパラメーターを定義] を設定できません。httpd は起動していますが、適切に構成されていません。たとえば、私の場合DocumentRootは、パラメータが

<IfDefine !MACOSXSERVER>
<IfDefine WEBSHARING_ON>
    DocumentRoot "/Library/WebServer/Documents"
</IfDefine>
</IfDefine>

これが、エラー ログに[error] [client 192.168.1.2] File does not exist: /usr/htdocs. /usr/htdocs に関しては、どの構成ファイルにも設定されていませんが、Apache でハードコーディングされています。それは探すべき「最終手段」の場所です。

#<IfDefine !MACOSXSERVER>and#<IfDefine WEBSHARING_ON>と 2 つをコメントすると、ターミナル#</IfDefine>で呼び出さsudo apachectl startれます。その後、すべてがOKです。

最終的にこれを正すのに丸一日かかりました。Linux に慣れていて、特に私のように端末でコマンド ラインを使用し、Mac に移行することを好む人にとって役立つことを願っています。

于 2012-11-17T11:13:57.883 に答える