$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
php.iniって何書いているの
Search
Maki Hayashi
June 21, 2024
Programming
2
720
php.iniって何書いているの
開発していた際、うまくいかない原因にphp.iniの設定が絡んでいて、ドツボにはまりました。
よく見る設定とはまった設定をクイズを交えながら紹介します!
Maki Hayashi
June 21, 2024
Tweet
Share
More Decks by Maki Hayashi
See All by Maki Hayashi
小さく段階的リリースすることで深夜メンテを回避する
mkmk884
2
340
仕様変更に耐えるための"今の"DRY原則を考える
mkmk884
8
4.2k
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
7
2.3k
1人プロ・ペアプロ・モブプロの効果的な使い分け
mkmk884
0
1.8k
テスト嫌いな自分の苦手意識がなくなった話
mkmk884
4
1.1k
部内全員で理想の開発部を考え、それに向かって1年間継続して活動に取り組む環境をつくった話
mkmk884
0
250
Other Decks in Programming
See All in Programming
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
200
配送計画の均等化機能を提供する取り組みについて(⽩⾦鉱業 Meetup Vol.21@六本⽊(数理最適化編))
izu_nori
0
120
Level up your Gemini CLI - D&D Style!
palladius
1
150
CSC305 Lecture 17
javiergs
PRO
0
240
Querying Design System デザインシステムの意思決定を支える構造検索
ikumatadokoro
1
1.2k
Evolving NEWT’s TypeScript Backend for the AI-Driven Era
xpromx
0
250
How Software Deployment tools have changed in the past 20 years
geshan
0
27k
Herb to ReActionView: A New Foundation for the View Layer @ San Francisco Ruby Conference 2025
marcoroth
0
240
レイトレZ世代に捧ぐ、今からレイトレを始めるための小径
ichi_raven
0
490
20 years of Symfony, what's next?
fabpot
2
280
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
16
6.1k
目的で駆動する、AI時代のアーキテクチャ設計 / purpose-driven-architecture
minodriven
11
3.8k
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
12k
KATA
mclloyd
PRO
32
15k
Optimizing for Happiness
mojombo
379
70k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
A Tale of Four Properties
chriscoyier
162
23k
The Language of Interfaces
destraynor
162
25k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
119
20k
Balancing Empowerment & Direction
lara
5
780
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
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