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
Satoshi Kawashima
December 15, 2018
Programming
2
3.9k
ドキュメントルート配下に全ての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
17
9.2k
BASE大規模リアーキテクチャリング / base_rearchitecturing
nazonohito51
18
13k
既存サービスに後からR/W Splittingライブラリを入れる時に考えたこと / r-w-splitting
nazonohito51
1
29k
社内勉強会でOOPとCleanArchitectureとDDDを勉強し始めたというお話
nazonohito51
7
5.3k
CakePHP2でもPhpStormがコード補完してくれるようにした話 / cakephp2-ide-helper
nazonohito51
1
2.4k
PHPStanでCustomRuleを作る / Make PHPStan CustomRule
nazonohito51
6
4k
単方向依存を実現する静的解析ライブラリのご紹介 / Analyze PHP Dependencies
nazonohito51
3
5.8k
「SOLIDの原則って何ですか?」って質問に答えたかった / What's SOLID principle
nazonohito51
6
2k
アジャイル開発でのソフトウェア設計
nazonohito51
0
870
Other Decks in Programming
See All in Programming
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
260
No Install CMS戦略 〜 5年先を見据えたフロントエンド開発を考える / no_install_cms
rdlabo
0
480
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
1
1.6k
パスタの技術
yusukebe
1
370
AI時代のドメイン駆動設計-DDD実践におけるAI活用のあり方 / ddd-in-ai-era
minodriven
6
1.3k
Terraform やるなら公式スタイルガイドを読もう 〜重要項目 10選〜
hiyanger
13
3.1k
一人でAIプロダクトを作るための工夫 〜技術選定・開発プロセス編〜 / I want AI to work harder
rkaga
12
2.6k
Understanding Kotlin Multiplatform
l2hyunwoo
0
260
オホーツクでコミュニティを立ち上げた理由―地方出身プログラマの挑戦 / TechRAMEN 2025 Conference
lemonade_37
2
470
#QiitaBash TDDで(自分の)開発がどう変わったか
ryosukedtomita
1
360
新世界の理解
koriym
0
130
サイトを作ったらNFCタグキーホルダーを爆速で作れ!
yuukis
0
290
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
What's in a price? How to price your products and services
michaelherold
246
12k
A better future with KSS
kneath
239
17k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Embracing the Ebb and Flow
colly
86
4.8k
We Have a Design System, Now What?
morganepeng
53
7.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
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 طଘͷϑΝΠϧ܈ΛϒϥοΫϘοΫεͱଊ͑ͯɺमਖ਼લޙ ͷೖྗΛҡ࣋͢Δ ·ͱΊ