Pukiwiki Adv. インストール後、403 が返される
メッセージ
■環境 ・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
- 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?