Upgrade to Pro — share decks privately, control downloads, hide ads and more …

できる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. ΞοϓάϨʔυର৅͸ϩʔϧ  UPQ ػೳ αʔϏε঺հ
 Ϣʔβʔਃ͠ࠐΈ ϗʔϜϖʔδ࡞੒
 ܖ໿ ϗʔϜϖʔδӾཡ όονॲཧ


    ϝʔϧ഑৴ 1)1όʔδϣϯ     1)1ίʔυߦ਺ ສ ສ ສ ̐ສ BENJO TIPQ TUBUT
  2. ΞοϓάϨʔυର৅͸ϩʔϧ  UPQ ػೳ αʔϏε঺հ
 Ϣʔβʔਃ͠ࠐΈ ϗʔϜϖʔδ࡞੒
 ܖ໿ ϗʔϜϖʔδӾཡ όονॲཧ


    ϝʔϧ഑৴ 1)1όʔδϣϯ     1)1ίʔυߦ਺ ສ ສ ສ ̐ສ BENJO TIPQ TUBUT
  3. ೉қ౓ UPQ ػೳ αʔϏε঺հ
 Ϣʔβʔਃ͠ࠐΈ ϗʔϜϖʔδӾཡ ϗʔϜϖʔδ࡞੒
 ܾࡁ Ϣʔβʔ؅ཧ
 όονॲཧ


    ϝʔϧ഑৴ 1)1ίʔυߦ਺ ສ ສ ສ ̐ສ ϢʔβʔӨڹ౓ খ த େ େ ݕূ ָ ָ ී௨ ೉ ೉қ౓ ָ ී௨ ೉ ೉ BENJO TIPQ TUBUT
  4. ࡞ۀݟੵ΋Γ UPQ ػೳ αʔϏε঺հ
 Ϣʔβʔਃ͠ࠐΈ ϗʔϜϖʔδӾཡ ϗʔϜϖʔδ࡞੒
 ܾࡁ Ϣʔβʔ؅ཧ
 όονॲཧ


    ϝʔϧ഑৴ 1)1ίʔυߦ਺ ສ ສ ສ ̐ສ ϢʔβʔӨڹ౓ খ த େ େ ݕূ ָ ָ ී௨ ೉ ೉қ౓ ָ ී௨ ೉ ೉ ࡞ۀݟੵ΋Γ ϲ݄ ϲ݄ ϲ݄ ϲ݄ BENJO TIPQ TUBUT
  5. ࡞ۀॱংͱϦϦʔε໨҆  UPQ ػೳ αʔϏε঺հ
 Ϣʔβʔਃ͠ࠐΈ ϗʔϜϖʔδӾཡ ϗʔϜϖʔδ࡞੒
 ܾࡁ Ϣʔβʔ؅ཧ


    όονॲཧ
 ϝʔϧ഑৴ 1)1ίʔυߦ਺ ສ ສ ສ ̐ສ ϢʔβʔӨڹ౓ খ த େ େ ݕূ ָ ָ ී௨ ೉ ೉қ౓ ָ ී௨ ೉ ೉ ࡞ۀݟੵ΋Γ ϲ݄ ϲ݄ ϲ݄ ϲ݄ ࡞ۀॱং ᶃ ᶄ ᶅ ᶆ ϦϦʔε໨҆ ຤ ຤ ຤ ຤ BENJO TIPQ TUBUT
  6. ࣌ܥྻ        UPQ1)1Խ׬ྃ 1)1ԽϓϩδΣΫτελʔτʂ

    TUBUT1)1Խ׬ྃ BENJO1)1Խ׬ྃ UPQ1)1Խ׬ྃ ৽ཱྀࠗߦ ✈ TIPQ1)1Խ׬ྃ
  7. 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 <?php var_dump(PHP_VERSION_ID); $ php php_version_id.php int(70105)
  8. 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 }
  9. 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);
  10. શϖʔδͷ)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
  11. wϧʔϧ w νʔϜϝϯόʔશһͰߦ͏ w ேձͰࠂ஌ɺεέδϡʔϧΛ֬อ w શһಉ࣌ʹߦ͏ w ࣌ؒ͸࣌ؒ w

    ճ਺͸ճʙճ w ࣗ෼͸ݕূ͠ͳ͍ɺνʔϜϝϯόʔͷݕূͷαϙʔτ νʔϜϝϯόʔશһݕূ 
  12. w ຊ w ຖ෼ɺຖ೔ɺຖ݄ɺ݄຤݄ॳ w ػೳ w Ұ੪ϝʔϧ഑৴ w ܖ໿ͷࣗಈߋ৽

    %# "1*ݺͼग़͠ ϝʔϧૹ৴  w 44-ূ໌ॻͷࣗಈߋ৽ w ͳͲͳͲ όονॲཧঢ়گ  ಈ࡞ݕূ͕େมʂ
  13. 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