カテゴリー
コンピューター

php.ini の自分なりのお勧め設定を考えました♪【試行錯誤】

スクリーンショット 2013-01-17 22.21.17.png

最近、VirtualBox の CentOS でいろいろ弄ることを覚えました♪それで、PHP の設定ファイルである php.ini の設定をこう変更したらどうでしょうか?と編集してみましたのでメモします。

PHP のバージョンは、5.4.11 です。また、設定を変更する時の観点としては次です。

  • セキュリティを強める
  • ログのレベルと出力先を明確に
  • 言語は日本語
  • 文字エンコーディングは UTF-8 を基準に

なお、自信を持っておすすめできるベストプラクティスな推奨設定ではありません。試行錯誤中です。この方が良いことが多そう。。。かな?という暫定設定でございますこと、お断りいたします。

なお、操作は ssh 接続で行いました。ターミナルや、Tera Term での作業ですね。

php.ini、12の編集項目

php.ini で設定できる項目は、非常にたくさんありますので、今回編集した部分のみ掲載いたします。それにしましても大体の項目の内容が今のわたくしには理解できません。。。難しい、です。

[PHP] のブロック

# 応答ヘッダーにPHPのバージョン等を出力しない
expose_php = Off
# ログレベル。本番環境では E_ALL とする
error_reporting = E_ALL | E_STRICT
# ブラウザでのエラー表示。本番環境では Off とする
display_errors = On
# エラーをログに残す
log_errors = On
# 攻撃の内容を詳しく知る為に 4KB 程に設定
log_errors_max_len = 4096
# エラーログ出力先
error_log = "/var/log/php_errors.log"
# 文字エンコーディング
default_charset = "UTF-8"

[Date] のブロック

# タイムゾーン
date.timezone = "Asia/Tokyo"

[mbstring] のブロック

# デフォルト言語
mbstring.language = Japanese
# 内部文字エンコーディング
mbstring.internal_encoding = UTF-8
# HTTP入力文字エンコーディングのデフォルト
mbstring.http_input = auto
# 文字エンコーディング検出順序のデフォルト
mbstring.detect_order = auto

操作ポイント

編集前バックアップと編集

# PHP 設定ファイルのバックアップ
cp -a /etc/php.ini /etc/php.ini.org
# PHP 設定ファイルの編集
vim /etc/php.ini

編集完了後にやること

# リロードして設定ファイルを反映
 /etc/init.d/httpd reload

ウェブブラウザでの設定反映確認

# PHP の設定確認用のファイル作成
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
# http://192.168.56.111/phpinfo.php にアクセスし、設定情報を確かめる。
# テストファイル削除
rm /var/www/html/phpinfo.php

おわりに

php.ini を意識し始めたは、php.ini のタイムゾーンの簡単な確認方法と実際に date.timezone を設定しました! | oki2a24 で紹介させていただいた次のページを見てからでした。

シンプルでとても良いです。これに加えて次のページを拝見しまして取り入れたい設定を採用させていただききました。

ですので、もしかしたら弄る前よりいろいろなんかどこか悪くなる可能性もあります。しばらくこの設定で本ブログを運用して見極めて行きたいと思います。

※追記 この投稿の留意点や問題点を改善したものを投稿しています。よろしければ併せてご参照ください。

以上です。

「php.ini の自分なりのお勧め設定を考えました♪【試行錯誤】」への5件の返信

コメントを残す