さくらクラブxEC-CUBE勉強会 | EC-CUBE勉強会 vol.27
DBを複数のECサイトで共有すると、会員も共有できるし、ログイン情報も保持したままサイト移動できます。
大河内さん
「PHPのキャッシュを使いこなせ!」
今回は、共有サーバーでは対応できないことがほとんどです。
・共有は次のページのカスタマイズをお試しください。
EC-CUBE2系
data/class/helper/SC_Helper?Session.php 27行目付近
public function_contruct()
{
$this->obyDb = new SC_Helper_DB_Ex();
/* ↓をコメントアウト
session_set_save_handler(array/...
array(…),
array(…),
array(…);
*/
ここは、DBにセッションを保存しているコードなので、
1台のサーバー利用しているだけのショップなら、問題なくセッション保持できますので、不要なDBアクセスとなります。
「まだAPC使ってるの?」
APCはPHPのモジュールです。(たしかw
PHPをコンパイラ→返すという繰り返しをAPCを使ってこのパターンをメモリに保持しておくことによって応答時間を早くする仕組みです。
PHP7が昨日出たことだし、APCというシステムは古くなりました。
APCとAPCUを使用していることを判断するコードが一体なので、EC-CUBE3ではまたちがう話ですねっ
APCUを入れると解決します。
キャッシュのいろいろ
PHP Opecodeキャッシュ
中間コードをメモリに保持する
対応 : APC WinCache Zend Opcaheなど
ファイルキャッシュ
PHPスクリプトファイルの目内容を旧や梅森にキャッシュ
ファイルをメモリに保持する
対応 : APC WinCache
ファイルパス解決キャッシュ
相対パスを絶対パスに変換してメモリに保持する
対応 : WinCacheくらい?
ユーザーキャッシュ
PHPスクリプトからキャッシュを操作します。キャッシュというよりDBに近い考え方をします
俗にいうDVS(Dey Value Store)
対応 : APC, APCu, WinCache, memcache, Redisなど
セッションハンドラ
セッションデータを格納します。
通常は、ファイルに格納しまので低速ですがセッションをメモリに保持しています。
対応 : APC, APCu, WinCache, memcache, memcached, Redisなど
どれ使ったらいいの?
・Linuxなら、Zend Opcache + APCuが手軽でおすすめ
・Windowsなら、Zend Opcache * WinCache
・ APCはPHP5.4以降は推奨されていない
・Zend OpcacheはPHP5.2以降、APCuはPHP5.3以降なら使えます
・大量アクセスなら、金かけて本気でやるならRedisを入れよう。AzureやAWSでも専用のものを用意しているくらい本気でやる人向け。
ちなみにAzureなら一番少ないキャッシュサイズ250Mで1,600円くらい。(SLAが提供されていないBasicタイプの例)
大量アクセスに対応させるなら8〜33万円くらいのコストが必要ですよ。
※ APCuはユーザーキャッシュを切り離したもの。
インストール方法
Zend Opcache
PHP5.4未満 pecl install opcache
PHP5.5以降 php.ini に設定を追加
Linux zend_…(ああ、書きそびれたw)
APCu
pecl install apcu
オススメの設定
php.iniに設定しよう
今回のスライドをコピペでおけ。(下にコピペ元のスライドいれとこ。)
2系ももちろんですが、ECCUBE3は、APCuを使うといいよ。
むしろしないと遅いですよ。
VPSは特に効果大!共有はちょっとだけ期待
APCが動かなくなる可能性があるので、一行。
さくらインターネット広報「さくらクラブ」林さん
サーバーの種類
ホスティングとは
・業者が提供するサーバーをインターネツト経由で利用できる
・月ごとなど、期間ごとに利用料金を支払う
・提供されるサーバの性能・機能・品質は様々
・物理的には1台のハードウェアを、他の利用者と共有する場合が多いが、専有もある。
クラウド
・利用形態はホスティングに似ているが…
・ホスティングとの違いは「オンデマンド性」にあると言われている
・オンデマンド性とは
・ホスティングでは料金に対して提供される性能・品質・機能が固定されている場合がほとんどであることにたいして、
クラウドでは、必要に応じていつでもそれらを増減でき、請求料金もそれに応じて増減する
・また、料金請求も「使っただけ」
クラウドの類型
・提供内容によって種類は様々
・IaaS ハードウェアに近い部分を提供
・PaaS
・SaaS ミドルウェア・アプリケーションに近い部分を提供
さくらのレンタルサーバ
・共有型 ・・・ 1台のサーバを複数のユーザで共有。サーバ管理はさくらが実施。賃貸マンションみたいなかんじ。
・仮想サーバ(VPS) ・・・ 管理者権限があり、サーバ環境を自由に構築可能。サーバOS環境の管理は、ユーザが実施。
・専有サーバ ・・・ 高性能な物理サーバ環境を迅速に提供。さくらのVPSと同様に、サーバOS環境の管理はユーザが実施。
(多くのサイトを提供するならこれでもいいかもしれないけど、知識が多くいるし無理だなぁ)
・クラウド ・・・ 仮想サーバとか総ネットワークを組み合わせたよ。時間単位での課金が可能。プラン変更が可能。VPSでは実現できないような複雑な音とワーク構成に対応。VPCなどのアプライアンス機能を提供。
・ハウジング・・・サーバを預かる場所(ラック)とネット回線の環境を提供。設置するサーバなどの機器のは基本的にユーザが所有。大会社のような世界をまたぐところで、尚且つネットワークを別にすることによってセキュリティを強固にする必要がある場合はこれかなと思う。
さくらのレンタルサーバ → 共有サーバ
さくらにマネージサーバ → 専有型だけど管理はさくら
さくらのVPS → 仮想サーバ
さくらの専用サーバ → ハイスペックな専用サーバ
さくらのクラウド → クラウドサーバ
ハウジング → ラックと回線のみ借りたい
共有でも使える「リソースブート機能」
これは、一気に来客があることが想定できるときにリソース制限を、2〜3日間増やすことができる。
ロジックハート山田さん
「爆速!ECCUBEをVPSで構築する」
さくらのVPSを借ります。
iTeamでログインできるところまでやる。
ssh root@153.126.210.196