Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
アクイア認定サイトビルダー試験対策講座 第7回 セキュリティとパフォーマンス / Prep f...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
アクイアジャパン Acquia Japan
June 30, 2021
Programming
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
アクイア認定サイトビルダー試験対策講座 第7回 セキュリティとパフォーマンス / Prep for exam Site Builder vol.7
https://www.acquia.com/jp/resources/webinars/prep-for-exams-site-builder-vol6
アクイアジャパン Acquia Japan
June 30, 2021
More Decks by アクイアジャパン Acquia Japan
See All by アクイアジャパン Acquia Japan
Auth0 by OktaとDrupalで実践!認証付きアプリケーションの新しいアプローチ
acquiajp
0
240
Drupal 10.3の新機能紹介ウェビナー
acquiajp
0
280
DrupalCon Portland 2024 総まとめウェビナー
acquiajp
0
140
開発者必見!Acquia Cloud IDEで最高のDrupal開発を始めよう
acquiajp
0
240
触って学ぶ!デジタルアセット管理 Acquia DAM ハンズオンウェビナー
acquiajp
0
57
DrupalCon Lille 2023 総まとめウェビナー
acquiajp
0
120
コンテンツ設計手法で変更に強いアプリケーションを実現する〜ローコードによるWebアプリのバックエンド実装 #CNDF2023
acquiajp
0
410
DrupalCon Pittsburgh 2023 総まとめウェビナー
acquiajp
0
110
Acquia製品概要&Site Studioデモのご紹介
acquiajp
0
150
Other Decks in Programming
See All in Programming
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
56
37k
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
140
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
170
Deep dive into the select statement (GopherCon UK)
jespino
0
170
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
140
不幸な GC
chencmd
0
900
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
230
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
780
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
190
AIとGame Jamで、ゲームを完成させた話
takahirosaeki
0
120
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
110
スマート反転とウェブアクセシビリティ
camiha
0
180
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
520
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Code Review Best Practice
trishagee
74
20k
Heart Work Chapter 1 - Part 1
lfama
PRO
9
36k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
590
Transcript
ΞΫΠΞೝఆαΠτϏϧμʔ ࢼݧରࡦߨ࠲ ୈ7ճ ηΩϡϦςΟͱύϑΥʔϚϯε
ΞΫΠΞೝఆαΠτϏϧμʔ ࢼݧରࡦߨ࠲γϦʔζ – ʮΞΫΠΞೝఆαΠτϏϧμʔ - Drupal 9ʯࢼݧɺίΞϞδϡʔϧ͓Αͼ֦ுϞδϡʔϧ Λ༻ͯ͠DrupalαΠτΛߏங͢ΔϓϩϑΣογϣφϧ͚ͷࢿ֨Ͱ͢ɻ͜ͷࢼݧɺ DrupalαΠτϏϧμʔͷεΩϧɺࣝͷݕূΛతͱͯ͠σβΠϯ͞Ε͍ͯ·͢ɻ –
ຊΣϏφʔɺʮΞΫΠΞೝఆαΠτϏϧμʔ - Drupal 9ʯࢼݧͷग़ൣғΛཏͨ͠ɺ શ7ճͷࢼݧରࡦରࡦߨ࠲Ͱ͢ɻࢼݧ߹֨Λࢦ͢ํͪΖΜɺDrupalΛମܥతʹֶͼͨ ͍ํʹ͓͢͢ΊͰ͢ɻ – DrupalΛҰ௨Γૢ࡞ͨ͜͠ͱ͕͋ΔํΛରͱ͍ͯ͠·͢ɻ·ͩDrupalΛ৮ͬͨ͜ͱ͕ແ ͍ํɺॳ৺ऀ͚DrupalνϡʔτϦΞϧಈըʢຊޠʣΛઌʹݟ͓ͯ͘ͱΑΓཧղ͕ਂ ·Γ·͢ɻ
ຊͷεϐʔΧʔ ΞΫΠΞδϟύϯ ؛ढ़ฌ ιϦϡʔγϣϯΤϯδχΞ ΞΫΠΞδϟύϯ ؙࢁͻ͔Δ ςΫχΧϧτϥϯεϨʔλʔ
ΞδΣϯμ 1. αΠτϏϧμʔ͚ηΩϡϦςΟઃఆ 2. DrupalͷύϑΥʔϚϯε্ରࡦ 3. ࿅श
αΠτϏϧμʔ͚ηΩϡϦςΟઃఆ
αΠτϏϧμʔ͚ηΩϡϦςΟઃఆͷྫ ߦ͏͖ηΩϡϦςΟઃఆ֤αΠτͷཁ݅ʹΑͬͯҟͳΓ·͕͢ɺҰൠతͳͷ Λ͜͜Ͱհ͠·͢ɻ 1. αΠτ๚ऀ͕ࣗͰΞΧϯτΛ࡞Δ͜ͱΛېࢭ͢Δ 2. ϢʔβʔID “1”Λอޢ͢Δ 3. ෆཁͳݖݶ͕༩͞Ε͍ͯͳ͍͔֬ೝ͢Δ
4. αΠτΛ࠷৽ͷঢ়ଶʹอͭ 5. ςετɾ։ൃؔ࿈ϞδϡʔϧΛແޮԽ͢Δ
ΞΧϯτઃఆϖʔδͷʮొͱআʯͰઃఆ – ୭͕ΞΧϯτΛొͰ͖·͔͢ʁ – ཧऀͷΈʹมߋ – ଟ͘ͷαΠτ͜ΕͰOK 1. αΠτ๚ऀ͕ࣗͰΞΧϯτΛ࡞Δ͜ͱΛېࢭ αΠτ๚ऀ͕ࣗͰΞΧϯτΛ࡞Ͱ͖Δ߹ɺBotѱҙͷ͋Δ๚ऀʹΑͬͯෆਖ਼ͳΞΧϯτ͕࡞
͞ΕΔڪΕ͕͋Γ·͢ɻಛʹඞཁͳ߹Λআ͖ɺΞΧϯτ࡞ཧऀͷΈ͕ߦ͑ΔΑ͏ઃఆ͠·͢ɻ
ϢʔβʔϖʔδͰઃఆ 1. ৽͘͠ཧऀϢʔβʔΛ࡞ 2. ϢʔβʔID͕“1”ͷΞΧϯτΛϒϩοΫ ΞΫγϣϯʼબ͞ΕͨϢʔβʔΛϒϩοΫ ҙ – ৽͍͠ཧऀΞΧϯτΛ࡞͢ΔલʹϢʔ
βʔID͕“1”ͷΞΧϯτΛϒϩοΫͯ͠͠·ͬ ͨ߹ɺdrush user:unblock adminͰղআͯ͠ Γ͢ – ·ͨɺdrushͰ৽نϢʔβʔΛ࡞͢Δ 2. ϢʔβʔID “1”Λอޢ͢Δ αΠτΠϯετʔϧ࣌ʹ࡞͢Δ࠷ॳͷϢʔβʔͰɺϢʔβʔID͕“1”ͷΞΧϯτɺಛݖϢʔβʔͰɺׂ ʹΑΔݖݶͷνΣοΫ͕ߦΘΕ·ͤΜɻ͜ͷΞΧϯτID͕ෆਖ਼औಘ͞Εͨ߹ɺαΠτͷશͯͷݖݶΛಘΒ ΕΔͨΊɺϒϩοΫ͠·͢ɻ
ݖݶϖʔδͰઃఆ 1. ಗ໊ϢʔβʔɺೝূࡁΈϢʔβʔͷྻΛ֬ೝ 2. ෆཁͳݖݶ͕༩͞Ε͍ͯΔ߹ʹνΣοΫϘο ΫεΛ֎͢ 3. ϖʔδ࠷ԼͷݖݶͷอଘϘλϯΛΫϦοΫ ҙ –
ಛʹɺಗ໊Ϣʔβʔͷ߹ʹɺϗϫΠτϦετܗ ࣜͰͷݖݶ༩Λߦ͏ɻʢશ͘ݖݶͷͳ͍ঢ়ଶ͔ ΒɺඞཁͳͷͷΈΛ༩ʣ 3. ෆཁͳݖݶ͕༩͞Ε͍ͯͳ͍͔֬ೝ͢Δ ཧऀͰͳ͍ɺಗ໊ϢʔβʔೝূࡁΈϢʔβʔʹෆཁͳݖݶ͕༩͞Ε͍ͯͳ͍͔ ఆظతʹ֬ೝ͠·͢ɻ
ηΩϡϦςΟΞοϓσʔτΛड͚Δํ๏ 1. ϝʔϧ௨ Drupal.orgͰΞΧϯτΛ࡞͠ɺϚΠϖʔδ͔Β [Edit] > [My newsletters] ʹ͋Δ
[Security announcements] ʹνΣοΫΛೖΕͯ [Save] ΛΫϦοΫ 2. RSSϑΟʔυ – Core: https://www.drupal.org/security/rss.xml – Contrib: https://www.drupal.org/security/contrib/rss.xml – Ξφϯε: https://www.drupal.org/security/psa/rss.xml 3. Twitter: @drupalsecurity 4. αΠτΛ࠷৽ͷঢ়ଶʹอͭ ηΩϡϦςΟΞοϓσʔτͷใΛৗʹऔಘ͠ɺαΠτͷঢ়ଶΛ࠷৽ʹอͭ͜ͱͰɺ ੬ऑੑʹରԠ͠·͢ɻ
<ࢀߟใ> DrupalͱϞδϡʔϧͷΞοϓσʔτํ๏ ௨͞ΕͨDrupalͷCoreͱίϯτϦϏϡʔτϞδϡʔϧͷΞοϓσʔτใΛ ͱʹɺιʔείʔυΛΞοϓσʔτ͢ΔࡍҎԼͷखॱʹΑΓComposerͰߦ͍·͢ɻ ίϯτϦϏϡʔτϞδϡʔϧͷΞοϓσʔτखॱ 1. Ξοϓσʔτ͕ඞཁͳϞδϡʔϧΛ֬ೝ͢Δ $
composer outdated "drupal/*" ※ηΩϡϦςΟΞοϓσʔτDrushͰ֬ೝՄೳ $ drush pm:security 1. ରϞδϡʔϧͷΞοϓσʔτΛߦ͏ $ composer update drupal/modulename --with- dependencies ※ϝδϟʔΞοϓσʔτ(ྫɿ1.x ͔Β 2.x)ͷ߹requireίϚϯυ͕ඞཁ $ composer require drupal/modulename:^2.0 1. σʔλϕʔεΛΞοϓσʔτ͢Δ $ drush updatedb 2. ΩϟογϡΛΫϦΞ͢Δ $ drush cache:rebuild Drupal CoreͷΞοϓσʔτखॱ 1. DBͱιʔείʔυͷόοΫΞοϓΛऔಘ͢ΔɻDBDrushίϚϯυͷ drush sql:dumpͰόοΫΞοϓΛ࡞Մೳɻ 2. αΠτΛϝϯςφϯεϞʔυʹ͢ΔʢߦΘͳ͍͜ͱ͋Δʣ 3. ϞδϡʔϧͷΞοϓσʔτΛߦ͏ʢӈهʣ 4. CoreͷΞοϓσʔτΛߦ͏ $ composer update "drupal/core-*" --with-all- dependencies 5. σʔλϕʔεΛΞοϓσʔτ͢Δ $ drush updatedb 6. ΩϟογϡΛΫϦΞ͢Δ $ drush cache:rebuild 7. αΠτͷϝϯςφϯεϞʔυΛղআ͢Δ https://www.drupal.org/docs/updating-drupal/updating- modules-and-themes-using-composer https://www.drupal.org/docs/updating-drupal/updating- drupal-core-via-composer
ຊ൪ڥͰআ͖͢ϞδϡʔϧɾϥΠϒϥϦ 1. DevelϞδϡʔϧ ։ൃΛߦ͏ࡍඞਢͱ͍͑ΔϞδϡʔϧͰ͕͢ɺϢʔ βʔʹෆཁͳใΛ༩͑ͯ͠·͏ڪΕ͕͋ΔͨΊɺຊ൪Ͱ ແޮԽ͘͠আ͠·͢ɻ – ଟ༷ͳσόοάػೳ –
μϛʔίϯςϯπͷ࡞ – Web Profiler(ύϑΥʔϚϯεੳ) 2. Composerͷdrupal/core-devϥΠϒϥϦ PHPUnitBehatͷࣗಈςετΛDrupalͰߦ͏ͨΊͷϥΠ ϒϥϦͰ͢ɻ͠ɺςετΛ࣮ߦͰ͖ΔݖݶΛ࣋ͭϢʔ βʔ͕͍ͨ߹ɺෆਖ਼ʹ࣮ߦ͞ΕΔڪΕ͕͋Γ·͢ɻ 5. ։ൃςετؔ࿈ϞδϡʔϧɾϥΠϒϥϦΛআ͢Δ Drupalʹ։ൃςετΛิॿ͢ΔϞδϡʔϧϥΠϒϥϦ͕ଘࡏ͠·͢ɻ͔͜͠͠ΕΒ ຊ൪ڥͰෆཁͰ͋Γɺѱҙͷ͋Δ߈ܸΛՄೳʹ͢ΔڪΕ͕͋ΔͨΊɺআ͠·͢ɻ composer require࣌ʹ --dev ΦϓγϣϯΛ͚ͭΔ͜ͱͰɺຊ൪ڥͰ composer install --no-dev Λ࣮ߦ͢Δ͜ͱͰ։ൃϥΠϒϥϦΛഉআͰ͖ ·͢ɻ
– αΠτ๚ऀ͕ࣗͰΞΧϯτΛ࡞Δ͜ͱΛېࢭ͢Δ – ϢʔβʔID “1”Λอޢ͢Δ – ෆཁͳݖݶ͕༩͞Ε͍ͯͳ͍͔֬ೝ͢Δ – ηΩϡϦςΟΞοϓσʔτ௨ͷऔಘ –
DrupalͷΞοϓσʔτ – ։ൃऀ༻ϞδϡʔϧͷΞϯΠϯετʔϧ ԋश ͬͯΈΑ͏
DrupalͷύϑΥʔϚϯε্ରࡦ
DrupalͷύϑΥʔϚϯε্ରࡦ ߦ͏͖ηΩϡϦςΟઃఆ֤αΠτͷཁ݅ʹΑͬͯҟͳΓ·͕͢ɺҰൠతͳͷ Λ͜͜Ͱհ͠·͢ɻ 1. Ωϟογϡͷઃఆ 2. CSSͱJSͷू 3. ෆཁͳϞδϡʔϧͷΞϯΠϯετʔϧ 4.
ը૾ͷ࠷దԽ
DrupalͷΩϟογϡྫ 1. Internal Dynamic Page Cache ಗ໊ϢʔβʔɺೝূࡁΈϢʔβʔํʹରͯ͠Ωϟογϡ͞Εͨ ϖʔδΛ৴͢ΔɻʢύʔιφϥΠζ͞Εͨ෦Λআ͘ʣ 2.
Internal Page Cache ಗ໊Ϣʔβʔʹରͯ͠Ωϟογϡ͞ΕͨϖʔδΛDBʹอଘ͠ɺ ৴͢ΔɻΩϟογϡͷ༗ޮظݶ [ڥઃఆ] > [ύϑΥʔϚϯε] ͔Βઃఆɻ 3. Views Cache ViewsͰ࡞ͨ͠Ϧετͷ݁ՌΛΩϟογϡ͢Δɻ ҙ – ্هͷΩϟογϡඪ४Ͱ༗ޮԽ͞Ε͍ͯ·͕͢ɺ։ൃ࣌ʹແޮ Խͨ͠߹ͳͲɺϦϦʔεલʹ༗ޮԽ͢Δඞཁ͕͋Γ·͢ɻ – ଟ͘ͷΩϟογϡϢʔβʔ͕ϩάΠϯ͍ͯ͠ΔͱແޮԽ͞Ε· ͢ɻ 1. Ωϟογϡͷઃఆ Drupalʹଟ༷ͳΩϟογϡγεςϜ͕͋Γ·͢ɻ͜ΕΒΛ༗ޮԽ͢Δ͜ͱͰɺϦΫΤετຖʹൃੜ͢Δෛՙͷߴ͍ॲཧ ʢDBଓɺઃఆͷಡΈࠐΈɺϢʔβʔηογϣϯͷॳظԽʣΛܰݮͰ͖·͢ɻ
CSSͱJSϑΝΠϧͷू [ڥઃఆ]ʼ[ύϑΥʔϚϯε]ʼ[ଳҬ෯࠷దԽ] ͷνΣοΫϘοΫεʹνΣο ΫΛೖΕɺߏΛอଘ ҙ CSSͱJSϑΝΠϧΛूͷରͱ͢ΔͨΊʹɺϑΝΠϧΛςʔϚ·ͨϞ δϡʔϧͷ *.libraries.yml Ͱఆٛ͠ɺಡΈࠐ·ͤΔඞཁ͕͋Γ·͢ɻςϯϓ
ϨʔτʹϑΝΠϧͷϦϯΫΛهड़͢ΔͷόουϓϥΫςΟεͰ͢ɻ 2. CSSͱJSͷू DrupalͰଟͷCSSϑΝΠϧͱJSϑΝΠϧΛऔΓѻ͍·͢ɻ ͜ΕΒू͢Δ͜ͱͰ1ͭͷʢ·ͨগͷʣϑΝΠϧͱͳΓɺϦΫΤετճΛݮͰ͖·͢ɻ ूલ 100ϑΝΠϧ ूޙ 3ϑΝΠϧ
3. ෆཁͳϞδϡʔϧͷΞϯΠϯετʔϧ ར༻͍ͯ͠ͳ͍Ϟδϡʔϧ͕༗ޮԽ͞Ε͍ͯΔ߹ɺDrupal͕ىಈʢbootstrapʣͨ͠ࡍʹɺ ϑΝΠϧ͕ಡΈࠐ·ΕΔͨΊɺॲཧ͕͘ͳΓ·͢ɻ ϞδϡʔϧͷΞϯΠϯετʔϧ [ػೳ֦ு]ʼ[ΞϯΠϯετʔϧ] ͔ΒɺΞϯΠϯ ετʔϧ͍ͨ͠ϞδϡʔϧʹνΣοΫΛೖΕɺ ϖʔδ࠷ԼͷΞϯΠϯετʔϧϘλϯΛΫϦο
Ϋ͠·͢ɻ
4. ը૾ͷ࠷దԽ DrupalͰը૾ελΠϧػೳΛར༻͢Δ͜ͱͰɺΞοϓϩʔυͨ͠ը૾ΛॖখτϦϛϯά͢Δ͜ͱͰɺϩʔυ͢Δը૾ ͷ༰ྔΛݮ͢Δ͜ͱ͕Ͱ͖·͢ɻ ը૾ελΠϧΛద༻͍ͯ͠ͳ͍ը૾Λදࣔ͢ΔͱɺΞοϓϩʔυͨ͠ࡍͷαΠζʢ5MBɺ10MBͰʣͰදࣔ͞ΕΔͨ ΊɺಡΈࠐΈ͕͘ͳΓ·͢ɻ ΦϦδφϧը૾ʢ1.2 MBʣ ΤϑΣΫτΛՃ •
֦ுͱτϦϛϯά • εέʔϧ αΠζΛ࠷దԽ 250 KB 200 KB
– Ωϟογϡͷઃఆ – CSSͱJSͷू – ෆཁͳϞδϡʔϧͷΞϯΠϯετʔϧ – ը૾ͷ࠷దԽ ԋश ͬͯΈΑ͏
࿅श
࿅श1 ίʔϙϨʔταΠτΛߏஙͯ͠ެ։ͨ͠ͱ͜Ζɺ֮͑ͷͳ͍Ϣʔβʔ͕ଟՃ͞Ε͍ͯ·ͨ͠ɻ͜ͷαΠτʹձһ ػೳ͋Γ·ͤΜɻ ͜ͷΑ͏ͳBotѱҙͷ͋Δ๚ऀʹΑΔΞΧϯτ࡞Λ͙࠷దͳํ๏Λબ͍ͯͩ͘͠͞ɻ 1. ༻͍ͯ͠ΔςʔϚʹ͋Δձһొ༻ϑΥʔϜͷςϯϓϨʔτΛআ͢Δɻ 2. ϢʔβʔҰཡΛఆظతʹ֬ೝ͠ɺݟ֮͑ͷͳ͍ϢʔβʔΛআ͢Δɻ 3. ڥઃఆʼΞΧϯτͷઃఆ͔ΒΞΧϯτΛొͰ͖ΔׂΛཧऀͷΈʹ͢Δɻ
4. ΧελϜϞδϡʔϧΛ࡞͠ɺձһొϑΥʔϜΛແޮԽ͢Δɻ
࿅श1 ίʔϙϨʔταΠτΛߏஙͯ͠ެ։ͨ͠ͱ͜Ζɺ֮͑ͷͳ͍Ϣʔβʔ͕ଟՃ͞Ε͍ͯ·ͨ͠ɻ͜ͷαΠτʹձһ ػೳ͋Γ·ͤΜɻ ͜ͷΑ͏ͳBotѱҙͷ͋Δ๚ऀʹΑΔΞΧϯτ࡞Λ͙࠷దͳํ๏Λબ͍ͯͩ͘͠͞ɻ 1. ༻͍ͯ͠ΔςʔϚʹ͋Δձһొ༻ϑΥʔϜͷςϯϓϨʔτΛআ͢Δɻ 2. ϢʔβʔҰཡΛఆظతʹ֬ೝ͠ɺݟ֮͑ͷͳ͍ϢʔβʔΛআ͢Δɻ 3. ڥઃఆʼΞΧϯτͷઃఆ͔ΒΞΧϯτΛొͰ͖ΔׂΛཧऀͷΈʹ͢Δɻ
4. ΧελϜϞδϡʔϧΛ࡞͠ɺձһొϑΥʔϜΛແޮԽ͢Δɻ ਖ਼ղɿ3
࿅श2 ࣍ͷ͏ͪɺDrupalͷύϑΥʔϚϯε্ʹد༩͢ΔઃఆΛશͯબ͍ͯͩ͘͠͞ɻ ʢ3ͭબ͍ͯͩ͘͠͞ɻʣ 1. CSSɺJSϑΝΠϧΛू͢Δɻ 2. ಗ໊ϢʔβʔɺೝূࡁΈϢʔβʔʹ༩͞Ε͍ͯΔෆཁͳݖݶΛআ͢Δɻ 3.
දࣔ͢Δը૾ʹը૾ελΠϧΛద༻͢Δɻ 4. ෆཁͳϞδϡʔϧΛΞϯΠϯετʔϧ͢Δɻ
࿅श2 ࣍ͷ͏ͪɺDrupalͷύϑΥʔϚϯε্ʹد༩͢ΔઃఆΛશͯબ͍ͯͩ͘͠͞ɻ ʢ3ͭબ͍ͯͩ͘͠͞ɻʣ 1. CSSɺJSϑΝΠϧΛू͢Δɻ 2. ಗ໊ϢʔβʔɺೝূࡁΈϢʔβʔʹ༩͞Ε͍ͯΔෆཁͳݖݶΛআ͢Δɻ 3.
දࣔ͢Δը૾ʹը૾ελΠϧΛద༻͢Δɻ 4. ෆཁͳϞδϡʔϧΛΞϯΠϯετʔϧ͢Δɻ ਖ਼ղɿ1, 3, 4
DrupalͷΩϟογϡʹؔ͢ΔҎԼͷهड़Ͱɺਖ਼͍͠ͷΛͯ͢બ͍ͯͩ͘͠͞ɻ ʢ2ͭબ͍ͯͩ͘͠͞ɻʣ 1. DrupalʹΩϟογϡػೳͳ͘ɺ֎෦ͷCDNͰϖʔδΛΩϟογϡ͢Δඞཁ͕͋Δɻ 2. DrupalͷΩϟογϡػೳVarnishͷΩϟογϡαʔόʔ͕ͳͯ͘ར༻Ͱ͖Δɻ 3. ೝূࡁΈϢʔβʔʹΑΔϦΫΤετͰɺΩϟογϡͯ͢ແޮԽ͞ΕΔɻ
4. Drupalʹඪ४ػೳͰΩϟογϡػೳ͕͋Δ͕ɺΠϯετʔϧޙແޮԽ͞Ε͍ͯΔͨΊɺຊ൪ެ։લʹ༗ޮԽ͢Δ ඞཁ͕͋Δɻ 5. ϖʔδશମͷΩϟογϡͷଞʹɺಈతϖʔδͷҰ෦ΛΩϟογϡ͢Δ͜ͱ͕Ͱ͖Δɻ ࿅श3
DrupalͷΩϟογϡʹؔ͢ΔҎԼͷهड़Ͱɺਖ਼͍͠ͷΛͯ͢બ͍ͯͩ͘͠͞ɻ ʢ2ͭબ͍ͯͩ͘͠͞ɻʣ 1. DrupalʹΩϟογϡػೳͳ͘ɺ֎෦ͷCDNͰϖʔδΛΩϟογϡ͢Δඞཁ͕͋Δɻ 2. DrupalͷΩϟογϡػೳVarnishͷΩϟογϡαʔόʔ͕ͳͯ͘ར༻Ͱ͖Δɻ 3. ೝূࡁΈϢʔβʔʹΑΔϦΫΤετͰɺΩϟογϡͯ͢ແޮԽ͞ΕΔɻ
4. Drupalʹඪ४ػೳͰΩϟογϡػೳ͕͋Δ͕ɺΠϯετʔϧޙແޮԽ͞Ε͍ͯΔͨΊɺຊ൪ެ։લʹ༗ޮԽ͢Δ ඞཁ͕͋Δɻ 5. ϖʔδશମͷΩϟογϡͷଞʹɺಈతϖʔδͷҰ෦ΛΩϟογϡ͢Δ͜ͱ͕Ͱ͖Δɻ ࿅श3 ਖ਼ղɿ2, 5
ຊͷΞδΣϯμऴྃ
ΞδΣϯμ 1. αΠτϏϧμʔ͚ηΩϡϦςΟઃఆ 2. DrupalͷύϑΥʔϚϯε্ରࡦ 3. ࿅श
None