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」設定を実装する際のこの失敗を解決するためのガイダンスをいただければ幸いです。