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

PHP 5.3 + CakePHP1.3 → PHP 7 + CakePHP バージョンアップ施策について

saya kobayashi
February 21, 2018

PHP 5.3 + CakePHP1.3 → PHP 7 + CakePHP バージョンアップ施策について

下記イベントの登壇資料です。

【PHP事例】プロダクトをレガシーにしないために闘う現場のリアル
https://connpass.com/event/76930/

saya kobayashi

February 21, 2018
Tweet

Other Decks in Technology

Transcript

  1. 1)1ࣄྫ PHP 5.3 + CakePHP1.3 ↓ PHP 7 + CakePHP3.x

    バージョンアップ施策について
  2. 1)1ࣄྫ ͳͥɺόʔδϣϯΞοϓ͢Δͷ͔ʁ •サポート終了 ◦PHP 5.3 ▪2015/11/01 1.3.21でサポート終了 ◦CakePHP1.3 ▪2014/08/14 5.3.29でサポート終了

    •バグ修正やカスタマイズを独⾃に⾏っている状態 ◦最新バージョンであれば貢献できる内容も
  3. 1)1ࣄྫ ͳͥɺόʔδϣϯΞοϓ͢Δͷ͔ʁ •サポート終了 ◦AWS SDK PHP ▪最新バージョンはPHP5.5.以上 ◦Facebook SDK ▪最新バージョンはPHP5.4以上

    •旧バージョンのサポート終了が早い ▪PHP5.3サポートのfork版で対応中 •が、これもサポート終了 ◦⼿動で修正してしがみついている状態
  4. 1)1ࣄྫ όʔδϣϯΞοϓ৚݅ͷ੔ཧ PHP バージョン PHP キャッシュ CakePHP 対応バージョン Apache バージョン

    PHP5.3 APC CakePHP1.3 CakePHP2 Apache 2.2 PHP5.4 CakePHP1.3 CakePHP2 Apache 2.4 PHP5.5 OPCache APCu CakePHP1.3 CakePHP2 Apache 2.4 PHP5.6 OPCache APCu CakePHP1.3 CakePHP2 CakePHP3 Apache 2.4 PHP7.0 OPCache APCu CakePHP2 CakePHP3 Apache 2.4 Apacheも バージョン アップが必要 CakePHP 1.3は まともに動かない CakePHP 3 未サポート 現在の構成 json.soの インストールに問題 最も対応している PHPバージョン PHPとセットで インストールされる
  5. 1)1ࣄྫ ։ൃίϯςφΛ1)1ʹஔ͖׵͑ͯΈͨ 2017/06/08 01:38:06 [error] 12029#0: *87 FastCGI sent in

    stderr: "PHP message: PHP Strict Standards: Non-static method Configure::getInstance() should not be called statically in /var/www/lancers/cake/bootstrap.php on line 38 PHP message: PHP Strict Standards: Non-static method CakeLog::handleError() should not be called statically in /var/www/lancers/cake/libs/cake_log.php on line 290 PHP message: PHP Strict Standards: Non-static method CakeLog::handleError() should not be called statically in /var/www/lancers/cake/libs/debugger.php on line 707" while reading response header from upstream, client: 172.17.0.5, server: dev.lancers.jp, request: "GET /user/login?1496853486&ref=header_menu HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "dev.lancers.jp", referrer: http://dev.lancers.jp/ PHP message: PHP Warning: curl_setopt() expects parameter 2 to be long, string given in /var/www/lancers/app/vendors/AmazonSDK/lib/requestcore/requestcore.class.php on line 610 [08-Jun-2017 01:44:52] WARNING: [pool www] child 13007 said into stderr: "NOTICE: PHP message: PHP Strict Standards: Non-static method CakeLog::handleError() should not be called statically in /var/www/lancers/cake/libs/cake_log.php on line 290" [08-Jun-2017 01:44:52] WARNING: [pool www] child 13007 said into stderr: "NOTICE: PHP message: PHP Strict Standards: Non-static method CakeLog::handleError() should not be called statically in /var/www/lancers/cake/libs/debugger.php on line 707" [08-Jun-2017 01:44:52] WARNING: [pool www] child 13006 said into stderr: "NOTICE: PHP message: PHP Strict Standards: Non-static method Configure::getInstance() should not be called statically in /var/www/lancers/cake/bootstrap.php on line 38" 動いた! 表向きは問題なし エラーログにWarningが多発 CakePHP1.3関連
  6. 1)1ࣄྫ όʔδϣϯΞοϓखॱͷ੔ཧ PHP バージョン PHP キャッシュ CakePHP バージョン Webパッケージ バージョン(yum)

    PHP5.3 APC CakePHP1.3 Apache 2.2 + mod_php PHP5.3 APC CakePHP1.3 Nginx + PHP-FPM 5.3 PHP5.6 OPCache APCu CakePHP1.3 Nginx + PHP-FPM 5.6 PHP5.6 OPCache APCu CakePHP2 Nginx + PHP-FPM 5.6 PHP5.6 OPCache APCu CakePHP3 Nginx + PHP-FPM 5.6 PHP7.0 OPCache APCu CakePHP3 Nginx + PHP-FPM 7.0 Nginx + PHP-FPM に置き換え PHP 5.6まで ⼀気にバージョンアップ 現在の構成 最⼤の難関 カスタマイズ 問題を解決
  7. 1)1ࣄྫ )PX5P$BLF1)1ˠ$BLF1)1 ˔ )UNM)FMQFSMJOL 'PSN)FMQFSTFMFDUͷ ࢓༷͕มΘ͍ͬͯΔ ˓ ࢓༷ʹ߹ΘͤͨϥούʔΫϥεΛ࡞੒ͯ͠ɺ ͦͬͪΛར༻͢ΔΑ͏ʹςϯϓϨʔτͷमਖ਼ ˙

    )UNM)FMQFSMJOL͸KBWBTDSJQUDPOGJSN ͰΞϥʔτදࣔ͢Δํ๏ ͕มΘͬͯͨΓ ˙ 'PSN)FMQFSTFMFDU͸TFMFDUFEͷࢦఆํ๏͕มߋʹͳ͍ͬͯͨΓ ˓ ͦͷଞʹ΋मਖ਼఺͕ଟ͕͔͔࣌ؒ͘Δ
  8. 1)1ࣄྫ ޻෉͍ͯ͠ΔϙΠϯτ ˔ "QQJNQPSUˠ"QQVTFT ˔ OFX'PP)FMQFS ˠOFX'PP)FMQFS OFX7JFX ˔ OFX)PHF$PNQPOFOU

    ˠ OFX)PHF$PNQPOFOU OFX$PNQPOFOU$PMMFDUJPO ˔ OFX#BS$POUSPMMFS ˠ OFX#BS$POUSPMMFS OFX$BLF3FRVFTU OFX$BLF3FTQPOTF ˔ UIJTQBSBN UIJTEBUB౳ͷࢀরมߋ ˠUIJTSFRVFTUQBSBN UIJTSFRVFTUEBUB ˔ ͦͷଞଟ਺ ˔ ΦϨΦϨ6QHSBEF 4IFMMΛ࡞ָͬͯΛ͢Δ