Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Ϩϯαό͚ͷಓ
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
uzulla Hachioji.pm ʮϝʔϧϑΥʔϜΛॻ͍ͯΒ͍ͯͨ͠ʯ
Slide 4
Slide 4 text
ϨϯαόͬͯΔਓʁ (ڍखئ͍·͢) (༐ؾͷࢦඪ)
Slide 5
Slide 5 text
Ϩϯαόͬͨࣄͳ͍ਓʁ (ڍखئ͍·͢) (ͲΕ͘Β͍ϚδτʔϯͰ͖͔͢ࢦඪ)
Slide 6
Slide 6 text
ʮϨϯαό͚ͷಓʯͱʁ • ! "࡞๏"ແࢹ͢Δ • " ϞμϯʢϞμϯͱʁʣΑΓʹ͢Δ • # ۀऀ͕ʮΑ͠ʯͱ͠ͳ͍Մೳੑ͕͋Γ·͢
Slide 7
Slide 7 text
• ϨϯαόͰґଘͤ͞ͳ͍ʮී௨ʯΛ
Slide 8
Slide 8 text
• "ڐՄΛಘΔͳɺँࡑͤΑ" • (அΒͳ͍͕ҟ༷ͳͷͰڐՄͮ͠Β͍) • DISCRAIMER • ! At your OWN risk. !
Slide 9
Slide 9 text
͝ଘϨϯαόͱʁ • (جຊ)ߴूLAMPɺrootݖݶͳ͠ • Pros • ʢVHෳ࡞ΔͳΒʣ҆ͯ͘ཧෆཁ ϝʔϧͱDNS͕͍ͭͯ͘Δ • Cons • ݹͯ͘༥௨͕͖͔ͳ͍ˍṖͷ࡞๏ DNS͕͍͖ͭͯͪΌ͏
Slide 10
Slide 10 text
ฏ͍ͨ͘͏ͱ • PaaSͱ͔VHҰݸʹ̍ܖͰ͔͍ͨʂ • ಛʹɺ༡ͼͷίʔυΛಈ͔͓ͯ͘͠ͱ͔ • ͏OSɾϛυϧΣΞอक໘ • ͍͏΄Ͳrootݖݶ͍ΒΜͳ… ʢ˞ݸਓͷײʣ • ʢC֦ு͔ͭΘͳ͍ͳΒʣ
Slide 11
Slide 11 text
Netlify… • DNSͳͲผʹඞཁ • GitωΠςΟϒɺઃఆ͕(ࣝ͋Ε)Ұॠ • ͔͍͍ͬ͜ • VHҰͭͰ̍ܖ • ʮGitHub PagesͰ͍͍ͷͰʁʯ • PHP͏͔͝ͳ͍ !
Slide 12
Slide 12 text
Heroku… • (ͪΌΜͱॻ͚)εέʔϧΞτͰ͖Δ • ϛυϧΣΞ͕๛ • σϕϩούʔϑϨϯυϦʔ • ENV͕ݸผʹઃఆ͍͢͠ • ͔͍͍ͬ͜ • VHҰͭͰ̍ܖ
Slide 13
Slide 13 text
Ϩϯαό… • εέʔϧΞτͰ͖ͳ͍ • ͍ʢॾઆ͋Δʣ • VHͨ͘͞Μͭͬͯ͘ఆֹʂ • DBͨ͘͞Μͭͬͯ͘ఆֹʂ • (ϓϥϯʹΑΓ·͢) • ཧը໘ϙνϙνˍͭͩ͠͠Δ͍
Slide 14
Slide 14 text
ۙͷϨϯαό • ࣮࣭WordPressʢCMSʣ༻ڥ • ʮWPಈ͚͑͑Ζʯͱ͍͏Կ͔͕ݟ͑Δ • WP͕ʮਅ໘ʯͰҾ͖ͣΒΕ͍ͯΔ(?) • → ݁ՌతʹPHPͷόʔδϣϯ͕Ξοϓ͍ͯ͠Δ • → ͳͲओு࢝͠Ίͨ
Slide 15
Slide 15 text
ࢲͱϨϯαόͷ͖߹͍ • ࣄͰWordPress • ࣄͰCMS(OSS/ಠࣗ) • ࣄͰϖϥΠνɾίʔϙϨʔταΠτ • ϝʔϧαʔόʔ • झຯͰ࣮ݧɾ։ൃɾσϞͳͲ
Slide 16
Slide 16 text
ॴͰϨϯαό • ࣮ʢେʣsshͰ͖Δ • ཧ༝ʢधཁʣෆ໌ɺҰ෦ͷϨϯαό͕ੲ͔Β Ͱ͖ͨͷͰԣฒͼͷͨΊʁ • Ͳ͜ʮࣗݾʯͱ໌ه
Slide 17
Slide 17 text
• sshͰ͖ͳ͍Ϩϯαόආ͚Δ • ແྉϨϯαό • ҆Ձϓϥϯ • ʮΕ͖͋͠ΔΏ͍͠ΐ͋Δۀऀʯ • ͜ΕΒͷ͍Έͪແ͍ʢภݟʣ
Slide 18
Slide 18 text
Φν • SSH͏ɺNO MORE FTP • ϞμϯͳσϓϩΠΛ͢Δ • ʮʯΛ͢Δ • Τϥʔ • ϩά • ͜ΕͰେ׆༻ʂ
Slide 19
Slide 19 text
sshɾγΣϧ
Slide 20
Slide 20 text
݁ɿ ͓͏ʂʂʂ • ࠓͲ͜Ͱ͋Δ(࠷ͷϓϥϯͰͳ͚Ε) • ͭΒ͞ͷׂ̑γΣϧΛఘΊΔ͜ͱʹ͋Δ • Τϥʔϩά͕tail -fͰ͖Δ͚ͩͰҧ͏
Slide 21
Slide 21 text
ٯʹΞϯνύλʔϯʮFTPࣗಈԽʯ • ʢ҉߸Խͱ͔Ҏલʹʣ • ਗ਼͘ਖ਼͍͕͠ɺແବͰ͢(ݸਓͷओு) • ͦͷಓམͱ݀͠ʹ௨͍ͯ͡Δ • ଞͷڥͱͷϫʔΫϑϩʔ͕ͣΕ͗͢Δ
Slide 22
Slide 22 text
Ͳ͏׆༻͢Δ͔ʁ • লུ • ϩάΠϯͨ͠ΒखݩͷPCͱಉ͡ϊϦͰ͍͜͏ʂ • ϩάΠϯͯ͠vi͠·͘Ζ͏ʢʁʁʣ
Slide 23
Slide 23 text
ͰίϚϯυ͕ແ͍orݹ͍ • ͨͱ͑git 1.8.3ͱ͔… • ݹ͍ͳΒɺϏϧυͪ͠Ό͓͏ϗττΪε • ͳΜͱେϏϧυͰ͖Δڥ͋Δ $ wget https://ʙ/git-2.9.5.tar.gz $ tar xvzf gitʙ; cd gitʙ $ configure --prefix=$HOME/local/bin $ make -i install # -i is ignore $ echo "PATH=$PATH:~/local/bin/" >> ~/.bashrc
Slide 24
Slide 24 text
root͕ͳͯ͘Ͳ͏ʹ͔ͳΔ • $HOMEʹ͍ΕͪΌ͍͍͑ΜͩΑʂ • --prefix͚ͯϏϧυ • PATH௨͍͍ͤ͡ΌΜ͍͍͡ΌΜ • ʢͨͱ͑ʣaws-cliͱ͔s3cliͱ͔͍Εͯ͜ • tarͱ͔͕GNUͰͳ͍? ͍Ε͍ͯ͜͏ʂ
Slide 25
Slide 25 text
ϥϯλΠϜґଘπʔϧͲ͏͢Δʁ • Perlͱ͔Pythonͱ͔ • ʮ(prefix͖Ͱ)ϥϯλΠϜΛϏϧυʯ • ݹ͍ͷΛແཧͯ͠Θͳ͍΄͏͕͍͍ • ·͋PHPͰॻ͚͍͍Μ͡ΌͶʁ • ͋Δ͍go langͷπʔϧΛ͑ΒͿ
Slide 26
Slide 26 text
ʮͱ͜ΖͰ Linuxbrewʁʯ • ґଘΛ͍Ε͍ͯ͘ͱϦιʔε੍ݶʢʁʣͰࢮ͵ ʢྫɿConoHa WINGʣ • (جຊ)Βͳ͍ʢྫɿFreeBSDͷ͘͞Βʣ • ੈքͦ͜·Ͱ͘ͳ͔ͬͨ • ಈ͘ॴ͋Δ͔Ͷʂ • ͋Δ͍ͬͱ͢Δʢলུʣ • ۀऀ͞Μ͕Μͬͯʂ !
Slide 27
Slide 27 text
ϨϯαόCLIͷҙ • ࣗݾ • ṖͷϦιʔε੍ݶʹҙ • ಥϓϩηε͕ࢮ͵ • ࢦඪ͕͖ͬΓͯ͠ͳ͍ ࣗݾ͔ͩΒ͔ͨ͠ͳ͍ʢʁʣ • ۀऀ͞Μ͕Μͬͯʂ
Slide 28
Slide 28 text
σϓϩΠ
Slide 29
Slide 29 text
ͭΒ͞ͷׂ͕̏͜͜ • ͓࡞๏ͷʮFTP & Ṗͷchrootʯ • FTPݖݶ͕Ψό͍ɺϛεͰଈࢮ ʢϓϥϯʹΑΔ͕ɺID͕Ұݸ͔͠ͳ͍ʣ • ṖͷσΟϨΫτϦߏ • ܁Γฦ͠ʹͳΔ͕ɺ͓࡞๏ແࢹ͠Α͏
Slide 30
Slide 30 text
• ී௨ʹ • ʢsshͯ͠ʣgit pull • Shell Script/Makefile • ansible( sshࣗಈԽ) • Deployer • ͔͍͍ͭ͑ΜͰ͢Α
Slide 31
Slide 31 text
ॳखɿنఆͷDocRootΛແࢹͤΑ • ۀऀͷσϑΥΛແࢹͤΑ • public_htmlҎԼʹϑΝΠϧΛஔ͔ͳ͍ • ద͓͍ͯSymlink͠Α͏ • publichtdocsΛln -s • (FollowSymlinks͕Offʁۀऀม͑Α͏͆)
Slide 32
Slide 32 text
ͨͱ͑ྫ # Ϩϯαόͷઃఆলུ $ mkdir ~/repo; cd ~/repo $ git clone git@github.com:uzulla/Mizam.git $ cd Mizam $ make dev-setup # composer instlal $ ln -s ~/repo/Mizam/public/ \ ~/www/pktest.8oji.tokyo/public_html
Slide 33
Slide 33 text
ΫϨσϯγϟϧ • Tokenͱ͔ΛͲ͜ʹࠐΉ͔ʁ • VPSಉ༷ʹ dotenv • ʮ্Ґʯͷ.htaccess׆༻ # (publicͷΈɺwwwҎԼʹln -sͨ͠ڥͰʣ # ~/www/pktest.8oji.tokyo/.htaccess SetEnv TOKEN xxxxxx # $_ENVͰͳ͘getenv()Ͱऔಘ͢Δ΄͏͕ແ # symlinkΛͨͲΒͳ͍ͷͰɺҙ # cli͋ΔͳΒແཧ͔ͳʔw
Slide 34
Slide 34 text
ͭ·Γ # Appͷ git cloneઌ ~/repo/Mizam/ # ຊͷhtdocs ~/repo/Mizam/public # Ϩϯαόઃఆͷhtdocsʢln -s͢Δʣ ~/www/pktest.8oji.tokyo/public_html # App dirͷʮ֎ʯʹɺenv༻ͷ.htaccessΛͭ͘ΔʢOPʣ ~/www/pktest.8oji.tokyo/.htaccess
Slide 35
Slide 35 text
SymlinkΛ͏ࡍͷҙ • ʮͨͲΓํʯڥͰҟͳΔͷͰҙɾ׆༻ • PHPͷ__DIR__SymlinkΛḷΔ realpath()૬ʹͳΔ →configϑΝΠϧhtdocsҎԼͷඞཁͳ͍ ※ ެ։σΟϨΫτϦʹ͢Δ߹ҙ • ApacheSymlink͔ݟͳ͍ (.htaccessͷPathͳͲ)
Slide 36
Slide 36 text
ϨϯαόͰDeployer • ssh͕Ͱ͖ΔͷͰɺී௨ʹಈ͘Αʂ • (…ࢲͷͨΊͨ͠ݶΓͰ) • (͘͞Βcsh͔ͩΒɺbashʹchshඞཁ) • deployerϦϞʔτ͕bashલఏΆ͍ • DBϚΠάϨʔγϣϯπʔϧಈ͘ • ྫɿgithub.com/uzulla/deployer-phinx-test
Slide 37
Slide 37 text
DBૢ࡞ • phpMyadminͱ͔͔ͭͬͯΒΕͳ͍Ͱ͠ΐ • ී௨ʹssh ϙʔτϑΥϫʔυͯͭ͠ͳ͝͏ • Sequel Proͱ͔DBeaverͱ͔… • αʔόʔ্Ͱphinxͱ͔ಈ͘Αʢલड़ʣ
Slide 38
Slide 38 text
(CI/)CD • ͔͍͍ͭͬͯΜͩΑʂʢ͍ͭ͜͠ʣ • ʢSymlinkΛ͏ͳΒʣී௨ͷVPSͱ΄΅ಉ༷ • CIͰσϓϩΠ • GitHub Ac5ons • ྫɿNetlify ϨϯαόͰͶͬͱΓͱͨ͠ϓΞϚϯ ζܧଓతσϓϩΠ
Slide 39
Slide 39 text
(GHAͰ)CDʹ͢Δͱ… • GitHubίϛοτݖݶͰΞΧϯτཧͰ͖ͯศར • νʔϜʹFTPΞΧϯτΛࢃ͔ͳͯ͘ྑ͍ • αʔόʔϑΝΠϧΛ͍͡Βͳ͍ • ʢ͍ͬͨ͡ ! ͕Ͱ͖ͯͯdiff͕ݟΕΔʢʣʣ
Slide 40
Slide 40 text
↪ ંฦ͠ ͜͜·Ͱʹ࣭͕͋ΕϠδͰ͍ͩ͘͞
Slide 41
Slide 41 text
VHʹ͍ͭͯ ʢͱ͍͏͔DNSʹ͍ͭͯʣ
Slide 42
Slide 42 text
ϨϯαόͱDNSີ݁߹ • ίϯύωͰVHͭ͘Δ→AϨίʔυ͕ੜ͑Δ • NameServerΛϨϯαόʹ༬͚Δ͔͠ͳ͍ • ʮNSΛ༬͚ͨ͘ͳ͍ʯʢҰ෦ͷਓؒஊʣ • ϨϯαόͷϨϯλϧDNSػೳ • ଟ͘ͷϨϯαό֎෦NSΛߟྀͯ͠ͳ͍ɺͭΒ͍
Slide 43
Slide 43 text
DNS͕ࣗͰͲ͏ʹ͔Ͱ͖ͳ͍ͱ… • ͢ͳ͓ʹෆศ • ৭ʑͳΠϯϑϥʹϨϯαόΛΈࠐΈͮΒ͍ • Route53Ͱ"ALIAS"͍͍ͨ • CloudFlareʢʣ͕͔ͭ͑ͳ͍ • ۃكʹɺ༬͚ͳ͍ͱVH͕͖Εͳ͍߹͋Δ • ֤ࣾؤுͬͯ΄͍͠ !
Slide 44
Slide 44 text
େͲ͏ʹ͔ಈ͘ • େCNAME͔A͔NSΛΉ͚Εಈ͖͢Δ • ·ΕʹϨϯαόͷϗετมߋͰഁ໓͢Δ͜ͱ • ఘΊΑ͏ʢʁʁʁʣ • Ϩϯαό͕ఏڙ͢ΔແྉSSL(Let's Encrypt) ͕ಈ͔ͳ͍͜ͱ͕͋Δ • ߟྀͯ͠ΔͷͰಈ͘ۀऀʢ͘͞Βʣ
Slide 45
Slide 45 text
Tips ઃఆͷௐํ • Ϩϯαόͷࢦ͕ࣔ͋ΕͦͷΑ͏ʹ • ͳ͚Ε͠ΒͯCNAMEΛઃఆ͢Δ • ApexυϝΠϯͳΒ֮ޛͯ͠AΛઃఆ # ௐΔྫ $ dig {ίϯύωͰ࡞ͬͨυϝΠϯ} @{ʮϨϯαόͷʯNS}
Slide 46
Slide 46 text
$ dig pktest.8oji.tokyo @ns1.dns.ne.jp # ུ ;; ANSWER SECTION: pktest.8oji.tokyo. 3600 IN A 59.106.19.66 # ;; AUTHORITY SECTION: pktest.8oji.tokyo. 3600 IN NS ns1.dns.ne.jp. pktest.8oji.tokyo. 3600 IN NS ns2.dns.ne.jp.
Slide 47
Slide 47 text
$ dig www.example.com @ns.example.com # ུ ;; ANSWER SECTION: www.example.com. 3534 IN A XXX.XXX.XXX.XXX ʔʔʔ www.example.com. 3534 IN CNAME www1234.example.jp
Slide 48
Slide 48 text
ϩά
Slide 49
Slide 49 text
ΤϥʔϩάͷͭΒ͞ • ͭΒ͞ͷׂ͕̏͜͜ɺຊʹශऑ • ίϯύωͰݟΔɺFTPͰDLɺݕࡧͳ͠ɺࠈ • (େ)ApacheͷErrorLogʹҰॹʹग़͍ͯΔ • ͦͦOffͷ͜ͱଟ͍
Slide 50
Slide 50 text
ͳͷͰ • ࠷ݶ • ಠࣗͷPathʹग़ྗ͢Δ ʢίʔυ͕յΕ͍ͯΔͱؾ͚ͮͳ͍ͷͰʣ ίʔυͷ֎ɺphp.iniʹઃఆ͢Δ͖ ʢphp.ini, .htaccess.user.iniʣ • E_ALLʹ͠·͠ΐ͏
Slide 51
Slide 51 text
ͰɺͲ͏ͬͯݟΔʁ • ૉʹssh Ͱtail -fͨ͠Γgrepͨ͠Γ • Ξϯνύλʔϯ:ΤϥʔϩάΛࠩDL • REST (Restart) • ͳΈ͙ͩ·͍͠ • ਓʹΒͳ͚Ε͍͚ͳ͍࣌͋Δ…
Slide 52
Slide 52 text
Tips:FTPͷREST # REST → RESTART # lftp ίϚϯυͷ߹ $lftp hoge@example.jp # ॳճDL > get large.log # ࠩDL > reget large.log
Slide 53
Slide 53 text
s"pʹ͋ΔΑ $ sftp hoge@example.jp sftp> get large.log Fetching /path/to/large.log to large.log sftp> reget large.log Resuming /path/to/large.log to large.log
Slide 54
Slide 54 text
ͬͱͪΌΜͱ͍ͨ͠ • ֎෦ϩάαʔϏεͷ׆༻ • CloudWatch Logs • PaperTrail • Rollbar(Τϥʔ…?) • • Fatal͕ͰͨΒSlackʹ௨ඈ͢ͳͲͰ͖Δ
Slide 55
Slide 55 text
ϩάͷૹΓํ • File tail͑ͳ͍… • ʮಈ͚͘Ͳʢ͈́ʯ • େϓϩηεͳͷͰɺෆࢥٞͳྗͰࢮ͵ • ͳͷͰ • Τϥʔɾྫ֎ॲཧʹॻ͘ • ࣗྗͰtailͯ͠ૹΔ
Slide 56
Slide 56 text
Τϥʔɾྫ֎ॲཧʹॻ͘ • ·ͬͱ͏ͳίʔυͳΒ͜ΕͰOKͷͣ • (ޙड़ͷྫࢀরʣ • ҙɿૹ৴ෛՙʮߴ͍ʯ • No'ceΈ͍ͨͳͷૹΒͳ͍ɺຊʹඞཁͳͷ ͚͓ͩ͘Δ͖ɻ
Slide 57
Slide 57 text
ࣗલͰΠϕϯτ࣌ʹૹΔ • CloudWatch logྫ • github.com/uzulla/send-log-to-cloudwatch-log- sample.php • maxbanton/cwhͰmonologಉ༷ • (Մೳ͕ͩࣗલૹ৴݁ߏ໘ ɹnextSequenceToken͕ͭΒ͍ʣ
Slide 58
Slide 58 text
FATALΛͲ͏͢Δ͔ʁ • FatalͰࢮ͵ͱΞϓϦ͔Βඈͤͳ͍ • ΤʔδΣϯτͷৗறʮେʯͰ͖ͳ͍ • ۪ʹϩά૿ΛCronͰૹΓ͚ͭΔ͔͠ͳ͍… • (ࡶͳͷͰऔΓ͜΅ͪ͠ΐͬͱఘΊΔ) • PHP͕ѼઌࢦఆͰSYSLOGΛͳ͛ΒΕΕφΞ… ʢpapertrailTLSͰSYSLOGΛड͚ΒΕΔʣ
Slide 59
Slide 59 text
CronͰ૿ϩάΛૹΔ • ϩά͕૿͚۪͑ͨͩʹૹΔ • Papertrailྫ • github.com/uzulla/send-log-to-papertrail-cron.php • cronͷMAILTOΛͪΌΜͱઃఆ͠Α͏ • log truncateผ్CronͰ
Slide 60
Slide 60 text
ϩʔςʔγϣϯʹ͍ͭͯ • CronͰεΫϦϓτճ͔͢͠ͳ͍… • औΓ͜΅͠յΕ͕க໋తͳϩάผͰ • ʮக໋తϩά͕େྔʹग़ΔΞϓϦͱ…͏͝͝ʯ #!bash cat error.log | gzip -c \ > /path/to/error.log.`date +%w`.gz :> /path/to/error.log
Slide 61
Slide 61 text
ϩάʹ͍ͭͯ • க໋తϩάͱग़͚͢͠Δͱָ # ҙਤͤͣʮͰͪΌͬͨʯϩάશ෦க໋తͰ͠ΐʁ ini_set('error_log','/path/to/fatal_error.log'); # ʮҙࣝతʹʯଞϑΝΠϧʢmonologͰ͍͍Αʂʣ error_log( date("Y/m/d H:i:s")." - ".$message."\n", 3, '/path/to/app_error.log');
Slide 62
Slide 62 text
ϨϯαόͷϩάपΓࠜຊతͳղܾࡦ͕ͳ͍ • ͩΕڵຯ͕ͳ͍Μͩͳʂ • WPͱ͔ECCUBEͰΤϥʔϩάͪΌΜͱݟͯΔਓ ͍Δͷ͔ʁ • ʮԶΈ͍ͨͳϨϯαόͰϩάݟ͍ͨΕɺ ଞʹɺ͍·͔͍ͬͯ͢Ͷʔ͔ɺʯ • ۀऀ͞Μ͕Μͬͯʂʂ
Slide 63
Slide 63 text
Ϩϯαόతͳ༨ஊ • ϑΝΠϧͷύʔϛογϣϯʹҙ͢Δ͜ͱ • ۀऀʹΑΔ͕ɺΓΖΜ͡ΐ͏ಉډਓʹʮΈ͑ͪΌ ͏ʯͷͰ • (ಉډͰɺPATH͕Θ͔ΓɺPermissionʹΑΔ͕) • ʮແҙຯͳ755ΊΑ͏Ͷʯ
Slide 64
Slide 64 text
όοΫΞοϓ
Slide 65
Slide 65 text
εΫϦϓτॻ͍ͯࣗͰΖ͏ • ྺ࢙తʹ͍ͬͯɺۀऀͷόοΫΞοϓΛ৴ͯ͠ ͍͚ͳ͍ • ଟॏͰͱΓ·ͬ͠ΐ͍ • CronͰݻΊͯS3ʹ͋͛Ε͓̺ • ʮόοΫΞοϓ͍͢͠ʯΑ͏ʹ࡞Ζ͏ • (ϨϯαόʹݶΒͳ͍͕)
Slide 66
Slide 66 text
• ۪ʹγΣϧεΫϦϓτ • tar.gzͰݻΊΔ • Symlinkҡ࣋ • DB • mysqldump͕·Εʹͳ͍͜ͱ͋Δɺ൵͍͠
Slide 67
Slide 67 text
• ετΞઌ֎෦ʹ • ී௨ʹs3cliͱ͔͍ΕΑ͏ʢԿͩʁʣ • S3ଆϥΠϑαΠΫϧ͕͋ΔͷͰ࠷ߴʂʂ (ੈཧΛؙ͛Ͱ͖Δ) • Amazon S3ͰΦϒδΣΫτͷ༗ޮظݶΛઃఆ
Slide 68
Slide 68 text
ϛϥʔతʹखݩʹམͱ͍ͨ͠ͱ͖ • FTPͤͣɺrsync͕͍͍ͧ • (ssh+rsyncͬͯຊʹศརͩΑͶ…) $ rsync -auz -e "ssh" --progress \ user@example.jp:app app_copy # ͓ΈͰauvzͰΑ͍͔ͱ • ٯͰ͖·͕͢ɺrsyncʢʹݶΒͣϛϥʔΞο ϓϩʔυʣࣄނΓ͍͢ͷͰɺdry-runͯ֬͠ೝ ͔ͯ͠Βʹ͠Α͏Ͷɻ
Slide 69
Slide 69 text
ࢹ
Slide 70
Slide 70 text
֎ܗࢹ • ಛʹίϝϯτͳ͠ɺී௨ʹͦ͏͍͏αʔϏε͔ͭ ͑ΑΖ͍͠ • Up$me Robotͱ͔
Slide 71
Slide 71 text
ϝτϦοΫ • ϨϯαόͰϝτϦοΫͱ…͏͙͙಄͕… • Disk༰ྔ͘Β͍CronͰ͕ΜΕOK • ϩάʹ࣮ߦ࣌ؒΛࠐΜͰૹ৴ͱ͔…͏ͬ಄͕ • … • ͤΊͯෛՙ੍ݶ͖ͨͱ͖ʹΓ͍ͨ… • APIͰऔΓ͍ͨ…ۀऀ͞Μ͕Μͬͯʂ
Slide 72
Slide 72 text
ॴḨϨϯαό • ෛՙΤϥʔ֎ܗࢹͰؾ͔ͮ͘͠ͳ͍͔ • ॴḨϨϯαόɺఘΊ؊৺ • ۪ʹΞϓϦνϡʔχϯά͠·͠ΐ͏ • CDNΦϓγϣϯ֎͚CDNݕ౼͠·͠ΐ͏
Slide 73
Slide 73 text
։ൃڥ
Slide 74
Slide 74 text
ϨϯαόͰ։ൃͯ͠ͳΒͳ͍ • εςʔδϯάఔʹͯ͠ɺdevΊͱ͜͏ • LAMPͳΒڥखݩʹͭ͘ΕΔͰ͠ΐ • ϞμϯͰڥґଘͷͳ͍PHPΛॻ͖·͠ΐ͏ • Ͱ͖ΔͰ͠ΐ͏ʁʢʣ
Slide 75
Slide 75 text
• ڥΛ࡞ΔͳΒDockerΑΓVMͷ΄͏͕Α͍ • (େɺઃఆΛ͜ͶΔ͜ͱʹͳΔͷͰ) • ൿͷVM͕Ͱ͖Δ… • ansibleͰఆٛ͢Δͱ͔ͨ͠Β͍͍Α • ݹͷDistroͰ࡞ΔͷͩΔ͍ͳʔ͆ • ಠࣗύονDistroෆ໌ͳ͜ͱ • Linuxྗ͕ΘΕΔʢʁʣ
Slide 76
Slide 76 text
• ϙʔτϑΥϫʔυͰຊ൪ͷDBΛखݩڥʹͭͳ͙ ͘Β͍ී௨ʹͰ͖Δ • Phinxͱ͔ϚΠάϨʔγϣϯπʔϧΒͤΔͷͰ ͖Δ • ϨϯαόΛಛผͩͱࢥΘͳ͍͜ͱ͕؊ཁ
Slide 77
Slide 77 text
མͱ݀͠ • ϛυϧΣΞઃఆʹҙ • ಛʹMysqlͷsql modeͳͲ • php.iniࠜੑͰἧ͑Δ • php.iniͷ - h2ps:/ /speakerdeck.com/uzulla/ php-dot-inifalsehua
Slide 78
Slide 78 text
·ͱΊ
Slide 79
Slide 79 text
• ͏VPSӡ༻ͨ͘͠ͳ͍Ͱ͠ΐ… • ʢ̍υϝͰ̍ܖͷʣPaaSߴ͗͢ϫϩλ • ϨϯαόΛrootͷͳ͍Linuxͱͯ͠ݟΔ • ࡞๏ແࢹ͠Α͏ʢࣗݾʣ • ऑΛਖ਼͘͠ೝࣝ͠Α͏ • ͏·͘Εɺ͍͏΄ͲෳࡶͰͳ͍
Slide 80
Slide 80 text
ߋʹৄ͍͠ͱ͜Ζ • Ұॹʹ͚ͷಓΛΓ։͖·͠ΐ͏ • ͓ؾܰʹձSNSͰ͝૬ஊ͍ͩ͘͞ʂ • ͜͏͍ͬͨࣄʹલ͖ͳϨϯαόۀऀ༷ʂʂ
Slide 81
Slide 81 text
Φν • ʮ͜ͷҟৗͳྗͰɺΑͯ͘τϯτϯͰʁʯ • ʮͦΕͳʯ • ͕ۚ͋Δਓͤͤ͜·͍͜͠ͱΛ͠ͳͯ͘Α͍
Slide 82
Slide 82 text
Ҏ͓߱·͚
Slide 83
Slide 83 text
ConoHa WING • ࠷͔ۙͭͬͨ • ॳظແྉɺैྔ՝ۚϓϥϯ͕͋Δʂʂ • ϨϯαόΛͨΊ͢ͷʹѱ͘ͳ͍ • ࠷ར༻ظ͕ؒͳ͍ʂʂ2ԁ/࣌ʂ • CLIͷ੍ݶ͕ṖʢLinuxbrew͕མͪΔʣ • ॳظͳ͠࠷ར༻ظؒͳ͠ʂ
Slide 84
Slide 84 text
Tips • ʮϨϯαόۀऀ໊ʯͰΓํΛάάΔͳ • 95%͕ݹ͍όουϊϋ • ʮී௨ʯͷΓํΛ࣋ͪࠐΈ·͠ΐ͏ • ʮ͜ͷτʔΫࣗମ͕όουϊϋͳͷͰʁʯ
Slide 85
Slide 85 text
ϚωʔδυαʔϏε͓͏ • CDN > ෛՙ੍ݶ • ϝʔϧૹड৴ > IPϒϩοΫճආɺSPFɺDKIMର ԠɺWebhook • ࢹ • ϨϯαόΑΓߴͭ͘͘ͷέΔ
Slide 86
Slide 86 text
PHP͕͏͚͝… • JVM͕͏͘͝ʂʢʁʣ • ࡢൃද͞ΕͨΊΓʔ͞Μͷphp-java • h+ps:/ /github.com/php-java/php-java • ϨϯαόͰJVMݴޠ͕ಈ͘ʂʂʢʁʁʣ • ͬͯΈΑ͏ʂʢࡢ23࣌͝Ζʣ
Slide 87
Slide 87 text
No content
Slide 88
Slide 88 text
೦ʢࡢͬͯବͩͬͨ͆ʣ • kotlin?͏͘͝Β͍͠Αʂ • (CGIΈ͍ͨͳಈ࡞ʹͳΔ͚Ͳ͆)
Slide 89
Slide 89 text
PHPͷόʔδϣϯΞοϓ • ͍͖ͳΓΓସ͑ͳ͍ • खݩڥͰςετΛ·Θͯ͠Ҡߦ४උ͢Δ • ϨϯαόͰUnitTestΛ·Θ͢ͷ͋Γ • େ৭ʑೖͬͯΔPHPͷ࣮ߦύεʹҙ ʢޙड़ʣ • தʹͬͦ͜ΓΓସ͑ͯࢼͯ͠ΈΔʢসʣ
Slide 90
Slide 90 text
PHPόΠφϦͷॴ • whichͰ୳ͤͳ͍ɺ֤ࣾͰόϥόϥͰ͢ • Un-documentͳ͜ͱ͕ଟ͍ͷͰɺphpinfo()ݟΔ ͨͱ͑खݩͷ͘͞Βͷ߹ $ /usr/local/php/7.3/bin/php -v PHP 7.3.12 (cli) (built: Dec 5 2019 10:06:07) ( NTS ) $ /usr/local/php/4.4/bin/php -v PHP 4.4.9 (cli) (built: Dec 4 2019 14:37:37) • UnitTest࣌ʹඞͣόΠφϦͷύεΛࢦఆ͢Δ͜ͱ
Slide 91
Slide 91 text
νϡʔχϯάʢসʣ • େ(ڞ༗ͱͳΔ)DB͕ʢ࣌ؒଳͰʣ͍ • MysqlΑΓSqlite͕͍͜ͱ • సૹྔͰౖΒΕΔɺCDNΞηοτ৴Λ͚Δ • େ༰ྔσΟεΫͷ͍Έͪ…͏͝͝ • ϨϯαόͷϓϥϯΞοϓޮՌͳ͍ࣄଟ͍… • ෛՙͳΒɺૉʹPaaSͱ͔ʹҾͬӽͦ͏
Slide 92
Slide 92 text
ࢼ༻ظؒ • େ͖ͳͰ͍͑ͳ͍͕… • ͪΌΜͱղ͢ΕʂԿͰʂࢼ༻Ͱ͖Δʂ͜ ͱ͕ଟ͍ʂ • (ݸਓͷײͰ͢) • ͱΓ͋͑ͣࢼ༻ͯ͠Έ·͠ΐ͏ • ʢॳظඅ༻จԽͲ͏ʹ͔ͳΓ·ͤΜ͔Ͷʣ
Slide 93
Slide 93 text
Ϩϯαό֤ࣾͷࢲ৴ • WordPressҰຊʹͳͬͯ·ͤΜ͔ʁ • PHPͱ͍͏͢Β͍͠ݴޠΛಈ͔͢ʮϞμϯͳʯ Πϯϑϥͱ͕ͯ͠ΜΓ·ͤΜ͔ʁ • ֤ࣾʮதͷਓʯʮΘ͔ͬͯΔʯਓ͕ଟ͍ͷͰɺ Θ͔ͬͯΔͷͩͱ͓͍·͕͢ • ചͱ͍ͯ͠͠ͱ͍͏͓·͋͋ΔΜͰ͠ΐ ͏͕…
Slide 94
Slide 94 text
ฏͨ͘ݴ͏ͱ • DocRootͱϩά͚ͩͲ͏ʹ͔ͳΓ·ͤΜ͔Ͷ • LinuxbrewʢHomebrewʣೖΔͱ͘͢͝خ͍͠