Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
php.iniって何書いているの
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Maki Hayashi
June 21, 2024
Programming
2
790
php.iniって何書いているの
開発していた際、うまくいかない原因にphp.iniの設定が絡んでいて、ドツボにはまりました。
よく見る設定とはまった設定をクイズを交えながら紹介します!
Maki Hayashi
June 21, 2024
Tweet
Share
More Decks by Maki Hayashi
See All by Maki Hayashi
小さく段階的リリースすることで深夜メンテを回避する
mkmk884
2
410
仕様変更に耐えるための"今の"DRY原則を考える
mkmk884
8
4.4k
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
7
2.4k
1人プロ・ペアプロ・モブプロの効果的な使い分け
mkmk884
0
1.9k
テスト嫌いな自分の苦手意識がなくなった話
mkmk884
4
1.2k
部内全員で理想の開発部を考え、それに向かって1年間継続して活動に取り組む環境をつくった話
mkmk884
0
260
Other Decks in Programming
See All in Programming
Grafana:建立系統全知視角的捷徑
blueswen
0
330
ぼくの開発環境2026
yuzneri
0
240
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
180
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
CSC307 Lecture 06
javiergs
PRO
0
690
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
130
Apache Iceberg V3 and migration to V3
tomtanaka
0
170
AI時代の認知負荷との向き合い方
optfit
0
160
Featured
See All Featured
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
650
So, you think you're a good person
axbom
PRO
2
1.9k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
How to build a perfect <img>
jonoalderson
1
4.9k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
110
Measuring & Analyzing Core Web Vitals
bluesmoon
9
760
Being A Developer After 40
akosma
91
590k
The SEO identity crisis: Don't let AI make you average
varn
0
290
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
450
Transcript
php.iniって何書いているの まきまき 2024/06/21 【非公式】PHPカンファレンス福岡2024・前日Meetup 1
まきまき @_mkmk884 愛媛→京都→小田原 人生3度目の福岡 今はなきスペースワールドで 人生初ジェットコースターを体験した 2
php.iniとは 3 • 起動時に読み込まれるPHPの設定ファイル • 数百個を超える設定値(ディレクティブ)がある
• php.iniの場所 ◦ phpinfo() ▪ Loaded Configuration File ◦ CLIで
$ php --ini をする • “調べたい環境の”php.iniを確認することが重要 php.iniとは 4
php.iniファイル 5
php.iniで設定できること 6 • エラー出力 • パフォーマンスとリソース制限 • データベース設定 • セッション
• セキュリティ • 文字コード周り …
きょう話したいこと 7 開発していたときにうまくいかない原因に、php.iniの設定が 絡んでいて、ドツボにはまった よく見る設定&はまった設定を紹介します!!!
クイズ!!!どの設定値? 8 \ デーデン!!!!! / ディレクティブ
第1問【初級】 メモリエラー(Allowed memory size of~)が出力されました あなたは、メモリを上げたらとりあえず動くのか、 どのくらいの時間がかかるのかを確かめたいです どの設定値を確認しますか? 9 \
チッチッチッ……⏰ / ① max_input_time ② memory_limit ③ upload_max_filesize
例 第1問【初級】 答え 10 memory_limit • 確保できる最大メモリをバイト数で指定 • デフォルトは128MB memory_limit =
-1 • -1を指定で無制限
第2問【初級】 11 あなたは、ログにNoticeが出てないことに気づきました 出力レベルを変えたいと思っています どの設定値を確認しますか? \ チッチッチッ……⏰ / ① error_reporting ②
display_errors ③ error_log
第2問【初級】 答え 12 error_reporting • “見えるようにする”エラーをレベルで指定できる • 定義されている整数か定数名で指定 エラーって 16種類あんねん E_ERROR,
E_WARNING, E_PARSE, E_NOTICE, E_STRICT など
以前 最新 E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED 第2問【初級】 答え
13 error_reporting ~で、見えないようにするエラーレベルを指定 E_ALL
第3問【上級】 14 \ チッチッチッ……⏰ / ハマった人→ ① post_max_size ② max_input_vars ③ default_charset
あなたは、大量の数の値をPOSTする処理を書いたところ 本質ではなさそうなところで落ちました どの設定値を確認しますか?
例 • 配列の要素もカウント 第3問【上級】 答え 15 max_input_vars • 入力変数を最大で何個まで受け付けるかを指定 • デフォルトは1000個
max_input_vars = 2000
• 設定した数を超える入力変数があった場合 ◦ E_WARNINGが発生 ◦ それ以降の入力変数はリクエストから削除される 第3問【上級】 答え 16 max_input_vars •
ハッシュの衝突を悪用したサービス不能攻撃を受ける 可能性を軽減できる
第4問【上級】 大量の文字列をpreg_matchで正規表現にマッチさせた ところ、A環境では動くのにB環境ではエラーが発生しました どの設定値を確認しますか? 17 \ チッチッチッ……⏰ / ハマった人に 遭遇した人→
① internal_encoding ② mbstring.detect_order ③ pcre.backtrack_limit
第4問【上級】 答え 18 pcre.backtrack_limit • PCREのバックトラック処理の制限値 ◦ Perl Compatible Regular Expressions:Perl互換の正規表現ライブラリ
◦ バックトラック:正規表現エンジンが一致するかどうかを確認するため に文字列の一部に戻って再試行するプロセス • デフォルトは1000000 ◦ PHP < 5.3.7 ではデフォルトが100000
第4問【上級】 答え 19 pcre.backtrack_limit よくある実際のエラーメッセージ Warning: preg_match(): Compilation failed: regular expression
is too large at offset ...
設定値があることで、リソースを枯渇させるのを防いだり、 サービスが攻撃を受ける可能性を軽減できたりする 直面し、調べて思ったこと 20 php.iniの設定値を変えなきゃ動かないものを生み出した時点 で負け ロジックや仕様を見直そう
詳しくはこちらの発表をぜひ… 21 https://speakerdeck.com/uzulla/php-dot-inifalsehua php.iniの話 / uzulla