WEB

ECCUBE 2.13.x シーケンステーブル

ECCUBE 2.13.x系のテーブルを見ると、
「_id_seq」で終わるテーブルがある。

各テーブルで主キーに「Audo_Incliment」を指定すれば良いもののを、
あえて、テーブルで管理している。

まあ、いいんだけど、この_id_seqで終わるテーブルが、
以外に多くて、テーブルを探すときに、邪魔・・・

***

ということで、

すで、Eccube 3.x系が主流なので、移行すべきなところはさておき、
これらのシーケンステーブルを削除し、1つのテーブルにまとめてみた。

新たに作成したテーブルは、「_sequence」とし、
項目は、以下の通りである。

  • seqeuence_name [varchar(64)] :シーケンス名
  • sequence[int]:
  • updated[datetime]: 保守用最終更新時刻

SC_Query_Exで、クラスを拡張したのが、以下のコードで、
「_sequence」というテーブルがあるときのみ、作動する。
※シーケンス名が存在するかも、チェックしたほうがいい。

ポイント

$this->conn->nextID で、値を拾ってきているのに対し、

nextValを使っているコードを、すべて書き直すわけではなく、
nextVal内での取扱い、
「_sequence」へ個別にupdate / selectしているだけなので、
コードの修正は、最小限となっております!

<?php

require_once CLASS_REALDIR . 'SC_Query.php';

class SC_Query_Ex extends SC_Query
{
    /**
     * 次のシーケンス値を取得する.
     *
     * @param string $seq_name 取得するシーケンス名
     * @param integer 次のシーケンス値
     */
    public function nextVal($seq_name)
    {
    	$nextID	= $this->conn->nextID($seq_name); // 元に戻すときのために、実行


    	// 試験中
	if ($ret = $this->query("show tables like '_sequence'")) {
		//
		$this->update('_sequence',
				array('sequence' => 'sequence + 1', 'updated' => 'now()'),
				"sequence_name = '$seq_name'");
			$_ = $this->currVal($seq_name);
			if (empty($_)) {
				// レコードが無いとき
				$this->insert('_sequence', array($seq_name, $nextID));
				return $nextID;
			}
		} else
	        return $this->conn->nextID($seq_name);
    }

    /**
     * 現在のシーケンス値を取得する.
     *
     * @param  string  $seq_name 取得するシーケンス名
     * @return integer 現在のシーケンス値
     */
    public function currVal($seq_name)
    {
    	// 試験中
	if ($ret	= $this->query("show tables like '_sequence'")) {
		//
		$ret	= $this->select('sequence', '_sequence', "sequence_name = '$seq_name'");
var_dump($seq_name. ': '. $ret[0]['sequence']);
		return $ret[0]['sequence'];

	} else
		return $this->conn->currID($seq_name);
    }
}

※動作確認したが、実運用はしていない状態のコードなので、要修正

一応、動くは動くものの、
1日1万件の処理とかになると、耐久性には心配が残ります。

-

無料SSL サーバー

https:// で始まるURLが、Google にインデックスされ、
検索結果に表示された場合、
ブラウザーが非SSLサイトにアクセスしようとすると、警告を出してきます。

Chrome 非SSLサイトで警告表示

.htaccessで、htttps:// > http:// ?にリダイレクトをかけても、
上記、警告が表示され、

SSLが推奨となった今、SSL化は避けて通れない道!

***

もちろん、現在契約しているサーバーでも、SSL化は可能なのですが、
SSLサーバー証明書を無料で、発行してくれるサーバーがある中、

ドメインが1つなら、有料でもSSLを発行してもいいのですが、
複数となると、費用もバカにならないため、
サーバー移転を検討しています。

 

無料で独自SSLが使えるサーバー

※現在、契約しているAWS(Amazon WebServer)でも、無料でSSLをでも発行できるのですが、
環境が特殊で、ある程度の知識が必要なため、除外しています。

調べた限りですが、(初期費用/月額※12ヶ月契約の場合)

が、SSL無料で発行してくれるサーバーです。

初期費用だけ見ると、Zenlogicがダンゼン有利ですね。

ただ、使ったことがないので、不安が残りが、
2週間の無料トライアルがあるので、まずは、使ってみる前に、仕様確認。

 

Zenloicの前身は、ファーストサーバー

ファーストサーバーは、元々はクボタのシステム部門からスタートしたレンタルサーバー。
2017年時点で、20年目に突入する老舗のサーバー会社ですが、
2015年に、物理サーバーを捨て、
ヤフーのIaaS基盤をプラットホームに切り替えたようです。

=ヤフーが運営する物理サーバー上で、Zenloicがレンタルサービスをしている感じ。

 

ファーストサーバーといえば、以前、
更新プログラムのバグ・オペレーションミスにより、対象サーバーのデータ消失のみならず、同時にバックアップデータも消失・・・・

つまり、すべてのデータが消失するという、大問題がありましたが、

その教訓を経て、物理サーバーはYahooに任せ、
DNSも外部のAWS Route53(SAL100%)を使うなど、
より専門性の高い分野は、さらなる専門家に任せ

サービスに特化した会社になったようです。

 

WordPressが使えたり、メールが出来るとか、
基本的なことは、当然できるとして、

サーバーの特徴をば

 

 

常時SSLがどのドメインでも、無料!

入力フォームなどを一部を暗号化するだめに、SSLは使われていましたが、

ECCUBEなどの自社通販サイトに使う以外に、
小さな会社や、個人では、ちょっと・・・

事実、弊社もそんなこんなで、SSL化が遅れていますが、

 

しかし、

GoogleがSSLをランキングリズムのシグナルの1つにするとしたため、

SEOにおいても上位表示に効果も期待出来ます!

 

だれでも無料で独自ドメインに対応したSSLサーバー証明書が使える
Let’s Encrypt(レッツエンクリプト)」だけでなく、

業界大手シマンテックグループのSSLサーバー証明書が

無料・無制限で利用可能!

 

 

Zenlogicは、CDN が30GB/月まで無料

CDNとは、キャッシュサーバーのことで、
ヤフーニュースなどのビッグサイトで掲載され、
サーバーがパンクして、停止するようなことを避けるための、代理サーバーです。

初期費用なしで、30GBまで使え、
それ以降は、20円/1GBなので、よほどのことがない限り・・・

 

PHP/CGIなどで動的に生成されるコンテンツ(Wordpress)でも、使えるようですが、
平常時は、オリジナルサーバーを指定し、
非常時に、DNSでキャッシュサーバーを指定する仕組みみたいですね。

 

仮想専用サーバー(VPS)

1つのサーバーを、複数の人で共有するタイプのサーバーではなく、
ユーザー毎に、CPUやメモリー、OSが割り当てられているので、
他ユーザーが

大広間で雑魚寝か、個室で区切られているか?
いびきがうるさい、寝相が悪くて・・・を、気にしなくていいVPS

サーバーのスペックが足りないと感じたら、上位プランにカンタン切り替え出来るので、最小のプランで運用をはじめて、
負荷を見ながら、プラン変更出来るのも、特徴ですネ。

 

OSから異なるので、専用サーバーと酷似した安定性を実現しつつ、
低コストで運用できるのが、VPSの魅力なんですが、

VPSみたいに、「黒い画面でコマンドを打ち込む」は、不要!

***

オススメプランは、プランS

20周年記念として、用意されたプランS(890円/月)

プラン1(2970円/月)と比較し、

  • ディスク容量が、300GB(容量追加はできない)
  • 休日の電話サポートが対象外(平日のみ/メールはおk)
  • 設定のチューニングをお願いできない

特に困るわけではないレベル差ですね。

AWSは、3000円/月でメール対応なので、
電話対応してもらえるだけで、ありがたいぐらい!

 

  • 12ヶ月契約で、10675
  • スペック不足のときは、上位プランへ変更も可
  • 常時SSLが重要なトレンド
  • SSL証明書が無料・無制限

そんなZenlogicのお申込みは、こちら!


「プランS」は2017年6月30日までの期間限定!!

お早めに!

-