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

3ヶ月でphp5.5から7.2にバージョンアップした現在と今後の向き合い方 #PHPerKaigi 2019

kosa3
March 30, 2019

3ヶ月でphp5.5から7.2にバージョンアップした現在と今後の向き合い方 #PHPerKaigi 2019

PHPerKaigi 2019での発表資料です。

kosa3

March 30, 2019
Tweet

More Decks by kosa3

Other Decks in Technology

Transcript

  1. ・Codeigniter Framework ・CentOS ・Apache ・node.js ・ruby ・composer ・mod_small_light module ・mcrypt

    module ・その他モジュールやクライアントライブラリなど PHP以外に必要なバージョンアップ
  2. memcached libMemcachedのバージョン依存問題 /usr/local/src/php-memcached/php_libmemcached_compat.h:56: error: expected '=', ',', ';', 'asm' or

    '__attribute__' before 'php_memcached_instance_st' *wgetで最新のソースからインストールする必要がある。 memcache 現在開発が止まっていてphp7に対応していない。 歴史のあるサイトだとmemcachedあるいは別サービスを利用 するなどの検討も。 Memcachedモジュール問題
  3. openssl vs mcrypt 環境:MacOS, PHP7.0(mcrypt), PHP7.2(openssl) 暗号化、復号化回数: 1000回 key: Seattle

    Mariners value: イチロー引退 method: AES-128-ECB 暗号化、復号化の速度検証。。!
  4. openssl vs mcrypt 環境:MacOS, php7.0(mcrypt), php7.2(openssl) 暗号化、復号化回数: 1000回 key: Seattle

    Mariners value: イチロー引退 method: AES-128-ECB mcrypt encrypt time: 0.078732013702393 decrypt time: 0.068650007247925
  5. openssl vs mcrypt 環境:MacOS, php7.0(mcrypt), php7.2(openssl) 暗号化、復号化回数: 1000回 key: Seattle

    Mariners value: イチロー引退 method: AES-128-ECB openssl encrypt time: 0.00084805488586426 decrypt time: 0.00096797943115234
  6. ・PHP7.2から配列またはcontableインタフェースで 実装されたObject以外だとWarningエラーを出力 Warning: count(): Parameter must be an array or

    an object that implements Countable サイト全体的に影響が大きい仕様変更 PHP7.2からのcountの仕様変更
  7. サイト全体にCDNを導入 クチコミ投稿時やログなどの記録で固定のipが入る $ip = $_SERVER['REMOTE_ADDR']; // CloudfrontのIPが入る $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

    // アクセスIP元まで取得 *またCloudfrontのデフォルトオリジンレスポンスタイムアウトは30秒 レポートなど処理の長い時間がかかる場合は注意 Cloudfront導入によるIP問題