VirtualHost(カスタムサイト)の設定でハマる

以前も書きましたが、当方では、いくつかのサイトを VirtualHost で設定しています。今回もう一つ定義を追加するため

WEBサーバ管理

から、定義を追加したところ、すべてのサイトの AllowOverride が None に修正されてしまいました。WordPress は、パーマリンクに .htaccess を使うので .htaccess が無効にされすべてのページがリンク切れ状態に… まいった@_@。

サーバ的には、.htaccess など使わず、AllowOverride None で apache の設定ファイルに書けということでしょうかね?。このようなことがあるから楽々 GUI 設定もちょっと怖いなぁ。

リンク切れを報告して頂いた方、ありがとうございました。

4 Responses to “VirtualHost(カスタムサイト)の設定でハマる”

  1. wogawa より:

    はじめまして、いきなりの質問お許し下さい。
    MacOSXServerでwordpressを運用している方を
    検索していてこちらのページにたどり着きました。
    わたしもMacOSXServer10.6でwordpressを運用しようと
    準備を進めているのですが、パーマリンク設定の変更で困っております。
    パーマリンク設定を「デフォルト」の時は問題ないのですが
    「日付と投稿名」等に変更すると「404 Not Found」と出て
    表示されなくなってしまいます。

    wordpressのサイト等で調べた
    ・Apacheのmod_rewriteモジュール
     →「サーバー管理」でチェックされている
    ・.htaccess
     →ホームディレクトリにwordpressから自動に作成され
      パーマリンク設定を「デフォルト」から「日付と投稿名」に変更すると
      .htaccessの記述内容も変わる
    については、上記のような状態ですので
    とりあえず設定されているように思われます。

    MacOSXServerでwordpressを運用する場合には
    何か他に特殊な設定が必要なのでしょうか。
    ご存知でしたら、教えていただけませんでしょうか。

  2. macman より:

    wogawaさん、こんにちは。
    当サイトを参照して頂きありがとうございます。
    Apatche の設定で、WordPress を運用しているディレクトリに対して AllowOverride と RewriteEngine on の設定が
    できていますでしょうか。
    Mac mini Server はデフォルトで AllowOverride None に設定されてしまうため、.htaccess の設定が
    有効になりません。
    ちなみに当サイトの設定は以下の通りです。

    AllowOverride AuthConfig FileInfo Indexes Limit Options
    RewriteEngine On
    RewriteBase /Library/WebServer/lovemac
    # Options All +MultiViews -ExecCGI -Indexes -Includes
    # AllowOverride None
    Options -Indexes -ExecCGI -Includes

    ご確認ください。

  3. wogawa より:

    macman様
    丁寧なご回答、ありがとうございました。
    無事パーマリンク設定ができましたので
    経過をご報告させていただきます。

    まず、セオリー通り「httpd.conf」の初期設定の下に
    wordpressを運用しているディレクトリに関する設定を
    以下のように追加しましたが
    この状態では、まだパーマリンク設定は動きませんでした。
    〜ここから〜

    Options FollowSymLinks
    AllowOverride None

    AllowOverride AuthConfig FileInfo Indexes Limit Options
    RewriteEngine On
    RewriteBase /Library/WebServer/Sites/wordpress
    # Options All +MultiViews -ExecCGI -Indexes -Includes
    # AllowOverride None
    Options -Indexes -ExecCGI -Includes

    〜ここまで〜

    2〜3時間あれこれ設定を試してみましたがうまくいかず
    再インストール覚悟で、駄目元でいろいろいじくっていたところ
    /private/etc/apache2/sites/の中に
    カスタムサイトのための別途設定らしきものが入っているのを発見し
    「httpd.conf」に類似した「0000_(当サイトの設定名).conf」という
    ファイルが有り、その中に

    DAV Off

    Options All +MultiViews -ExecCGI -Indexes +Includes
    AllowOverride None

    という箇所があったのでこちらを変更することにしました。
    「httpd.conf」の設定を元通りにして「0000_(当サイトの設定名).conf」
    の方で、教えていただいた通り設定したところ
    無事、パーマリンク設定が動きました。

    MacOSXServerの場合、通常の/Library/WebServer/Documentsの下に
    設置しない「サーバー環境設定」や「サーバー設定」で作成した
    カスタムサイトのApacheの設定は「httpd.conf」ではなく
    別のファイルに記述されるということを知らなかったため
    設定に2日ほど費やしてしまいました。
    (これまで通常版のMacOSXでserverをやっていたの
    本家のMacOSXServer独自の違いに戸惑っております。)

    この度は、お世話になりました。

  4. macman より:

    上手くいってよかったです。詳細な経過報告ありがとうございました。
    Server 版ですと、/private/etc/apache2/sites/ の下にサイトの管理ファイルができると
    ファイルの位置も書いておけばよかった…。余計な手間をおかけしました。
    それから、サイト管理でサイトの情報を更新すると(例えばサイト管理画面から SSL(ポート443)など追加)
    勝手に /private/etc/apache2/sites/ 以下のファイルに AllowOverride None を上書きしてくるので
    (ちょっとムカつく仕様)いつかまた、パーマリンクがリンク切れになった時は、勝手に設定が上書きされて
    いないかご確認ください。-私は今日もそれで一時パーマリンク切れにしてしまった…

Leave a Reply