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ファイルが置かれていた環境をindex.phpだけにした話...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Satoshi Kawashima
December 15, 2018
Programming
2
4k
ドキュメントルート配下に全てのPHPファイルが置かれていた環境をindex.phpだけにした話 / document root
PHPカンファレンス2018登壇資料
フレームワークの使われていないピュアPHPサービスで、ドキュメントルート配下に全てのファイルが置かれていたサービスを安全にするために大規模な修正を行ったお話です
Satoshi Kawashima
December 15, 2018
Tweet
Share
More Decks by Satoshi Kawashima
See All by Satoshi Kawashima
モジュラモノリスにおけるトランザクション設計の考え方 / transaction design on modular monolith
nazonohito51
16
9.6k
BASE大規模リアーキテクチャリング / base_rearchitecturing
nazonohito51
17
13k
既存サービスに後からR/W Splittingライブラリを入れる時に考えたこと / r-w-splitting
nazonohito51
1
30k
社内勉強会でOOPとCleanArchitectureとDDDを勉強し始めたというお話
nazonohito51
7
5.4k
CakePHP2でもPhpStormがコード補完してくれるようにした話 / cakephp2-ide-helper
nazonohito51
1
2.6k
PHPStanでCustomRuleを作る / Make PHPStan CustomRule
nazonohito51
6
4.4k
単方向依存を実現する静的解析ライブラリのご紹介 / Analyze PHP Dependencies
nazonohito51
3
6.1k
「SOLIDの原則って何ですか?」って質問に答えたかった / What's SOLID principle
nazonohito51
6
2.2k
アジャイル開発でのソフトウェア設計
nazonohito51
0
900
Other Decks in Programming
See All in Programming
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
2.8k
Premier Disciplin for Micro Frontends Multi Version/ Framework Scenarios @OOP 2026, Munic
manfredsteyer
PRO
0
200
Rails Girls Tokyo 18th GMO Pepabo Sponsor Talk
yutokyokutyo
0
180
ふん…おもしれぇ Parser。RubyKaigi 行ってやるぜ
aki_pin0
0
120
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
13
7.4k
あなたはユーザーではない #PdENight
kajitack
4
290
Ruby x Terminal
a_matsuda
5
510
株式会社 Sun terras カンパニーデック
sunterras
0
1.9k
2026年は Rust 置き換えが流行る! / 20260220-niigata-5min-tech
girigiribauer
0
210
今、アーキテクトとして 品質保証にどう関わるか
nealle
0
190
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1.1k
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
2.1k
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
67
37k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
130
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
340
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
470
How to make the Groovebox
asonas
2
2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
72k
Transcript
ౡܛ(.01FQBCP *OD 1)1ΧϯϑΝϨϯε υΩϡϝϯτϧʔτԼʹ શͯͷ1)1ϑΝΠϧ͕ ஔ͔Ε͍ͯͨڥΛ JOEFYQIQ͚ͩʹͨ͠
ΞϓϦέʔγϣϯΤϯδχΞ ౡܛ!OB[POPIJUP 4)ࣄۀ෦+6(&.νʔϜ
D ຊ͓͢͠Δ͜ͱ ຊ࣋ͪؼ͍ͬͯͨͩ͘͜ͱ ྺ࢙͋ΔPHPαʔϏεͰ҆શͳαʔϏεΛఏڙ͢Δˍ҆৺ͯ͠։ൃ͢ΔͨΊʹ େنͳमਖ਼Λ͖͓ͯͨ͠Λ͠·͢ ൃදͷ࠷ޙʹɺϐϡΞPHPͷެ։ϑΝΠϧΛ index.php͚ͩʹ͢Δํ๏ΛͳΔ͘ҰൠԽ͓ͯ͠ಧ͚͍ͨ͠·͢
ࣄͷൃ ୲͍ͯ͠ΔαʔϏεͷ՝ ՝ͷղܾ ՝1. ެ։ϑΝΠϧΛಛఆ͢Δ ՝2. ϑΝΠϧΛҠಈ͢Δ ·ͱΊ
w ݄Χϥʔϛʔγϣοϓෆਖ਼ΞΫηεൃੜ w IUUQTQFQBCPDPNOFXTJOGPSNBUJPO ηΩϡϦςΟΠϯγσϯτ
શαʔϏεͷ ηΩϡϦςΟݟ͠
w ൿಗϑΝΠϧͷ8&#ΞΫηεՄೳʹͳ͍ͬͯͳ͍͔Λܧଓ తʹࢹͰ͖ΔΈΛ༻ҙ͢Δ w QNS QZBNBNVMUJSFRVFTU ͰνΣοΫ w IUUQTHJUIVCDPNQZBNBQNS ৽ͨͳηΩϡϦςΟن४ʢͷҰ෦ʣ
w ൿಗϑΝΠϧͷΞΫηεېࢭIUBDDFTTʹΑΔϒϥο ΫϦετཧʹΑ࣮ͬͯݱͨ͠ w ࠓޙͷ։ൃͰɺ৽͍͠ϑΝΠϧΛՃ͢Δ࣌ʹΕͣʹ ϒϥοΫϦετΛߋ৽͢Δඞཁ͕͋Δ ൿಗϑΝΠϧݟ͑ͳ͘ͳ͕ͬͨ
w Ϣʔβ༷ʹ҆શͳαʔϏεΛఏڙͰ͖ͳ͍ w ։ൃऀ͕҆৺ͯ͠։ൃͰ͖ͳ͍ ՝ײ
ඪ WEBެ։ྖҬʹ ެ։͖͢ϑΝΠϧͷΈ͕ ஔ͔Ε͍ͯΔମ੍Λ͑Δ
ࣄͷൃ ୲͍ͯ͠ΔαʔϏεͷ՝ ՝ͷղܾ ՝1. ެ։ϑΝΠϧΛಛఆ͢Δ ՝2. ϑΝΠϧΛҠಈ͢Δ ·ͱΊ
+6(&.
+6(&. αʔϏε։࢝ɿ20042݄ ܧଓɿ14
+6(&.ͱ͍͏1)1αʔϏε w ΄΅ϐϡΞ1)1 w ͍͍͕ͩͨϦϙδτϦϧʔτ ʹυΩϡϝϯτϧʔτ
ʹશެ։
Γ͍ͨ͜ͱʢୈҰஈ֊ʣ repos root dot files repos root public app fuga.jpg
dot files hoge.php assets piyo.php app fuga.jpg hoge.php assets piyo.php QVCMJDσΟϨΫτϦΛ࡞Γ υοτϑΝΠϧҎ֎ͷ શϑΝΠϧΛҠಈ υΩϡϝϯτϧʔτΛมߋ ʢެ։ඇެ։ͷ֓೦͕ੜ·ΕΔʣ
Γ͍ͨ͜ͱʢୈೋஈ֊ʣ repos root public app fuga.jpg dot files hoge.php assets
piyo.php repos root public app fuga.jpg dot files hoge.php assets piyo.php ඇެ։ϑΝΠϧΛ QVCMJDͷ֎Ҡಈ
w ୈҰஈ֊͙͢ୡͰ͖Δ w Ұ෦ઈରύεʹґଘͨ͠ίʔυΛमਖ਼ͯ͠ΔʢQVCMJD ΛՃ͢Δʣඞཁ͋Δ w ୈೋஈ֊Λୡ͢Δʹ՝͕̎ͭ͋Δ ୈೋஈ֊ୡͷนް͍
՝̍ ެ։ඇެ։ϑΝΠϧͬͯͲΕʁ
w ͍ྺ࢙ͷதͰΤϯτϦϙΠϯτͱͳΔQIQϑΝΠϧ͕Ͳ Εͳͷ͔͔Βͳ͘ͳ͍ͬͯΔ w ͍͍ͩͨܦݧ্Ѳ͍ͯ͠Δ͕ɺཏͰ͖͍ͯΔ͔ͱ ΘΕΔͱඍົ w ͦͦϦϙδτϦ͕ଟ͍͔Β͖֮͑Εͳ͍ w ʢͷ߹ʣ̍ΤϯδχΞɿ̒̍ϦϙδτϦ
ެ։ϑΝΠϧͬͯͲΕʁ
՝̎ ϑΝΠϧͷҐஔ͕ಈ͔ͤͳ͍
w େྔͷSFRVJSF@PODFͳͲʹΑͬͯQIQϑΝΠϧؒͷ૬ରత ͳҐஔ͕ؔݻఆԽ͞Ε͍ͯΔ w ϦϙδτϦ͚ͩͰSFRVJSF@PODFʙݸ͘ Β͍͋ͬͨΓ͢Δ͕ɺػցతͳमਖ਼͍͠ʢཧ༝ޙड़ ϑΝΠϧͷҐஔ͕ಈ͔ͤͳ͍
େม
ࣄͷൃ ୲͍ͯ͠ΔαʔϏεͷ՝ ՝ͷղܾ ՝1. ެ։ϑΝΠϧΛಛఆ͢Δ ՝2. ϑΝΠϧΛҠಈ͢Δ ·ͱΊ
w Կઍݸ͋ΔQIQϑΝΠϧͷத͔Βެ։͖͢ͷΛಛఆ ͢Δ w ΞΫηεϩάΛͻͨ͢ΒಡΊ͔ΔͬͪΌ͔Δ͕ɺO ϦϙδτϦͷΛશ෦ಡΉͷେม w NPE@SFXSJUFతʹΞΫηε63*ͱݺͼग़͢ϑΝΠϧΛมߋ ͞ΕΔٕज़͕ΘΕ͍ͯΔͱා͍ w
NPE@SFXSJUFࣗମӨڹΛ༩͑ͳ͍͕ɺଞʹͲΜͳݹͷ ٕज़͕ΘΕ͍ͯΔͷ͔ෆ໌ͳͨΊෆ҆ ެ։ϑΝΠϧͷಛఆ
w ͲͷQIQϑΝΠϧ͔ΒॲཧΛ։࢝ͨ͠ͷ͔ʢϝΠϯϑΝΠ ϧʣ͕ೖ͍ͬͯΔ w ΫʔϩϯͳͲͷ$-*࣮ߦͷ߹ͰೖͬͯΔ @4&37&3<b4$3*15@/".&`>
Ұఆظؒϩάग़ྗ͠ଓ͚ͯɺ ࣗಈͰެ։ϑΝΠϧΛಛఆ͢Δ ʘਓؒؤுΒͳ͍ʗ Oϲ݄ϩάΛग़͠ଓ͚Δ
w ̍ʙ̒ϲ݄ͰશϦϙδτϦͷެ։ϑΝΠϧΛಛఆྃ ϩΪϯά݁Ռ
ࣄͷൃ ୲͍ͯ͠ΔαʔϏεͷ՝ ՝ͷղܾ ՝1. ެ։ϑΝΠϧΛಛఆ͢Δ ՝2. ϑΝΠϧΛҠಈ͢Δ ·ͱΊ
ϑΝΠϧͷ େҠಈ
require_once ϑΝΠϧͷҐஔؔΛݻఆ͢Δ
w ଞͷϑΝΠϧΛQIQϑΝΠϧͱͯ͠ಡΈࠐΜͰධՁ͢Δݴ ޠͷ੍ޚߏ w JODMVEFJODMVEF@PODFSFRVJSFSFRVJSF@PODF͕͋Δ w ͍͍ͩͨSFRVJSF@PODF͕ΘΕΔ w ίʔυΛෳϑΝΠϧʹׂ͢ΔͨΊͷखஈ SFRVJSF@PODFͱʁ
/app/hoge.php /app/models/fuga.php ಡΈࠐΜͰධՁʢ࣮ߦʣ͢Δ
w SFRVJSFSFRVJSF@PODFಡΈࠐΈࣦഊ࣌ʹ'BUBM&SSPS w ͱʹ͔͕͘ଟ͍ w ಈతͳཁૉʢΧϨϯτσΟϨΫτϦɺJODMVEF@QBUIɺϝΠ ϯϑΝΠϧʣʹґଘ͍ͯ͠Δ w ੩తղੳπʔϧʢ*%&ͳͲʣͷαϙʔτड͚ΒΕͳ͍ ࣮मਖ਼ίετ͕ߴ͍
w ͦͷ࣌ʑͷਓͷΈͷॻ͖ํͰॻ͔Ε͍ͯͨ ແடংͳॻ͔Εํ
w ͦͷ࣌ʑͷਓͷΈͷॻ͖ํͰॻ͔Ε͍ͯͨ ແடংͳॻ͔Εํ D ػցతͳमਖ਼͕ͮ͠Β͍
IUUQTQBDLBHJTUPSHQBDLBHFTOB[POPIJUPSFRVJSFQBUIpYFS ղܾ͢ΔͨΊͷ ϥΠϒϥϦΛ࡞ͬͨ
w SFRVJSF@PODFεςʔτϝϯτʹடংΛͨΒ͢ w શͯઈରύεԽ͢Δ w ಈతͳཁૉʹґଘͤͣɺ੩తղੳπʔϧʢ*%&ʣͷαϙʔ τ͕ಘΒΕΔ w ύεղܾͷϕʔεύεΛϦϙδτϦϧʔτʹ౷Ұ͢Δ w
ॻ͖ͬΓΛۉ࣭ʹ͢Δ SFRVJSFQBUIpYFS
શͯͷ1)1ϑΝΠϧ͔Βࣈ۟ղੳͰSFRVJSFεςʔτϝϯ τΛั·͑Δ ϑΝΠϧύε෦ΛFWBMͰจࣈྻʹม͢Δ ಡΈࠐΈઌϑΝΠϧΛҰҙʹಛఆ͢Δ w࣮ߦ࣌ʹ͔֬͠ఆͰ͖ͳ͍߹ͰͳΔ͘ਪଌͯ͠ ಛఆ͢Δ
৽͍͠ॻ͖ํʹରͷεςʔτϝϯτΛमਖ਼͢Δ ݪཧ ৄࡉҎԼͷεϥΠυΛ͝ࢀর͍ͩ͘͞ IUUQTTQFBLFSEFDLDPNOB[POPIJUPSFHBTJQIQEFSFRVJSFPODFUPLBJV[IPVJXPUVJ[IJEFLJSVLBNPTJSFOBJ
εςʔτϝϯτΛั·͑Δ
εςʔτϝϯτΛั·͑Δ 5@3&26*3&@0/$& 5@$0/45"/5 @&/$"14&%@453*/( 5@3&26*3&@0/$& 5@3&26*3&@0/$& 5@3&26*3&@0/$& 5@$0/45"/5 @&/$"14&%@453*/( 5@7"3*"#-&
5@$0/45"/5 @&/$"14&%@453*/( 5@$0/45"/5 @&/$"14&%@453*/( 5@$0..&/5 5@453*/( 5@$0..&/5 5@453*/(
ϑΝΠϧύεจࣈྻͷղܾ require_once (dirname(dirname(__FILE__)). COMMON_DIR.“{$util}/path/to/file.php”);
ϑΝΠϧύεจࣈྻͷղܾ define(“KNOWN_CONSTANT”, __DIR__ . “/known”); define(“COMMON_DIR”, ”/common”); $util = “/utility”;
require_once (dirname(dirname(__FILE__)). COMMON_DIR.“{$util}/path/to/file.php”);
ϑΝΠϧύεจࣈྻͷղܾ $path = eval(‘ define(“KNOWN_CONSTANT”, __DIR__ . “/known”); define(“COMMON_DIR”, ”/common”);
$util = “/utility”; return (dirname(dirname(__FILE__)).COMMON_DIR. “{$util}/path/to/file.php”); ‘); QBUIUPBQQSPPUDPNNPOVUJMJUZQBUIUPpMFQIQ ˣ
ಡΈࠐΈઌϑΝΠϧͷಛఆ छྨ ྫ ରԠํ๏ ઈରύε BQQSPPUQBUIUPpMFQIQ मਖ਼͢Δ ૬ରύε QBUIUPpMFQIQ ಡΈࠐΈઌϑΝΠϧΛ
ಛఆ͔ͯ͠Βमਖ਼ JODMVEF@QBUIϕʔε QBUIUPpMFQIQ ಡΈࠐΈઌϑΝΠϧΛ ಛఆ͔ͯ͠Βमਖ਼ ύεղܾͰ͖ͳ͔ͬ ͨ 6/,/08/@$0/45"/5bQBUIUP pMFQIQ` ·ͨύεղܾதʹΤϥʔ मਖ਼͠ͳ͍ ಡΈࠐΈઌϑΝΠϧ͕͔Βͳ͍ͷɺ ύλʔϯϚονϯάͰϦϙδτϦʹϚον͢ΔϑΝΠϧ͕ͳ͍͔୳͠ɺ ͔ͭ͠ແ͚ΕͦΕͩͱਪଌ͢Δ
मਖ਼݁Ռ ઈରύε ૬ରύε JODMVEF@QBUIϕʔε ෆ໌ʢղܾͰ͖ͳ͍ఆมɺؔͷґଘʣ
77%ͷεςʔτϝϯτΛमਖ਼͠ɺۉ࣭ͳঢ়ଶʹͰ͖ͨ
मਖ਼݁Ռ
ઈରύε ૬ରύε JODMVEF@QBUIϕʔε ෆ໌ʢղܾͰ͖ͳ͍ఆมɺؔͷґଘʣ ϦϙδτϦ" ʢSFRVJSFεςʔτϝϯτݸʣ ϦϙδτϦ% ʢSFRVJSFεςʔτϝϯτݸʣ ϦϙδτϦ$ ʢSFRVJSFεςʔτϝϯτݸʣ ϦϙδτϦ# ʢSFRVJSFεςʔτϝϯτݸʣ
ඇެ։ϑΝΠϧͷҠಈ repos root public app fuga.jpg dot files hoge.php assets
piyo.php repos root public app fuga.jpg dot files hoge.php assets piyo.php ඇެ։ϑΝΠϧΛ QVCMJDͷ֎Ҡಈ ʢୈೋஈ֊ୡʣ
͋Εʁ Τϥʔग़ͯΔ
w pMF@FYJTUT ͳͲͰΤϥʔ͕ൃੜͩ͢͠ w ΧϨϯτσΟϨΫτϦ͔Βͷ૬ରύεͷมԽ͕ݪҼ ͜ΕͰऴΘΒͳ͍ɾɾɾ ΧϨϯτσΟϨΫτϦ͔Βͷ૬ରύεͰղܾ͍ͯ͠Δ
͜Μͳͩͬͨ repos root public app fuga.jpg dot files hoge.php assets
piyo.php repos root public app fuga.jpg dot files hoge.php assets piyo.php QVCMJDQJZPQIQ͕ϝΠϯϑΝΠϧͰɺΧϨϯτσΟϨΫτϦ͕QVCMJDͷ߹ ΧϨϯτσΟϨΫτϦ͔Βͷ ૬ରύε͕มΘ͍ͬͯΔͷͰݟ͔ͭΒͳ͍
ఢSFRVJSF@PODF ͚ͩͰͳ͔ͬͨɾɾɾ
w ૬ରύεΛड͚औΕΔΑ͏ͳౕΒશͯ w શ෦ڍ͖͛Εͳ͍͘Β͍ଟ͍ʢͲ͏ͬͯHSFQ͢Ε͍͍ ͷ͔͔Βͳ͍ʣ ΧϨϯτσΟϨΫτϦʹґଘ͢ΔౕΒ
w શͯઈରύεʹमਖ਼ͨ͋͘͠Δ͕ɺͲΕ͚ͩͷΈࠐΈ ؔΈࠐΈΫϥεͰΘΕ͍ͯΔͷ͔ಛఆ͖͠Εͳ͍ɺ HSFQͰ͖ͳ͍ ղফ͢Δͷࠔ /PJEFB
मਖ਼લޙͰ ΧϨϯτσΟϨΫτϦΛม͑ͳ͍ ํ
ΧϨϯτσΟϨΫτϦΛม͑ͳ͍ repos root app dot files hoge.php piyo.php ࠓճͷ࡞ۀΛ࢝ΊΔલ·Ͱɺ ྫ͑QJZPQIQ͔Βॲཧ͕։͍࢝ͯͨ͠߹ɺ
͕ΧϨϯτσΟϨΫτϦͰɺͦͷঢ়ଶͰਖ਼͘͠ॲཧ͕ճ͍ͬͯͨɻ ͦͷঢ়ଶ͢ɻ
ΧϨϯτσΟϨΫτϦΛม͑ͳ͍ repos root public app dot files hoge.php piyo.php repos
root public app dot files hoge.php piyo.php ϝΠϯϑΝΠϧΛݩʑͷҐஔʹͯ͠͠·͏
ΧϨϯτσΟϨΫτϦΛม͑ͳ͍ repos root public app dot files hoge.php piyo.php repos
root public app dot files hoge.php piyo.php piyo.php ϝΠϯϑΝΠϧॲཧΛதܧ͢ΔͨΊ͚ͩʹଘࡏ͢Δɺಉ໊ͷެ։ϑΝΠϧ
ࣄͷൃ ୲͍ͯ͠ΔαʔϏεͷ՝ ՝ͷղܾ ՝1. ެ։ϑΝΠϧΛಛఆ͢Δ ՝2. ϑΝΠϧΛҠಈ͢Δ ·ͱΊ ΞϓϦέʔγϣϯϧʔςΟϯά͢Δ
w ݱͷϑϨʔϜϫʔΫͬΆ͘ެ։ϑΝΠϧJOEFYQIQͷ Έʹ͢Δ ͏ͪΐͬͱ͚ͩଓ͘Μ͡ΌΑ
Γ͍ͨ͜ͱ repos root public app hoge.php piyo.php fuga.php (&5BQQIPHFQIQ 1045BQQGVHBQIQ
(&5QJZPQIQ
Γ͍ͨ͜ͱ (&5BQQIPHFQIQ 1045BQQGVHBQIQ (&5QJZPQIQ index.php repos root public app hoge.php
piyo.php fuga.php શͯͷϦΫΤετΛ JOEFYQIQͰҰड͚Δ
Γ͍ͨ͜ͱ repos root (&5BQQIPHFQIQ 1045BQQGVHBQIQ (&5QJZPQIQ index.php JOEFYQIQҎ֎ͷެ։ϑΝΠϧΛআ ʢJOEFYQIQ͕ϧʔςΟϯά͢Δʣ public
w ઃܭΛγϯϓϧʹͰ͖Δ w ΞϓϦέʔγϣϯͷϒʔτετϥοϓॲཧΛҰݩԽ w BSUJDMFTDPNNFOUTΈ͍ͨͳɺϑΝΠϧγεςϜͱ Ұக͠ͳ͍Α͏ͳϦΫΤετͰϧʔςΟϯάͰ͖ΔΑ͏ ʹͳΔ w NPE@SFXSJUFͷϧʔϧΛٵऩͰ͖Δ
w ϐϡΞ1)1ϦϙδτϦΛϑϨʔϜϫʔΫԽ͢Δ༨͕ੜ· ΕΔ ԿނΔͷ͔ʁ
w ϐϡΞ1)1ʹ͓͚ΔϦΫΤετͱϩδοΫͷϚονϯά 8FCαʔό͕͍ͬͯͨ w ϦΫΤετͷ63*͔Β࣮ߦ͢ΔϑΝΠϧΛܾఆ͍ͯͨ͠ w ݴ͍͑ΕɺΞϓϦέʔγϣϯϧʔςΟϯάԽͱ8FC αʔόͷϧʔςΟϯάϧʔϧΛΞϓϦέʔγϣϯ্Ͱ࠶ݱ ͢Δ͜ͱ ͜Ε·ͰͷϧʔςΟϯά
w جຊతʹϦΫΤετ63*௨ΓͷϑΝΠϧϧʔςΟϯά ͢Δ͚ͩ w 8FCαʔόͷϚονϯάϧʔϧͪΐͬͱ͚ͩಛघͳϧʔ ϧ͕͋Δ w Ϛονϯάઌ͕σΟϨΫτϦͳΒɺ҉తʹͦͷσΟϨΫ τϦͷJOEFYQIQΛ୳ͯ͠ݺͼग़͢ w
ҎԼͷΑ͏ͳΜͯ͜ͳϦΫΤετͰ"QBDIF܅͕ؤ ுͬͯϚονϯάͯ͘͠Ε͍ͯͨͷͰ࠶ݱ͢Δඞཁ͕͋Δ ͪΐͬͱ͚ͩ໘ष͍ (&5IUUQFYBNQMFDPNBQQ IPHFGVHB
w 8FCαʔόͷϚονϯάϧʔϧͷ࠶ݱํ๏͙͢ʹ͔ Βͳ͍ͷͰɺຊ൪ڥͰ͔֬Ίͳ͕Βগ͚ͣͭۙͮ͠Δ w ΧφϦΞϦϦʔεతʹຊ൪ڥͷཪͰࣗͰ࡞ͬͨGBTU SPVUFʹΑΔϧʔςΟϯά݁ՌΛ֬ೝ͢Δ w "QBDIFͷϧʔςΟϯά݁ՌͱGBTUSPVUFͷϧʔςΟϯά ݁ՌΛൺֱ͠ଓ͚ɺEJ⒎͕͋ͬͨΒͦͷࢫͷϩάΛग़ྗ͠ ͯɺͦͷ͢
࠶ݱ͢Δ
OJLJDGBTUSPVUFͰ࡞ 50%0
w ͠ɺແࣄʹJOEFYQIQ͚ͩʹมߋͰ͖ͨ ϲ݄ޙ͘Β͍
ࣄͷൃ ୲͍ͯ͠ΔαʔϏεͷ՝ ՝ͷղܾ ՝1. ެ։ϑΝΠϧΛಛఆ͢Δ ՝2. ϑΝΠϧΛҠಈ͢Δ ·ͱΊ
࡞ۀ։࢝લͱݱࡏͷEJ⒎ repos root app hoge.php piyo.php public assets index.php fuga.jpg
݁ہશͯͷ1)1ϑΝΠϧ ಉ͡Ґஔʹͬͨ EJ⒎QVCMJDԼ͚ͩ ΞϓϦέʔγϣϯϧʔςΟϯά͢Δ ΧϨϯτσΟϨΫτϦͷௐ͢Δ ϝΠϯϑΝΠϧެ։͠ͳ͍··
w 1)1ϑΝΠϧΛҠಈͤ͞Δඞཁͳ͍ w QVCMJDΛ࡞ͬͯɺͦ͜ʹΞϓϦέʔγϣϯϧʔςΟϯά ͢ΔJOEFYQIQΛஔ͚ͩ͘ w ຊ൪ڥͰੜ͞Εͯɺ͔ͭ8&#ެ։͞ΕΔ͖ϑΝΠϧ ͕͋ΔͳΒɺੜઌQVCMJDҠಈͤ͞Δඞཁ͋Δ ࣮؆୯ͩͬͨ
ʹ ಉ͡ೖྗΛ༩͑Εɺ ಉ͡ग़ྗΛฦͯ͘͠ΕΔͱظग़དྷΔ ࠷ॳ͔Β͜͏ߟ͑Εྑ͔ͬͨ طଘͷPHPϑΝΠϧ܈ʢσΟϨΫτϦߏؚΉʣ ΛϒϥοΫϘοΫεͱଊ͑Δ
࠷ॳ͔Β͜͏ߟ͑Εྑ͔ͬͨ (&5BQQIPHFQIQ (&5QJZPQIQ /app/hoge.php /piyo.php ϝΠϯϑΝΠϧBQQIPHFQIQ ΧϨϯτσΟϨΫτϦBQQ )551ϦΫΤετʢೖྗʣ ͔ΒϝΠϯϑΝΠϧ͕ܾఆ͢Δ ϝΠϯϑΝΠϧ͕ܾఆ͢Δͱ
ੜతʹܾఆ͢Δάϩʔόϧใ
࠷ॳ͔Β͜͏ߟ͑Εྑ͔ͬͨ (&5BQQIPHFQIQ (&5QJZPQIQ /app/hoge.php /piyo.php ϝΠϯϑΝΠϧBQQIPHFQIQ ΧϨϯτσΟϨΫτϦBQQ άϩʔόϧใʹґଘ͢Δ طଘͷϩδοΫ ͜͜ΒΜΛमਖ਼લޙͰ
ҡ࣋͢Εྑͦ͞͏
࠷ॳ͔Β͜͏ߟ͑Εྑ͔ͬͨ (&5BQQIPHFQIQ (&5QJZPQIQ /app/hoge.php /piyo.php ϝΠϯϑΝΠϧBQQIPHFQIQ ΧϨϯτσΟϨΫτϦBQQ ͔͋ͨϧʔςΟϯάઌͷϑΝΠϧ͔Β ॲཧ͕։͔࢝ͨ͠ͷΑ͏ʹௐ͢Δ /public/index.php
ϝΠϯϑΝΠϧΛಛఆ͢Δ ΞϓϦέʔγϣϯϧʔςΟϯάϧʔϧΛ࡞Δ QVCMJDΛ࡞ΓɺJOEFYQIQΛஔ υΩϡϝϯτϧʔτΛQVCMJDͣΒ͢ ࠷ڑͰߦ͘ͳΒ
w ͜Ε͜ΕͰผͷՁ͕͋ΔͷͰແҙຯͰͳ͔ͬͨ w ϑΝΠϧͷҠಈ͕͘͢͠ͳͬͨ w JODMVEF@QBUI͕ࣺͯΒΕͨ w ੩తղੳͰ͖Δʢ*%&ͷαϙʔτ͕ड͚ΒΕΔʣ w ίʔυΛಡΉࡍͷ҉͕ͳ͘ͳΓɺ࣮ߦύεͷ͕
୭Ͱग़དྷΔΑ͏ʹͳͬͨ SFRVJSF@PODFͷमਖ਼ແҙຯʁ
w JOEFYQIQ͚ͩʹ͢ΔͷͦΜͳʹ͘͠ͳ͍ w ެ։ϑΝΠϧͷಛఆࣗಈͰग़དྷΔ w ΞϓϦέʔγϣϯϧʔςΟϯάগͣͭ͠࡞Ε͍͍ w طଘͷϑΝΠϧ܈ΛϒϥοΫϘοΫεͱଊ͑ͯɺमਖ਼લޙ ͷೖྗΛҡ࣋͢Δ ·ͱΊ