# php.ini 初期設定のいろいろ

php アップグレードや初期化したらいろいろ設定が必要ですね。設定が簡単ですが、忘れないようにメモ

設定ファイル (php.ini) は PHP の起動時に読み込まれます。
PHP 5.1.0 以降、ini ファイル内で既存の ini 変数を参照することが可能です。 例: open_basedir = ${open_basedir} ":/new/dir"

変数を参照することって!しかも 5.1 から使えるって知らなかった!設定ファイルの中で変数参照は面白そうですね。
どのシーンで使うかわかりませんけど、いざの時のためにあること覚えておいた方が良さそう。

php 設定ファイル (opens new window)

display_errors = off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED & ~E_NOTICE
error_log = /home/user_name/hapicode.com/log/php_error.log

date.timezone = "Asia/Tokyo"
mbstring.language = Japanese

default_charset = UTF-8
mbstring.detect_order = auto

post_max_size = 30M
upload_max_filesize = 30M

max_execution_time = 60
max_input_time = 90

# error_reporting 設定

error_reporting 項目は出力する PHP エラーの種類を設定できます。
error_reporting()関数使うなら、いつでもどこでもその時の error_reporting 設定を変更することができます。
サーバー内の PHP を統一設定するなら php.ini に設定した方がいいでしょう。

PHP コアソースに定義されている「定義済み定数」を ini ファイルに設定しても関数で設定してもいつでも利用可能。

以下の定数を php.ini で使用することができますが、 httpd.conf のような PHP の外部では、 代わりにビットマスク値を使用する必要があります。

error_reporting 関数使う時、ビットマスクまたは名前つき定数のどちらかです。将来の バージョンとの互換性を保証するために、名前つき定数の使用が 強く推奨されています。

// 全てのエラー出力をオフにする
error_reporting(0);

// 単純な実行時エラーを表示する
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// E_NOTICE を表示させるのもおすすめ(初期化されていない
// 変数、変数名のスペルミスなど)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// E_NOTICE 以外の全てのエラーを表示する
error_reporting(E_ALL & ~E_NOTICE);

// 全ての PHP エラーを表示する
error_reporting(E_ALL);

// 全ての PHP エラーを表示する
error_reporting(-1);

// error_reporting(E_ALL); と同じ
ini_set('error_reporting', E_ALL);

よく使うエラーレポート定数

定数 説明
E_ALL 32767 サポートされる全てのエラーと警告
E_ERROR 1 重大な実行時エラー
E_WARNING 2 ワーニング警告
E_PARSE 4 コンパイル時のパースエラー
E_NOTICE 8 ノーティス警告

その他エラーレポート定数

定数 説明
E_CORE_ERROR 16 PHP コアエラー
E_CORE_WARNING 32 PHP コアワーニング警告
E_COMPILE_ERROR 64 コンパイル時の致命的なエラー
E_COMPILE_WARNING 128 コンパイル時の警告
E_USER_ERROR 256 ユーザー発行エラー
E_USER_WARNING 512 ユーザー発行ワーニング警告
E_USER_NOTICE 1024 ユーザー発行ノーティス警告
E_STRICT 2048 コード互換性を維持提案
E_RECOVERABLE_ERROR 4096 キャッチできる致命的なエラー
E_DEPRECATED 8192 実行時の注意
E_USER_DEPRECATED 16384 ユーザー定義の警告メッセージ

WARNING エラーと NOTICE エラーの違い

# xserver の php ini 設定

xserver 愛なので、xserver の設定も載せときます。

# エラー表示
display_errors = off

# エラーレポトする種類 エラーだけにする
# デフォルトE_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

# エラーログパス
error_log = /home/user_name/hapicode.com/log/php_error.log
[PHP]
engine = On
default_charset = UTF-8

error_log = /home/user_name/hapicode.com/log/error.log
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
display_errors = Off
display_startup_errors = Off

max_execution_time = 60
max_input_time = 90
memory_limit = 200M

allow_url_fopen = On
allow_url_include = Off
file_uploads = On

post_max_size = 30M
upload_max_filesize = 30M

register_argc_argv = Off
short_open_tag = On
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func=
serialize_precision = 100
disable_functions =
disable_classes =
expose_php = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
variables_order = "EGPCS"
auto_globals_jit = On
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
doc_root =
user_dir =
enable_dl = On
default_socket_timeout = 60


[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none


[Date]
date.timezone = "Asia/Tokyo"


[Syslog]
define_syslog_variables = Off


[mail function]
SMTP = localhost
smtp_port = 25
sendmail_path = /usr/sbin/sendmail -t -i


[SQL]
sql.safe_mode = Off


[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1


[MySQL]
mysql.allow_persistent = On
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off


[MySQLi]
mysqli.max_links = -1
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off


[mSQL]
msql.allow_persistent = On
msql.max_persistent = -1
msql.max_links = -1


[PostgresSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0


[Sybase]
sybase.allow_persistent = On
sybase.max_persistent = -1
sybase.max_links = -1
sybase.min_error_severity = 10
sybase.min_message_severity = 10
sybase.compatability_mode = Off


[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10


[bcmath]
bcmath.scale = 0


[Informix]
ifx.default_host =
ifx.default_user =
ifx.default_password =
ifx.allow_persistent = On
ifx.max_persistent = -1
ifx.max_links = -1
ifx.textasvarchar = 0
ifx.byteasvarchar = 0
ifx.charasvarchar = 0
ifx.blobinfile = 0
ifx.nullformat = 0


[Session]
session.save_handler = files
session.save_path = "/home/user_name/user_name.xsrv.jp/xserver_php/session"
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = 0
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 32
session.entropy_file = /dev/urandom
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 1
session.hash_bits_per_character = 5
session.use_strict_mode = 1


[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatability_mode = Off
mssql.secure_connection = Off


[Tidy]
tidy.clean_output = Off


[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400

[Zend Optimizer]
zend_extension = opcache.so
2020-10-29
  • php
レンタルサーバー エックスサーバー レンタルサーバー エックスサーバー DMM fx DMM fx 開発/運用エンジニア募集プログラム 開発/運用エンジニア募集プログラム 外為ジャパンFX 新規口座開設促進 外為ジャパンFX 新規口座開設促進 eBay公式ショッピングサイト Qoo10 eBay公式ショッピングサイト Qoo10 Amazon.co.jpのカテゴリごとのページ

関連記事

正規表現一覧 よく使う検索・置換のパターン
Apache 初期設定メモ
codeigniter email ライブラリでメール送信 日本語対応
Codeigniter APPPATH BASEPATH FCPATH 各種パスと URL 取得
PHP mbconvertkana 全角半角英数カナ変換
php 開発におけるコーディングルール・規約
php date 日付の日数・月数差を計算
php curl 使って クリックなしで POST 送信
FlattenException deprecated
php Exception エラーキャッチでメール送信
allowurlinclude の設定で ftp_connect()エラー
Lumen と Laravel 違い比較
Laravel 5.7 の MVC 使う時のメモ
Laravel timestamp() auto update 有効化無効化
PHP empty isset is_null の違い
Laravel toSql パラメータ付きで出力
Lumen8 で JWT ユーザー認証
Lumen8 で API 開発
PHP 8 リリース新機能と変更
twig 3 人気 PHP テンプレートエンジンがバージョンアップ
解決!phpMyAdmin テーブル構造の内容が表示されない問題
Smarty HTTP URL 取得できるサーバー関数
開発時によく使うゼロ埋めパディング作業まとめ
nuxtjs と codeigniter で jwt システム構築
HTML から PDF に変換 PHP ライブラリ mPDF の設定
PHP 7.4 にアップグレードして使えなくなる機能
Composer コマンドとオプション
Laravel Error についてのメモ
爆速軽量フレームワーク codeigniter PHP 開発