$30 off During Our Annual Pro Sale. View Details »

できるPHP7アップグレード / php7 upgrade

hypermkt
October 08, 2017

できるPHP7アップグレード / php7 upgrade

バーチー / GMO PEPABO inc.
2017.10.08 / PHPカンファレンス2017
http://phpcon.php.gr.jp/2017/#home

PHPを利用したウェブサイトの約66%(※1)は、セキュリティサポートの切れたPHP5.5以下のバージョンを利用しています。
アップグレードの必要性は理解していても、後方互換性のない変更点の修正が課題となり後回しにする現場も少なくないでしょう。

先日ホームページ作成サービス「グーペ」をPHP5.2から7.1へアップグレードし、そこから得られた知見をブログ(※2)にて公開しました。
本セッションではブログでお伝えきれなかった内容を加えて、安全かつ短期間でアップグレードする方法をご紹介します。

※1 https://w3techs.com/technologies/details/pl-php/all/all
※2 http://tech.pepabo.com/2017/06/21/goope-php71-upgrade/

hypermkt

October 08, 2017
Tweet

More Decks by hypermkt

Other Decks in Programming

Transcript

  1. όʔνʔ(.01&1"#0JOD
    1)1ΧϯϑΝϨϯε
    Ͱ͖Δ1)1ΞοϓάϨʔυ

    View Slide

  2. IUUQCMPHIZQFSNLUKQ
    ιϑτ΢ΣΞΤϯδχΞ
    όʔνʔ!IZQFSNLU
    4)ࣄۀ෦άʔϖνʔϜ݉Ξχϝ෦෦௕

    View Slide

  3. View Slide

  4. 1)1͔Β1)1ʹΞοϓάϨʔυʂ

    View Slide

  5. w1)1͔Β΁ΞοϓάϨʔυ͢Δࠔ೉
    w1)1ΞοϓάϨʔυΛ

    ҆શ͔ͭ୹ظؒͰ਱ߦ͢ΔͨΊͷܭըͱઓུ
    w1)1ΞοϓάϨʔυͷͦͷޙ
    ࠓ೔͓࿩͢Δ͜ͱ

    View Slide

  6. wಛఆόʔδϣϯʹ͓͚Δ՝୊ͷղܾํ๏
    ࿩͞ͳ͍͜ͱ

    View Slide

  7. w1)1ΞοϓάϨʔυͷྲྀΕΛཧղͯ͠Πϝʔδ͕
    ༙͘
    w1)1ΞοϓάϨʔυݕ౼தͷํͷޙԡ͠Λ͢Δ
    ΰʔϧ

    View Slide

  8. 1)1͔Β΁

    ΞοϓάϨʔυ͢Δࠔ೉

    View Slide

  9. w αʔϏε։͔࢝Β೥໨
    w 1)1
    w $PNQPTFS͕࢖͑ͳ͍
    w 1&"3Λར༻ͨ͠ಠࣗϑϨʔϜϫʔΫ
    w ϢχοτςετΧόϨοδ཰ະຬ ײ֮஋

    1)1ΞϓϦέʔγϣϯ

    ೥݄౰࣌

    View Slide

  10. ΞοϓάϨʔυର৅͸ϩʔϧ

    UPQ
    ػೳ
    αʔϏε঺հ

    Ϣʔβʔਃ͠ࠐΈ
    ϗʔϜϖʔδ࡞੒

    ܖ໿
    ϗʔϜϖʔδӾཡ
    όονॲཧ

    ϝʔϧ഑৴
    1)1όʔδϣϯ
    1)1ίʔυߦ਺ ສ ສ ສ ̐ສ
    BENJO TIPQ TUBUT

    View Slide

  11. ᶃ1)1.Z42-ؔ਺࡟আ
    ΞϓϦέʔγϣϯશମͰ.Z42-ؔ਺Λ࢖༻

    ໿Օॴͷ1%0੾Γସ͑
    ᶄ1)1ϚδοΫΫΥʔτ࡟আ
    42-Λจࣈྻ݁߹͍ͯ͠Δɻ42-ΠϯδΣΫγϣϯରࡦͷ
    ͨΊɺ໿ՕॴͷϓϨʔεϗϧμʔԽ
    ౰ॳ͔Β෼͔͍ͬͯͨ՝୊͸̏ͭ

    View Slide

  12. ᶅ1)1͔Βؒͷ࢓༷มߋɺ

    ԼҐޓ׵ੑͷͳ͍มߋ఺ͷશ༰

    Λ஌Βͳ͍
    ౰ॳ͔Β෼͔͍ͬͯͨ՝୊͸̏ͭ

    View Slide

  13. ΋͏Ұͭࠔ೉͕͋Γ·͢

    View Slide

  14. ࡞ۀڐՄΛ΋Β͏͜ͱ

    View Slide

  15. wݱঢ়Ͱ΋ʮ։ൃ͸ʯग़དྷΔ
    w։ൃϦιʔε͕଍Γͳ͍
    w,1*վળ΍ػೳ։ൃ༏ઌ
    ཧղ͞Εʹ͍͘ΞοϓάϨʔυۀ຿

    View Slide

  16. wϢʔβʔϝϦοτ
    wλΠϛϯά
    આಘͷϙΠϯτ

    View Slide

  17. ϢʔβʔϝϦοτ

    IUUQQIQOFUSFMFBTFT@@QIQ
    w1)1Ͱ̎ഒߴ଎Խʂ
    w։ൃޮ཰վળͰ։ൃεϐʔυ޲্ʂ
    w҆ఆαʔϏεఏڙ

    View Slide

  18. w೥લظʹ͓ਃ͠ࠐΈ਺
    ̎ഒʹʂ
    wߋͳΔ੒௕ͷͨΊΤϯδχΞ਺
    ഒʹʂ
    λΠϛϯάɿ͍͍೾͕དྷͨ

    IUUQTTQFBLFSEFDLDPNIZQFSNLUUJNVRVBOZVBOEFPTIFOTJJQNJTIVXPCFJOJTJUBIVB

    View Slide

  19. αʔϏεͷߋͳΔൃలɺ

    ҆ఆɾ҆શɾߴ଎ͳαʔϏεఏڙɺ

    ͦͯ͠։ൃεϐʔυվળͷͨΊɺ
    1)1ͷΞοϓάϨʔυΛ͍ͤͯͩ͘͞͞ʂ
    ͍͍Αʂ

    View Slide

  20. 1)1Խ͕ܾఆ

    View Slide

  21. wΞοϓάϨʔυର৅ͷ
    ϩʔϧΛ

    1)1
    ͔Β1)1
    ʹ͢Δ
    ΰʔϧ

    View Slide

  22. εέδϡʔϧΛཱͯΑ͏

    View Slide

  23. wεέδϡʔϧ
    w୲౰ऀ
    wݟੵ΋Γ
    wணखॱং
    wϦϦʔε໨҆
    ܾΊΔ͜ͱ

    View Slide

  24. ։ൃ!IZQFSNLU
    (PPQF։ൃܦݧ̎೥Ҏ্ͷΤϯδχΞ໊̎

    Πϯϑϥ!IGN

    View Slide

  25. ΞοϓάϨʔυର৅͸ϩʔϧ

    UPQ
    ػೳ
    αʔϏε঺հ

    Ϣʔβʔਃ͠ࠐΈ
    ϗʔϜϖʔδ࡞੒

    ܖ໿
    ϗʔϜϖʔδӾཡ
    όονॲཧ

    ϝʔϧ഑৴
    1)1όʔδϣϯ
    1)1ίʔυߦ਺ ສ ສ ສ ̐ສ
    BENJO TIPQ TUBUT

    View Slide

  26. Ͳ͔͜Βணख͢΂͖͔ʁ

    View Slide

  27. ؆୯͔ͭ୹ظؒͰ

    ׬ྃग़དྷΔ΋ͷ͔Βணख͠Α͏ʂ

    ݁࿦

    View Slide

  28. w զʑ͸1)1ΞοϓάϨʔυະܦݧऀ
    w ಛఆόʔδϣϯͷ՝୊ղܾ๏΍ޮ཰తͳ࡞ۀखॱΛ஌Βͳ͍

    w ·ͣ͸ճ1)1ΞοϓάϨʔυΛܦݧ͢Δ͜ͱͰɺ

    Ұ௨Γͷ՝୊ղܾํ๏Λֶͼɺඇޮ཰ͳํ๏΋ܦݧ͢Δ

    w ͔࣍Β͸࡞ۀͷޮ཰Խͱ࡞ۀ࣌ؒܰݮ΋ग़དྷΔʂ
    ͳ͔ͥ

    View Slide

  29. ͽʔ͍͑ͪͽʔ
    .Z42-ؔ਺ͷ࡟আͳΒ

    ͓೚͍ͤͩ͘͞ʂ
    FSFHܥؔ਺͸Ұൃஔ׵Ͱ

    ࢓ཹΊΔͥ

    View Slide

  30. Ͳ͏΍ͬͯ೉қ౓ΛଌΔ͔ʁ

    View Slide

  31. w ϢʔβʔӨڹ౓ ϦεΫʣ͕খ͍͞΋ͷ
    w 1)1ίʔυߦ਺͕গͳ͍
    w ݕূָ͕ͳ΋ͷʢόονॲཧ͸खؒʣ
    ೉қ౓ͷܾΊํ

    View Slide

  32. ೉қ౓
    UPQ
    ػೳ
    αʔϏε঺հ

    Ϣʔβʔਃ͠ࠐΈ
    ϗʔϜϖʔδӾཡ
    ϗʔϜϖʔδ࡞੒

    ܾࡁ
    Ϣʔβʔ؅ཧ

    όονॲཧ

    ϝʔϧ഑৴
    1)1ίʔυߦ਺ ສ ສ ສ ̐ສ
    ϢʔβʔӨڹ౓ খ த େ େ
    ݕূ ָ ָ ී௨ ೉
    ೉қ౓ ָ ී௨ ೉ ೉
    BENJO
    TIPQ TUBUT

    View Slide

  33. w ࡞ۀʹೖͬͯΈͳ͍ͱ෼͔Βͳ͍ͷͰͬ͘͟Γͱɻ
    w ໨҆ఔ౓
    w ໨҆ͱ͸͍͑਺஋ͱͯ͠ఏࣔ͢Δ͜ͱ͕େ੾
    ݟੵ΋Γ

    View Slide

  34. ࡞ۀݟੵ΋Γ
    UPQ
    ػೳ
    αʔϏε঺հ

    Ϣʔβʔਃ͠ࠐΈ
    ϗʔϜϖʔδӾཡ
    ϗʔϜϖʔδ࡞੒

    ܾࡁ
    Ϣʔβʔ؅ཧ

    όονॲཧ

    ϝʔϧ഑৴
    1)1ίʔυߦ਺ ສ ສ ສ ̐ສ
    ϢʔβʔӨڹ౓ খ த େ େ
    ݕূ ָ ָ ී௨ ೉
    ೉қ౓ ָ ී௨ ೉ ೉
    ࡞ۀݟੵ΋Γ ϲ݄ ϲ݄ ϲ݄ ϲ݄
    BENJO
    TIPQ TUBUT

    View Slide

  35. ࡞ۀॱংͱϦϦʔε໨҆

    UPQ
    ػೳ
    αʔϏε঺հ

    Ϣʔβʔਃ͠ࠐΈ
    ϗʔϜϖʔδӾཡ
    ϗʔϜϖʔδ࡞੒

    ܾࡁ
    Ϣʔβʔ؅ཧ

    όονॲཧ

    ϝʔϧ഑৴
    1)1ίʔυߦ਺ ສ ສ ສ ̐ສ
    ϢʔβʔӨڹ౓ খ த େ େ
    ݕূ ָ ָ ී௨ ೉
    ೉қ౓ ָ ී௨ ೉ ೉
    ࡞ۀݟੵ΋Γ ϲ݄ ϲ݄ ϲ݄ ϲ݄
    ࡞ۀॱং ᶃ ᶄ ᶅ ᶆ
    ϦϦʔε໨҆ ຤ ຤ ຤ ຤
    BENJO
    TIPQ TUBUT

    View Slide

  36. ࣌ܥྻ







    UPQ1)1Խ׬ྃ
    1)1ԽϓϩδΣΫτελʔτʂ
    TIPQ1)1Խ׬ྃ
    TUBUT1)1Խ׬ྃ
    BENJO1)1Խ׬ྃ



    View Slide

  37. ࣌ܥྻ







    UPQ1)1Խ׬ྃ
    1)1ԽϓϩδΣΫτελʔτʂ
    TUBUT1)1Խ׬ྃ
    BENJO1)1Խ׬ྃ



    UPQ1)1Խ׬ྃ
    ৽ཱྀࠗߦ

    TIPQ1)1Խ׬ྃ

    View Slide

  38. ΞοϓάϨʔυجຊํ਑

    View Slide

  39. w௕ظؒͷ࡞ۀʹͳΔ
    wૣ͘ऴΘΒ͍ͨ͠
    wطଘϓϩδΣΫτͱฒߦͯ͠࡞ۀΛਐΊ͍ͨ
    w҆શʹਐΊ͍ͨ
    લఏ

    View Slide

  40. w1)1ͱͷޙํޓ׵ੑΛҡ࣋͢Δ
    w1)1྆ํͰಈ͘ΞϓϦέʔγϣϯʹ͢Δ
    wEFQSFDBUFEܯࠂͷରԠ͸༏ઌ౓௿Ί
    ΞοϓάϨʔυجຊํ਑

    View Slide

  41. w՝୊
    w 1)1γεςϜϫΠυͳ1&"3ϥΠϒϥϦΛଟ਺ར༻
    w 1)1BVUPMPBEܦ༝ͰಡΈࠐΈ͍ͨ
    wݒ೦
    w 1)1 ͷ྆ํͰ1&"3ϥΠϒϥϦΛಡΈࠐΉʹ͸

    Ͳ͏͢Ε͹ʁ
    ͳͥ1)1ͱͷޙํޓ׵ੑΛҡ࣋͢Δͷ͔

    // γεςϜϫΠυͳPEAR::DB
    require_once(‘DB.php’);

    View Slide

  42. 1)1@7&34*0/@*%

    $ php -v | head -n 1
    PHP 7.1.5 (cli) (built: May 15 2017 11:18:10)
    ( NTS )


    $ cat php_version_id.php
    var_dump(PHP_VERSION_ID);
    $ php php_version_id.php
    int(70105)

    View Slide

  43. wղܾࡦ
    w 1)1@7&34*0/@*%Ͱ෼ذ
    w 1)1ͱͷޙํޓ׵ੑΛҡ࣋ͯ͠ࡉ͔͘ϦϦʔε
    wޮՌ
    w طଘϓϩδΣΫτͱฒߦ࡞ۀ
    w $PNQPTFS༗Γແ͠؀ڥͱͷฒߦӡ༻
    1)1@7&34*0/@*%Ͱ෼ذ

    if (PHP_VERSION_ID >= 70000) {
    require_once __DIR__ . '/../../vendor/composer/autoload.php';
    } else {
    require_once ‘DB.php’; // γεςϜϫΠυͳPEAR::DB
    }

    View Slide

  44. EFQSFDBUFEܯࠂͷରԠ͸

    ༏ઌ౓௿Ί

    View Slide

  45. wকདྷతʹαϙʔτ͞Εͳ͍ؔ਺΍࢓༷ͷܯࠂ
    wಈ࡞্͸໰୊ͳ͍
    w࣍ճόʔδϣϯΞοϓ࣌ʹഇࢭʹͳΔՄೳੑ͸ߴ͍
    EFQSFDBUFEܯࠂͱ͸

    View Slide

  46. w༨༟͕͋Ε͹ରԠ͢Δɾͳ͚Ε͹ରԠ͠ͳ͍
    w1)1Խ͕׬͔ྃͯ͠Βॱ࣍EFQSFDBUFEܯࠂΛରԠ
    w1)1ԽΛͳΔ͸΍ͰऴΘΒͤΔ͜ͱΛ༏ઌ
    EFQSFDBUFEܯࠂͷରԠ͸༏ઌ౓௿Ί

    View Slide

  47. ͍͟1)1ΞοϓάϨʔυ࡞ۀ΁

    View Slide

  48. w ԼҐޓ׵ੑͷͳ͍มߋ఺ͷमਖ਼
    w .Z42-ؔ਺ͷ࡟আ
    w FSFHܥؔ਺ͷ࡟আ
    w ϚδοΫΫΥʔτഇࢭ
    w ؔ਺ɾจ๏ͷ࢓༷มߋͷमਖ਼
    w QIQJOJͷௐ੔
    w ͳͲͳͲ
    1)1ΞοϓάϨʔυ࡞ۀ

    View Slide

  49. w Өڹൣғ͸ΞϓϦέʔγϣϯશମ
    w ୯ௐ࡞ۀ
    w ಉ͡मਖ਼Λଟ਺ϑΝΠϧͰߦ͏
    w ಉ͡ϑΝΠϧΛԿ౓΋मਖ਼͢Δ
    1)1ΞοϓάϨʔυ࡞ۀͷಛ௃

    View Slide

  50. w έΞϨεϛε΍σάϨ͠΍͍͢
    w Ͳ͜ʹ஍ཕ͕͋Δ͔෼͔Βͳ͍
    ஫ҙ఺

    View Slide

  51. w҆શ
    w ϦΞϧλΠϜ1)1Τϥʔݕ஌
    w ৽چ྆όʔδϣϯͰܧଓతςετ
    w࡞ۀ࣌ؒ୹ॖ
    w ະ࢖༻ϑΝΠϧͷ࡟আ
    w QIQDDʹΑΔޓ׵ੑͷࣗಈݕ஌
    w &&ςετ
    ௕ظʹ౉Δ1)1ΞοϓάϨʔυ࡞ۀͷϙΠϯτ

    View Slide

  52. ϦΞϧλΠϜ1)1Τϥʔݕ஌
    w 'MVFOUE/PSJLSBΛར༻ͨ͠ϩάͷूੵɾղੳج൫Λߏங
    w ΞϓϦέʔγϣϯͷ1)1ΤϥʔϩάΛ4MBDLʹϦΞϧλΠϜ௨஌

    View Slide

  53. ϝϦοτ

    w طଘόάͷૣظൃݟʹͭͳ͕Δ
    w ಈ࡞ݕূ࣌ɺΞοϓάϨʔυ࣌ͷো֐ʹ͙͢ؾ͚ͮΔ

    View Slide

  54. ৽چ྆όʔδϣϯͰܧଓతςετ

    w $*্Ͱ1)1 ͷ྆ํͰϢχοτςετ
    w طଘγεςϜʹӨڹΛ༩͍͑ͯͳ͍͜ͱΛ֬ೝͭͭ͠ɺ

    ৽όʔδϣϯͰͷಈ࡞୲อΛ֬อ

    View Slide

  55. ະ࢖༻ϑΝΠϧͷ࡟আ

    View Slide

  56. wଞαʔϏε͔Βίϐϖ͞ΕͨϑΝΠϧ
    wഇࢭʹͳͬͨػೳ
    wϦχϡʔΞϧ࣌ʹ࢒͞Εͨچػೳ
    wΩϟϯϖʔϯ༻Ұ࣌ίʔυ
    ະ࢖༻ϑΝΠϧ͸ࢥ͍ͬͯΔҎ্ʹ͋Δ

    View Slide

  57. w1)1ΞοϓάϨʔυର৅ͷൣғॖখ
    wݕূ࣌ؒܰݮ
    wґଘؔ܎ͷܰݮ
    ະ࢖༻ϑΝΠϧΛ࡟আ͢ΔϝϦοτ

    View Slide

  58. wϧʔϧ
    wௐࠪظؒΛܾΊΔ
    w༏ઌ౓
    ϥΠϒϥϦ
    ϧʔςΟϯάɺίϯτϩʔϥʔ
    wํ๏
    wର৅ϑΝΠϧ໊ɺΫϥε໊ͰHJUHSFQ
    wಉ྅ʹฉ͘࡟আ͔͕ͨͬͨ͠ޙճ͠ʹͯͨ͠ͷΛ۷Γग़͢
    ະ࢖༻ϑΝΠϧͷ࡟আͷ࢓ํ

    View Slide

  59. View Slide

  60. QIQDDʹΑΔޓ׵ੑͷࣗಈݕ஌

    w ඞਢϥΠϒϥϦ
    w IUUQTHJUIVCDPNTTUBMMFQIQDD
    w 1)1͔Β1)1ͷޓ׵ੑνΣοΧʔ
    w $*Ͱ౎౓࣮ߦ͠ɺࢦఠ͞ΕͨՕॴΛยͬ୺͔Βमਖ਼
    w ϑΝΠϧͣͭख࡞ۀͰௐࠪ͢Δඞཁ͕ແ͍
    > Line 123: PHP 4 constructors are now deprecated
    function Hoge()
    {
    }
    > Line 123: Removed function "mysql_query" called
    mysql_query($query);

    View Slide

  61. ΑΓ޿ൣғΛΧόʔͰ͖Δ
    &&ςετΛॏࢹ

    View Slide

  62. w ಉ͡ՕॴΛಉ͡खॱͰݕূ͢Δͷ͸࣌ؒͷແବ
    w ࠓޙ΋ܧଓతʹΞοϓάϨʔυͰ͖Δ؀ڥߏங
    &&ςετΛॏࢹͨ͠ཧ༝

    View Slide

  63. wΞϓϦέʔγϣϯͷಛ௃
    wશମͰ$36%ॲཧ
    w1)1ΞοϓάϨʔυ
    w1)18BSOJOH'BUBMΤϥʔ͕ൃੜ͢Δݒ೦͋Γ
    લఏ

    View Slide

  64. w ؆қతͳ$36%ॲཧνΣοΫ
    w )551εςʔλεɺ1)1ΤϥʔͷνΣοΫ
    w શը໘Ͱ࣮૷
    w 1)1྆ํͰ࣮ߦΛ֬ೝ
    ࣮૷ํ਑

    View Slide

  65. &&ςετ؀ڥ

    3VCZ੡ςετϑϨʔϜϫʔΫ
    8FCΞϓϦέʔγϣϯͷ
    ςετϑϨʔϜϫʔΫ
    $BQZCBSB༻1IBOUPN+4υϥΠόʔ
    )FBEMFTT8FCLJUϕʔεϒϥ΢β

    View Slide

  66. શମਤ
    QIQBQBDIFίϯςφ؀ڥ
    ࣾ಺1)1؀ڥ
    1VTI
    %FQMPZ
    &&ςετ
    &&ςετ
    1)1
    1)1

    View Slide

  67. શϖʔδͷ)551εςʔλενΣοΫɺ1)1ΤϥʔΛνΣοΫ
    SFRVJSFTQFD@IFMQFS


    TIBSFE@FYBNQMFT@GPSDPSSFDUSFTQPOTFEPcVSJc

    CFGPSF\WJTJUVSJ^


    JU\VSJ^͕0,Ͱਖ਼ৗʹӾཡͰ͖ΔEP

    FYQFDU QBHFTUBUVT@DPEF
    UPCF

    FOE


    JU\VSJ^ʹ1)1ͷܯࠂ͕ແ͍EP

    FYQFDU QBHF
    UPIBWF@OP@DPOUFOU 8BSOJOH

    FOE


    JU\VSJ^ʹ1)1ͷΤϥʔ͕ແ͍EP

    FYQFDU QBHF
    UPIBWF@OP@DPOUFOU 'BUBMFSSPS

    FOE

    FOE
    SFRVJSFTQFD@IFMQFS


    EFTDSJCFਖ਼ৗӾཡςετEP

    X 

    JOGPJOGPSNBUJPO

    JOGPNBJOUFOBODF

    JOGPPCTUBDMF


    FBDIEPcQBHFc

    JU@CFIBWFT@MJLFDPSSFDUSFTQPOTF QBHF

    FOE

    FOE
    )551εςʔλενΣοΫ GFBUVSFTJOGP@TQFDSC

    View Slide

  68. ؆қతͳ$36%ॲཧνΣοΫ
    EFTDSJCF͓஌Β͕ͤ౤ߘͰ͖Δ KTUSVFEP

    CFGPSFEP

    WJTJUJOGP


    pMM@JOUJUMF XJUI໊݅ςετ

    pMM@JOCPEZ XJUIbຊจςετ


    DMJDL@CVUUPOొ࿥

    FOE


    JU\FYQFDU QBHF
    UPIBWF@DPOUFOU͓஌ΒͤΛ౤ߘ͠·ͨ͠^

    FOE

    View Slide

  69. ಈ࡞ݕূ

    View Slide

  70. ࣗݾςετ
    νʔϜϝϯόʔશһݕূ
    ಈ࡞ݕূ͸̎ஈ֊

    View Slide

  71. w*TTVFͰςετ߲໨ॻΛ༻ҙ
    ४උ

    ## ͓ਃ͠ࠐΈ
    - [ ] ͓ਃ͠ࠐΈ͕ग़དྷΔ
    - [ ] ͓ਃࠐͨ͠಺༰͕DBʹొ࿥͞ΕΔ

    View Slide

  72. w༻ҙͨ͠ςετ߲໨ॻϕʔεʹՄೳͳݶΓશػ
    ೳɾϖʔδΛ֬ೝ
    wςετ߲໨ॻͷ࿙Ε΍ؒҧ͍͸ਵ࣌Ճචमਖ਼
    wݕূˠόάमਖ਼ˠݕূΛ܁Γฦ͢
    ࣗݾςετ

    View Slide

  73. wϧʔϧ
    w νʔϜϝϯόʔશһͰߦ͏
    w ேձͰࠂ஌ɺεέδϡʔϧΛ֬อ
    w શһಉ࣌ʹߦ͏
    w ࣌ؒ͸࣌ؒ
    w ճ਺͸ճʙճ
    w ࣗ෼͸ݕূ͠ͳ͍ɺνʔϜϝϯόʔͷݕূͷαϙʔτ
    νʔϜϝϯόʔશһݕূ

    View Slide

  74. w৬छผͰࢹ఺͕มΘΔͷͰݕূൣғ͕޿͕Δ
    wࢥ͍΋ΑΒ͵όά͕ݟ͔ͭΔ
    wςελʔ2"͕͍ͳ͍νʔϜʹΦεεϝ
    νʔϜϝϯόʔશһݕূͷϝϦοτ

    View Slide

  75. ஍ຯʹେมͳόονॲཧͷݕূ

    View Slide

  76. w ຊ
    w ຖ෼ɺຖ೔ɺຖ݄ɺ݄຤݄ॳ
    w ػೳ
    w Ұ੪ϝʔϧ഑৴
    w ܖ໿ͷࣗಈߋ৽ %# "1*ݺͼग़͠ ϝʔϧૹ৴

    w 44-ূ໌ॻͷࣗಈߋ৽
    w ͳͲͳͲ
    όονॲཧঢ়گ

    ಈ࡞ݕূ͕େมʂ

    View Slide

  77. w 1)1ϩʔΧϧ։ൃ؀ڥͰશͯखಈ࣮ߦ
    w 1)1εςʔδϯά؀ڥͰϢʔβʔɾ%#ʹӨڹ͕ͳ͍
    ൣғͰखಈ࣮ߦ
    ݕূͷ࢓ํ

    View Slide

  78. w Ұϲ݄͸༷ࢠݟ
    w େ఍ͷόονॲཧ͸Ұϲ݄Ͱશͯ׬૸͢Δ ͱࢥ͍·͢ʣ
    w ݄຤݄ॳͷόονॲཧ΋͋Γ·͢ΑͶʁ
    ຊ൪ϦϦʔεޙͷॏཁͳϙΠϯτ

    View Slide

  79. 1)1ΞοϓάϨʔυͷͦͷޙ

    View Slide

  80. w ຊ൪ͱಉ͡εϖοΫͷΠϯϑϥ؀ڥʹର࣮ͯ͠ࢪ
    w αʔϏεͷϐʔΫλΠϜ͸୆͋ͨΓඵؒ໿ϦΫΤετ
    w (BUMJOHʹΑΔϕϯνϚʔΫͰಉ༷ͷύϑΥʔϚϯεଌఆ
    ΞϓϦέʔγϣϯԠ౴଎౓ͷ޲্ʂ

    View Slide

  81. w $16αΠζΛ൒෼ʹͨ͠Πϯελϯεʹ੾Γସ͑ɺ

    Πϯϑϥίετݮʹɻ
    $16ෛՙ͕൒෼ʹʂ

    View Slide

  82. w7BHSBOU͔Β%PDLFS։ൃ؀ڥ΁
    w ىಈ͕ߴ଎
    w ։ൃ؀ڥͷߏஙௐ੔͕؆୯
    w$PNQPTFS͕࢖͑ΔΑ͏ʹͳͬͨ
    ։ൃ؀ڥ

    View Slide

  83. w 1)1ϦϦʔεͷ344Λ֬ೝ
    w ύονόʔδϣϯ Y
    ͸਺೔Ҏ಺ʹΞοϓάϨʔυ
    w $IBOHF-PHΛ֬ೝ
    w $*্ͰϢχοτςετɺ&&ςετ͕௨Δ
    ࠷৽όʔδϣϯΛ௥ै

    $ php -v
    PHP 7.1.9 (cli) (built: Aug 30 2017 20:06:08) ( NTS )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

    View Slide

  84. ·ͱΊ

    View Slide

  85. w1)1͔Β΁ΞοϓάϨʔυ͢Δࠔ೉
    wεέδϡʔϧͷཱͯํɺෳ਺ϩʔϧ࣌ͷணखॱং
    wΞοϓάϨʔυجຊํ਑
    w҆શ͔ͭ࡞ۀ࣌ؒ୹ॖ͢ΔͨΊͷࢪࡦ
    wόά΍࡞ۀ࿙ΕΛಀ͞ͳ͍ಈ࡞ݕূ
    wࠓޙͷΞοϓάϨʔυํ਑
    ࠓ೔࿩ͨ͜͠ͱ

    View Slide

  86. w ࠓޙ΋ܧଓతʹΞοϓάϨʔυ͍ͯ͘͜͠ͱ͕େ੾
    w Ͱ͖Δ͚ͩ࠷৽ͷόʔδϣϯΛར༻͠ɺϢʔβʔɾ։ൃऀ
    ૒ํʹԸܙ͕ड͚ΒΕΔΑ͏ʹ͍͖͍ͯͨ͠
    ຊ౰ͷ1)1ΞοϓάϨʔυ͸͜Ε͔Β

    View Slide

  87. ͥͻ1)1ΞοϓάϨʔυͷ

    $IBMMFOHFΛʂ

    View Slide

  88. ܅΋ϖύϘͰಇ͔ͳ͍͔ʁ
    ࠷৽ͷ࠾༻৘ใΛνΣοΫˠ !QC@SFDSVJU

    View Slide