Htaccess

提供: GeeklogJpWiki

[2]インストール > Geeklogをインストールしよう > サーバ環境を設定 > .htaccessの設定

目次

.htaccessの設定

.htaccessの設定は慎重に行ってください。サイトがみれなくなるなど、重大な事故を引き起こすことがあります。.htaccessは、標準パッケージで提供していません。サイトの環境に合わせて、個々に設定を行ってください。サーバによってはこの機能が使えません。また、ファイル名は必ずしも.htaccessではありません。

以下は、.htaccessの一例です。

# 日本語環境設定
php_value default_charset UTF-8 
php_value mbstring.language Japanese 
php_value mbstring.internal_encoding UTF-8 
php_flag mbstring.encoding_translation OFF 
php_value mbstring.http_input auto 
php_value mbstring.http_output pass 
php_flag magic_quotes_runtime Off
php_flag magic_quotes_gpc Off

#ファイルがみつからない場合のページを指定する。
ErrorDocument 404 /404.php

# サイトの安全のため、register_globals Offを設定 併せてtrack_vars Onにする。
php_flag register_globals Off
php_flag track_vars On

# ディレクトリインデックスを指定する。
DirectoryIndex index.php index.html

# エラー表示OFF(表示したい場合は On に切り替えてください)
php_flag display_errors Off

# エラーログファイル指定
php_value error_log "/(サーバーのパス)/logs/php_error.log"

詳しくは、設置条件を参照。

エラー表示を隠す

Geeklogを運用していると、時に想定外の入力データやソフトウェアのバグのせいで、画面上にエラーメッセージが表示され、重要なファイルのパスが表示されてしまうことがあります。

Geeklogの設置が完了し、エラーの表示が不要になったら、サイトの公開前に、エラー表示を非表示にしてください。クラッカーに手がかりを与えないためにも、エラーを表示させないようにしましょう。

エラーログを記録する方法

エラーの内容は、logファイルのエラーファイルに書き出すよう設定します。エラーファイルはあらかじめ書き込みできるよう空ファイルを作成し、パーミッションを(666)などに変更しておきます。

php_flag display_errors off
php_value error_log "/virtual/*****/private/*****/logs/php_error.log"

エラーを表示する

なお,逆に,設置時には,php_flag display_errors on を設定して,エラーを表示して問題を解決してください。

画面が真っ白になる場合があるとしたら,php_flag display_errors offの設定になっているためです。

あわせて管理者ログインを行い,コンフィギュレーションで,管理者に詳しいエラー内容を表示するモードに変更すると便利です。


PHPのエラーを表示する方法

以下のいずれかで表示設定してください。

  1. php.ini内でdisplay_errors = onを設定します。
  2. .htaccessで php_flag display_errors on を記述します。
  3. siteconfig.phpの先頭に、ini_set( 'display_errors', 'on' ); を記述します。

一番望ましいのはphp.iniでの修正ですが、できない場合は.htaccessで設定します。これでも設定できない場合は、siteconfig.phpで以下のようにini_set()関数を使って設定することで可能にする方法も試してください。

Geeklogのエラーを表示する方法

さらに、ログインしていない状態で、本来ログインしたRoot管理者にのみ表示させていた詳しいエラーを表示させる設定は、siteconfig.phpに、

$_CONF['rootdebug'] = true;

を記述して、表示させます。

いずれも、サイト公開前に、off、false に戻しておく必要があります。

個人用ツール