Pukiwiki Adv. インストール後、403 が返される

  • ページ: BugTrack
  • 投稿者: hoya?
  • 優先順位: 低
  • 状態: 完了
  • カテゴリ:
  • 投稿日:
  • バージョン: 1.0.3

メッセージ

■環境 ・OS: CentOS 6.4 64bit(さくらVPS) ・Apache: 2.2.15 ・PHP: 5.4.16

以下手順で Pukiwiki Adv. v1.0.3 をインストールしましたが、pukiwiki にアクセスしても403 が返されます。 正常にアクセスするために、以下手順以外に何か設定が必要でしょうか。

(1)Pukiwiki Adv. 資材を /var/www/html 以下に配置し、アクセス権を修正

(2) Pukiwiki Adv. の .htaccess を有効化 Directory "/var/www/html" ディレクティブ中の AllowOverride 要素を以下のように変更

  • AllowOverride None
  1. AllowOverride All

(3)SELinux が無効であることを確認 Disabled

(4) Apache の再起動 root 1302 0.0 0.5 262756 9712 ? Ss 10:30 0:00 /usr/sbin/httpd apache 1304 0.0 0.3 263068 6632 ? S 10:30 0:00 /usr/sbin/httpd apache 1305 0.0 0.3 263068 6632 ? S 10:30 0:00 /usr/sbin/httpd apache 1306 0.0 0.3 263068 6632 ? S 10:30 0:00 /usr/sbin/httpd ... 以下略

上記設定後、ブラウザで http://<mydomain>/ にアクセスしたところ以下のように表示されます。


Forbidden

You don't have permission to access /webroot/ on this server.


アクセス時、apache のエラーログ(/var/log/httpd/error_log)には何も表示され ません。

[補足] /var/www/html/index.html や、/var/www/test/index.html を配置した場合はアクセスできます。


  • apacheのmod_rewriteが有効になっていないように見えます。そのまま展開した場合、/pukiwiki/webroot/でアクセスしてみてください。なお、パッケージに含まれるwebrootディレクトリ内のもの以外は、外部から見えないところに置きましょう。 -- Logue?
  • 早々にお返事いただきありがとうございます。
    apacheのmod_rewriteが有効になっていないように見えます。mod_rewrite の確認をしたところ、有効であると考えています。# httpd -M | grep rewriteSyntax OK rewrite_module (shared)# cat /etc/httpd/conf/httpd.conf | grep rewriteLoadModule rewrite_module modules/mod_rewrite.soまた、資材を展開した直下及び、webroot 直下の .htaccess をそれぞれシンタックスエラーをさせたところ、Internal Server Error が返り、error_log にも Invalid command と出ているため、.htaccess は読込めているようです。
    そのまま展開した場合、/pukiwiki/webroot/でアクセスしてみてください。これは http://<mydomain>/pukiwiki/webroot/ にアクセスすると、ブラウザ上では以下のようなメッセージとなりました。
    ForbiddenYou don't have permission to access /webroot/pukiwiki/webroot on this server.そうではなく、/var/www/html/pukiwiki に資材を展開、ということでしょうか。
    /var/www/html/pukiwiki ディレクトリを作成し、展開した資材をここに移動、pukiwiki ディレクトリの所有権を apache:apache に、パーミッションを 755 にした上で http://<mydomain>/pukiwiki/webroot/ にアクセスすると、ブラウザ上では以下のようなメッセージとなりました。
    ForbiddenYou don't have permission to access /pukiwiki/webroot/ on this server.なお、パッケージに含まれるwebrootディレクトリ内のもの以外は、外部から見えないところに置きましょう。承知しました。ただ、恐縮ですがなにぶん apache-php に疎く、同時に変更すると混乱してしまいそうなので、/var/www/html 以下で見られるようになったら /var/www/pukiwiki や /opt/pukiwiki などとし、Alias もしくは VirtualHost にしてみたいと思います。
    -- hoya?
  • 早々にお返事いただきありがとうございます。
    apacheのmod_rewriteが有効になっていないように見えます。mod_rewrite の確認をしたところ、有効であると考えています。# httpd -M | grep rewriteSyntax OK rewrite_module (shared)# cat /etc/httpd/conf/httpd.conf | grep rewriteLoadModule rewrite_module modules/mod_rewrite.soまた、資材を展開した直下及び、webroot 直下の .htaccess をそれぞれシンタックスエラーをさせたところ、Internal Server Error が返り、error_log にも Invalid command と出ているため、.htaccess は読込めているようです。
    そのまま展開した場合、/pukiwiki/webroot/でアクセスしてみてください。これは http://<mydomain>/pukiwiki/webroot/ にアクセスすると、ブラウザ上では以下のようなメッセージとなりました。
    ForbiddenYou don't have permission to access /webroot/pukiwiki/webroot on this server.そうではなく、/var/www/html/pukiwiki に資材を展開、ということでしょうか。
    /var/www/html/pukiwiki ディレクトリを作成し、展開した資材をここに移動、pukiwiki ディレクトリの所有権を apache:apache に、パーミッションを 755 にした上で http://<mydomain>/pukiwiki/webroot/ にアクセスすると、ブラウザ上では以下のようなメッセージとなりました。
    ForbiddenYou don't have permission to access /pukiwiki/webroot/ on this server.なお、パッケージに含まれるwebrootディレクトリ内のもの以外は、外部から見えないところに置きましょう。承知しました。ただ、恐縮ですがなにぶん apache-php に疎く、同時に変更すると混乱してしまいそうなので、/var/www/html 以下で見られるようになったら /var/www/pukiwiki や /opt/pukiwiki などとし、Alias もしくは VirtualHost にしてみたいと思います。
    -- hoya?
  • みたところ、Apacheの設定が間違っているように見えます。/var/wwwをDocumentRootにしているならば
    /var
      + wiki-data/
      + wiki-common/
      + www/ (wwwrootをwwwにリネーム)
      |  +index.php
      + ..
    のように設置したほうがいいですね。(chownコマンドを連発しなければならなさそうですが) -- Logue?
  • DocumentRoot はデフォルトの /var/www/html だったので、以下のように配置しました。

    # tree -L 1 /var/www/
    /var/www/
    ├── html
    ├── wiki-common
    ├── wiki-data
    ├── ...

    html の下に webroot の中身を移動
    # tree -L 1 /var/www/html/
    /var/www/html/
    ├── index.php
    ├── ...

    この状態で http://<mydomain> にアクセスしても Apache のデフォルトの index.html が表示されます。

    http://<mydomain>/index.php にアクセスした場合は、以下が表示されます。
    ---ForbiddenYou don't have permission to access /index.php on this server.---試しに、/etc/httpd/conf/httpd.conf 中の AllowOverride を All から None に戻すと、Pukiwiki Adv. のトップページが問題なく表示されるのですが、webroot中(今は DocumentRoot 直下)の .htaccess の内容が読込まれず、例えば $static_url =1 であっても http://<mydomain>/FrontPage でアクセスできません(?FrontPage なら大丈夫です)。 -- hoya?
  • Apacheはリセットしましたか? -- Logue?
  • Apacheはリセットしましたか?
    はい、AllowOverride を変更後は Apache を再起動しています(/etc/init.d/httpd restart)。 -- hoya?
  • Apacheの種類によって$static_uriが正常に動作しないことは確認しています。その場合は、$url_suffixの値を.htmlや/にしてください。その場合、htaccessのrewriteの設定も変える必要があります。 -- Logue?
  • wiki-data/pukiwiki.ini.php の $url_suffix の値を以下のように変更しましたが、状態は変わらずでした(http://<mydomain> にアクセスしても Apache のデフォルトの index.html が表示され、http://<mydomain>/ 以下のリソースへのアクセスはすべて 403)。

    [共通設定]
    AllowOverride All

    [$url_suffix = '.html' に変更した場合]
    .htaccess の rewrite 設定部分(60行目付近)に以下行を追加
    RewriteRule ^(.+)\.html$ index.php?$1 [L]

    [$url_suffix = '/' に変更した場合]
    .htaccess の rewrite 設定部分(60行目付近)に以下行を追加
    RewriteRule ^/(.+)/$ /index.php?$1 [L]


    並行して nginx の導入も考えてみたいと思います。 -- hoya?
  • nginx1.4.1 + php-fpm5.4.16 の組み合わせで $static_url = 1 の設定がうまくいくことを確認しました。

    Apache を利用しなければいけない状況ではないため、このまま nginx で運用していこうかと考えていますので、このチケットはクローズいただいても問題ありません。大変お手数をおかけいたしました。ご対応ありがとうございます。 -- hoya?