#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_ALL32767サポートされる全てのエラーと警告
E_ERROR1重大な実行時エラー
E_WARNING2ワーニング警告
E_PARSE4コンパイル時のパースエラー
E_NOTICE8ノーティス警告

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

定数説明
E_CORE_ERROR16PHP コアエラー
E_CORE_WARNING32PHP コアワーニング警告
E_COMPILE_ERROR64コンパイル時の致命的なエラー
E_COMPILE_WARNING128コンパイル時の警告
E_USER_ERROR256ユーザー発行エラー
E_USER_WARNING512ユーザー発行ワーニング警告
E_USER_NOTICE1024ユーザー発行ノーティス警告
E_STRICT2048コード互換性を維持提案
E_RECOVERABLE_ERROR4096キャッチできる致命的なエラー
E_DEPRECATED8192実行時の注意
E_USER_DEPRECATED16384ユーザー定義の警告メッセージ

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

関連記事

twig 3 人気 PHP テンプレートエンジンがバージョンアップ
Elastic Beanstalk \$\SERVER['REMOTEADDR'] 取得できない
php curl 使って クリックなしで POST 送信
FlattenException deprecated
allowurlinclude の設定で ftp_connect()エラー
デプロイツール Capistrano
Lumen と Laravel 違い比較
Laravel5.7 の MVC 使う時のメモ
PHP 7.4 にアップグレードして使えなくなる機能
php 開発におけるルール・規約
解決!phpMyAdmin テーブル構造の内容が表示されない問題
開発時によく使うゼロ埋めパディング作業まとめ
正規表現一覧 よく使う検索・置換のパターン
知ってるようで知らなかった composer のコマンドとオプションの世界
Laravel 5.1 から 8.1 にバージョンアップ
laravel vuejs 初期設定
nuxtjs と codeigniter で jwt システム構築
HTML から PDF に変換 PHP ライブラリ mPDF の設定
爆速・軽量フレームワーク codeigniter PHP 開発
Laravel Error についてのメモ