5

MAMP が Apache の「ドキュメント ルート」への変更を有効にできない理由を見つけ、この問題を解決するための助けを求めています。元の申請書のこの 2 番目の編集には、解決策の認識に役立つ可能性のある実質的な追加情報が含まれています。

Apache は最近、Apache httpd.conf の「メイン」サーバー構成セクションにある「DocumentRoot」ディレクティブの変更に応答しなくなりました。Apache は引き続き正常に動作しますが、'DocumentRoot' の 1 つの以前の設定に固執したままです。この問題の原因を突き止め、修正していただけると助かります。

Lion を搭載した 2011 年初頭の MacBookPro で Apache 2.0.64 を実行しています。便宜上、Apache 2.0.64 を含む MAMP 2.0.5 内で作業しています。私は、異なるパスの下の異なるディレクトリにある複数の Web サイトを開発してきました。これらのパスとディレクトリ間で localhost を切り替えるために、私は通常、MAMP (MAMP Pro ではない) GUI の一連のアクション
'Preferences...' > 'Apache' > 'Document Root' > 'Select...'を使用
して、2 つのパスを切り替えました。 .

1 週間ほど前に、この GUI スイッチの背後にある設定またはプロセスが、パスの 1 つ (簡単にするために「パス p」) で停止しました。GUI 自体はスタックしていません。パス p とパス q の間を行き来するかのように、「ドキュメント ルート」を表示します。ただし、パス p の下のサイトのみが localhost/path で実行されます。「ドキュメント ルート」の MAMP 設定をパス q に切り替えてから、localhost サイト q を実行しようとすると、問題が最初に発生する前に問題なく実行されていたにもかかわらず、q は実行されません。ただし、パス p を介してアクセスできるサイトは引き続き実行されます。

MAMP GUI の裏側を見ると、「phpinfo」は、「DOCUMENT_ROOT」が phpinfo の「Apache Environment」セクションの「path q」に変更され、「PHP Variables」セクションの「_SERVER("DOCUMENT_ROOT")」にも変更されていることを報告しています。MAMP の「Document_Root」設定を変更すると、TextWrangler を使用してリアルタイムで「httpd.conf」の設定が更新されるのを見ることができます。

Mac の「Activity Monitor」は、7 つの「httpd」プロセスが実行中であることを示しています。「検査」を使用すると、それらすべてが MAMP 内で実行されていることが示されます。Mac の「Spotlight」で httpd.conf を検索すると、上記の「httpd.conf」ファイルが 1 つだけ見つかります。

MAMP/logs/apache_error.log を介してアクセスされる関連エラー メッセージは常に (タイムスタンプを除く):

-- 通常運用の再開 [Sun Apr 22 2012 12:34:22] [お知らせ] SIGTERM をキャッチ、シャットダウン [Sun Apr 22 12:34:24 2012] [お知らせ] Digest: ダイジェスト認証用のシークレットの生成 ... [Sun [2012 年 4 月 22 日 12:34:24] [お知らせ] ダイジェスト: 完了 [2012 年 4 月 22 日 12:34:24] [お知らせ] Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2 PHP/5.3.6 が構成されました -- 通常の操作を再開します

私がこれを正しく理解している場合、実行中の Apache のバージョンは Apache 2.0.64 ではなく 2.2.21 であり、MAMP の FAQ ページ (GUI の [スタート ページを開く] ボタンから開いた Web 画面にアクセスするタブとして表示されます) は、インストール済みバージョン。

コンソールの一般エラー ログの対応するエラー メッセージは次のとおりです。

4/21/12 9:40:27.746 PM [0x0-0xcd0cd].de.appsolute.MAMP: 120421 21:40:27 mysqld_safe pid ファイルからの mysqld /Applications/MAMP/tmp/mysql/mysql.pid 終了 4/21 /12 9:40:28.653 PM [0x0-0xcd0cd].de.appsolute.MAMP: 警告: DocumentRoot [/Applications/MAMP/Library/docs/dummy-host2.example.com] が存在しません 4/21/12 9 :40:28.721 PM [0x0-0xcd0cd].de.appsolute.MAMP: 120421 21:40:28 mysqld_safe '/Applications/MAMP/logs/mysql_error_log.err' へのログ。4/21/12 9:40:28.871 PM [0x0-0xcd0cd].de.appsolute.MAMP: 120421 21:40:28 mysqld_safe /Applications/MAMP/db/mysql 4/21/12 9 からのデータベースで mysqld デーモンを開始する:40:29.799 PM [0x0-0xcd0cd].de.appsolute.MAMP: 警告: DocumentRoot [/Applications/MAMP/Library/docs/dummy-host2.example.com] が存在しません

日付と時刻を除いて、これらのメッセージは、MAMP から 'DocumentRoot' への変更に対して同じままです。これらのメッセージには有用な情報を認識できません。

この問題が発生する直前に、MySQL サーバーの問題を修正するために MAMP を再インストールしました。MAMP で MySQL サーバーをデバッグしようとしているときに、私とより熟練したコンピューター科学者が MacPorts もインストールしました。

おそらくMAMP 2.0.5に付属していたと思われるバージョン2.0.64ではなく、MAMPが実際にApacheのバージョン2.2.21を開いている可能性があります。これはMacPortsによってインストールされた可能性があります。しかし、MAMP のその部分は依然として Apache 2.0.64 が運用バージョンであるかのように機能します。これが本当なら、すぐに解決策につながるかもしれませんが、MAMP や Apache がこれを実行するためにどのように機能するかについては十分に知りません。

オンラインのアドバイスを広く検索し、WordPress を複数のユーザー向けにフォーマットするための提案をテストし、'etc/hosts' を変更して試しましたが、現在はデフォルト値に復元されています。関連する Web サイトのほとんどは、XHTML、PHP、および CSS でハードコーディングされています。いくつかは WordPress を使用しています。

この問題を質問 #10252067 として「スタック オーバーフロー」に投稿した翌日、まだ応答がありませんでした。以前のバージョンのこのクエリを、PHP が機能しないことに関する MAMP フォーラム スレッドに追加しました。その投稿はまだ公開されておらず、審査中の可能性があります。問題を詳しく見ていくと、httpd.conf と対話する MAMP インターフェイスの部分が正常に動作している可能性があり、問題は httpd が httpd の設定を読み取って解釈する方法に関連している可能性があるようです。 conf、またはMAMPがApacheのいくつかの可能なバージョン間で認識して対話する方法に。

Apache の「DocumentRoot」設定を実装する際のこの失敗を解決するためのガイダンスをいただければ幸いです。

4

8 に答える 8

14

同じ症状があり、次の行がコメント解除されていることを発見して解決しました

/Applications/MAMP/conf/apache/httpd.conf ファイル:

# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

これは、私の前に私のコンピューターを使用していた人が、Zend Framework 2 で動作するように MAMP をセットアップし、DocumentRoot 設定をオーバーライドする仮想ホストをセットアップしたためです。その行に再度コメントしたところ、環境設定の DocumentRoot が期待どおりに機能するようになりました。

于 2014-02-22T02:42:01.347 に答える
2

Apache の「ドキュメント ルート」を変更しても効果がない場合の MAMP の修正

  1. MAMPをやめる
  2. ターミナルを開き、次のように入力します。sudo killall -9 httpd
  3. MAMPを再起動

MySQL が起動していないときの MAMP の修正

  1. MAMPをやめる
  2. ターミナルを開き、次のように入力します。sudo killall -9 mysqld
  3. MAMPを再起動
于 2013-02-05T23:42:49.803 に答える
1

それは古い質問ですが、今日この問題に遭遇しました。私はこのようにそれを解決しました:

1) MAMP を閉じる

"/Applications/MAMP/conf/apache/http.conf"2)テキスト エディターで開き、次のようなものがあるかどうかを確認します。

....

<VirtualHost *>
DocumentRoot "/Applications/MAMP/htdocs"
ServerName localhost
</VirtualHost>

....

3) DocumentRoot の後の文字列を新しいパスに置き換えます。

基本的に、仮想ホストのパスを手動で変更する必要があります

于 2014-07-23T09:56:06.947 に答える
0

私は問題を解決しました:

  • MAMPでサーバーを停止します
  • アクティビティモニターですべての httpd プロセスを強制終了します
  • MAMPでサーバーを起動する

これはこれまでのところ私にとってはうまくいきます。それ以外の場合はなぜ機能しないのか説明できません。

于 2012-09-06T21:50:44.950 に答える
0

apache/conf/extras/httpd-conf.conf を確認してください

間違った DocumentRoot がありました

<VirtualHost *:80>
    DocumentRoot /Users/..../..
    ServerName localhost
</VirtualHost>
于 2015-10-24T17:55:09.820 に答える
0

パーティーに遅れましたが、同様の問題を抱えていたことに注意したかった. 私の場合、私は編集していました:

/Applications/MAMP/conf/apache/original/httpd.conf

私が編集していたはずのとき:

/Applications/MAMP/conf/apache/httpd.conf

かなりばかげたエラーですが... 45分が無駄になりました

于 2015-06-01T18:54:16.703 に答える