アフィリエイト広告を利用しています

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

SQLiteのすすめ、チューニングのポイント

SQL ServerやMySQL、MariaDBなどサーバー型データベースでは必然的なチューニングですね。SQLiteもチューニングが必要になります。

チューニングのポイントを探る上で最も重要なポイントは、↓これです
  1. SQL発行、処理時間等、正確な時間を測定。必要があれば記録を残し、比較する

これがわからないとチューニングの指針が定まりませんね

個人的にSQLiteをよく利用する言語はPHPです。PHPで時間計測は以下のようにします。
$start = microtime(true); 
SQL発行処理();
echo number_format( microtime(true) - $start, 4 ) . PHP_EOL;
  • マイクロ秒で測定できます。(マイクロ秒は、ミリ秒の1/1000です)
  • マイクロ秒の現在時刻から記録した処理前時間を引くことで求められます。


要件を満たしているなら遅くてもチューニング不要だと思います。
ただ運用後、登録データ数が増えるテーブルは、遅くなる場合が多いのである程度のチューニングは必要かもしれません。
チューニングのポ・・・・・

SQLite3で同時書き込みしたい

SQLite3で同時書き込みしたい、同時接続、同時読み込みをサポートしているから当然同時書き込みもできると思いがちですが、SQLite3は同時書き込みできない仕様になっています。
SQLite supports multiple simultaneous read transactions coming from separate database connections, possibly in separate threads or processes, but only one simultaneous write transaction.

SQLiteは、場合によっては別々のスレッドまたはプロセスで、別々のデータベース接続からの複数の同時読み取りトランザクションをサポートしますが、同時書き込みトランザクションは1つだけです。
sqlite.org 2.1. Read transactions versus write transactions


SQLite3のトランザクションとロックのおさらい


トランザクションは明示的、暗黙的の2種類です。
明示的トランザクションの開始は、以下の3つのコマンドです。確定(COMMIT)、元に戻す(ROLLBACK)制御がでいます。
明示的 BEGIN/BEGIN DEFERRED 最初のR/I/U/Dアクセスで読み込み・書き込みトランザクションを開始
明示的 BEGIN IMMEDIATE 宣言で書き込みトランザクションを開始、他からリードできる
明示的 BEGIN DEFERRED 宣言で書き込みトランザクションを開始、他からリードできない

暗黙的トランザクションは、自動的に開始されたトランザクションです。BEGINやCOMMITを使わなくてもトランザクションが働く仕組みになっています。BEGIN命令は自動的コミットを停止する役割になっています。

トランザクション開始、コミット等で「SQLITE_BUSY:別のプロセスで使用されているデータベース」エラーが発生します。sqlite.orgのトランザクションドキュメントを読むとこのあたりこのことが明確になります。

ロックと並行性(ttps://sqlite.org/lockingv3.html)も合わせて熟読すると内部構造がなんとなく理解できます。

トランザクションの開始でファイルがロックされる仕組みではないことがわかります。

SQLite3のロックは?SQLite3がファイルロックするタイミングは極力少なくするように設計されています。ただロックの失敗はSQLITE_BUSYエラーに集約されます。

ロックの状態は5種類あります。
UNLOCKEDデフォルトの状態。オープン直後またはアクセスがない状態
SHAREDSELECT、BEGINコマンド後のSELECTで取得、この状態は複数プロセスを許可
RESERVED最初のINSERT、UPDATE、またはDELETEの実行で取得。この状態は唯一、獲得可能は1プロセス
PENDING自分以外のSHAREDがある状態、EXCLUSIVE待ち。獲得可能は1プロセス
EXCLUSIVE排他ロック。書き込み中。獲得可能は1プロセス

書き込みが発生する暗黙的トランザクションも同様のロックが発生します。

ロック中の読み取りは、EXCLUSIVEロック中だけ他プロセスもリードアクセスができなくなります。これ以外のUNLOCKED 、SHARED 、RESERVED中はリードアクセス可能です。
PENDINGはSHAREDロック所有プロセスはリードアクセス可能です。新たなSHAREDロックは獲得できません。
同時読み込みをサポートする仕組みであることがわかります。ただEXCLUSIVEロック中は読み込みも失敗することに注意が必要です。

プログラム(PHP SQLIte3)に落とし込んで考えると以下のようなことがわかりました。
・querySingle("select")、query("select")、prepare("select")等でSHAREDロックが発生する
・exec("insert")等でSHARED、RESERVED、EXCLUSIVEロックが発生する
・exec("begin")発行では、ロックは発生しない。
・exec("begin IMMEDIATE")はRESERVEDロックを獲得しようとする
・exec("begin EXCLUSIVE")はEXCLUSIVEロックを獲得しようとする
・sqlite3内部のロック状態は発行の失敗で判断するしかない

同時書き込みトランザクションは1つだけの範囲は?テーブル?全体?検証してみました


検証の結果、同時書き込みトランザクションは1つだけの範囲は、データベース全体です
同一テーブルに対しての同時書き込みは、100%「Unable to execute statement: database is locked」が発生します。
異なるデーブルに対しての同時書き込みは、100%「Unable to execute statement: database is locked」が発生します。

添付のPHPソースコードで検証しています。2つのプロセスから同時に1000件書き込む単純なコードです。
sqlite3のバージョンは「3.32.3 2020-06-18 14:16:19」です。macOSで実行しています。
同一テーブル検証ソース(test1-w.php)
<?php
class test {
public function run($table, $name){
$db = new SQLite3(__DIR__ . "/test.db");
$db->enableExceptions(true);
try{
$db->exec('begin');
$stmt = $db->prepare("insert into {$table} (time, value ) values (:time,:value)");
for( $i = 0; $i < 1000; $i++ ){
$stmt->bindValue(':time', time() );
$stmt->bindValue(':value', $name ."-". $i );
$stmt->execute();
}
$db->exec('commit');

}catch(Exception $e){
$db->exec('rollback');
print_r($e);echo "{$table}:{$name}:{$i}:".PHP_EOL;
}
}
}
if( isset($argv) && isset($argv[0]) && isset($argv[1]) == false ){
if( file_exists(__DIR__ . "/log.log") ){unlink(__DIR__ . "/log.log");}
if( file_exists(__DIR__ . "/test.db") ){unlink(__DIR__ . "/test.db");}
$db = new SQLite3(__DIR__ . "/test.db");
$db->exec('create table tbl (pk INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, time, value )');
$db->close();
unset($db);
$cmdlist = [];
for( $i=0; $i< 2; $i++ ){
$cmdlist[] = "php test1-w.php tbl name{$i} > ./log.log 2>&1 &";
}
exec( implode( '', $cmdlist ) );
}
else{
$test = new test();
$test->run( $argv[1], $argv[2] );
}
  • ○ test1-w.phpとして保存してください。
  • ○ 実行:php test1-w.php
  • ○ database is locked等が発生するとすぐに終了します。
  • ○ test.dbファイルがテストに利用したSQLiteデータベースファイルです。
  • ○ log.logファイルに実行結果が残っています。cat、less等で内容を確認できます。

異なるデーブル検証ソース(test2-w.php)
<?php
class test {
public function run($table, $name){
$db = new SQLite3(__DIR__ . "/test.db");
$db->enableExceptions(true);
try{
$db->exec('begin');
$stmt = $db->prepare("insert into {$table} (time, value ) values (:time,:value)");
for( $i = 0; $i < 1000; $i++ ){
$stmt->bindValue(':time', time() );
$stmt->bindValue(':value', $name ."-". $i );
$stmt->execute();
}
$db->exec('commit');

}catch(Exception $e){
$db->exec('rollback');
print_r($e);echo "{$table}:{$name}:{$i}:".PHP_EOL;
}
}
}
if( isset($argv) && isset($argv[0]) && isset($argv[1]) == false ){
if( file_exists(__DIR__ . "/log.log") ){unlink(__DIR__ . "/log.log");}
if( file_exists(__DIR__ . "/test.db") ){unlink(__DIR__ . "/test.db");}
$db = new SQLite3(__DIR__ . "/test.db");
$cmdlist = [];
for( $i=0; $i< 2; $i++ ){
$db->exec('create table tbl'.$i.' (pk INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, time, value )');
$cmdlist[] = "php test2-w.php tbl{$i} name{$i} > ./log.log 2>&1 &";
}
$db->close(); unset($db);
exec( implode( '', $cmdlist ) );
}
else{
$test = new test();
$test->run( $argv[1], $argv[2] );
}
  • ○ test2-w.phpとして保存してください。
  • ○ 実行:php test2-w.php
  • ○ database is locked等が発生するとすぐに終了します。
  • ○ test.dbファイルがテストに利用したSQLiteデータベースファイルです。
  • ○ log.logファイルに実行結果が残っています。cat、less等で内容を確認できます。


同時書き込みトランザクションは1つだけのSQLite3で同時書き込み


こちらで説明した通り、SQLite3は同時書き込みをサポートしていません。これはファイル型データベースの宿命かもしれませんね。Access(mdb)でも同じような感じだったと記憶しています。

同時書き込みをサポートしているSQLServer、Oracle、MySQLといったサーバー方式のデータベースと同じような概念では対応できないってことですね。

SQLite3で同時書き込みをサポートすることはSQLite3をSQLServer、Oracle、MySQLに昇格させるような困難が待ち受けている可能性があります。同時書き込みをさせない設計にしておくことが良いかと思います。

できないのではなく、できるようにする考え方


ここではレンタルサーバー利用で良くあるWebのコメント欄や掲示板にSQLite3を利用した場合を想定し、同時書き込みするにはどうすればいいのかを考えています。複数のユーザーがブラウザでアクセス、書き込み等することでほぼ同時の書き込みが発生する可能性があります。
SQLite3では同時書き込みはサポートされていませんが、複数の要求をシーケンシャルに順次書き込みすることで問題は発生しないはずです。

不確実なことがあり得るリトライ方式


Exceptionを検出して、リトライする方式です。Exceptionやエラーが検出できる言語なら、少量のソースコードの変更で対応できる方法です。
書き込みの順番性は失われることがあります。
リトライの上限を決めておくのも大切です。リトライ満了で失敗した場合を考慮する必要があります
環境によっては同時書き込みの影響でデータベースが壊れてしまう可能性を秘めています(ファルロックシステムコールが正しく動作するストレージをお使いください)。

Mutexやセマフォを利用することで上記のようなエラーを抑止することができます(Mutexやセマフォが使える環境の場合)。

登録する順番をあまり考慮していませんが、以下のような方法があります。こちらのトライロックを実現する方法を利用した同期処理を利用します。
1)try-lock 獲得できない false/NG 
1−1)dbに対してinsert/update/deleteする内容をユニークなファイル名で所定ディレクトリに保存します。
2)try-lock 獲得できた true/OK 獲得できても稀に競合が発生します。
2−1)dbに対してbegin;create table;commitを発行します。稀に発生する競合はここで除外します。
 例外が発生した場合は、1ー1)と同じようにファイルに保存します。
 ここで除外できないパターンもあるかもしれません。
  2−2)、2−3)でもcatchし、ファイル化するロジック組み込んでおくのが安心です。
2−2)所定ディレクトリをスキャンし、ファイルがある場合はinsert/update/delete処理を行います。
 処理できた場合は、対象ファイルを削除します。
2−3)通常処理 

  • ・所定ディレクトリは設計で定めてください。
  • ・dbはenableExceptions(true)で例外発生を許可しておきます。
  • ・try catch構文でdatabase is lockが発生した際、catch可能です。
  • ・ディレクトリからファイルを探す処理になるため、ファイル名をうまく設計しておかないと順番制が担保できません。
  • try-lockの方法で、競合発生するはずないでしょ。って思うかもしれません。とてもシンプルで頑強に思います。事実、稀に発生します。どうして発生するのか想像もつかないぐらいナイスなタイミングが発生しているんだと思います。競合をなくすことはかなり難しいので発生に備えた方が簡単だと思っています。


後からまとめ書き込み方式


この方法は、要求で即時に書き込む代わりに、要求を所定のディレクトリ等にファイル化します。
スケジュール(クーロン等)でディレクトリをスキャンし、まとめて書き込む方式です。

順序性は秒レベルです。工夫することでミリ秒レベルまで落とし込むことが可能です。

リクエストしたデータの反映は、スケジュール間隔に依存します。リアルタイム性がありません
スケジュールの最小実行間隔は通常1分です。これ以下での間隔での処理はできません。

定期実行されるプログラムでは、所定ディレクトリをスキャンし、古い順(ファイル更新時刻等で並び替え)に処理していきます。処理済みの要求ファイルを削除します。

EXCLUSIVEロック中は読み取りアクセスも失敗します。わずかなタイミングですがこの隙間に読み取りアクセスが発生しない保証がないのでオンライン用データベースとオフライン用データベース(更新用)、2つのデータベースを持つことも検討してみてください。

オフライン用データベースがマスターデータベースです。オフライン用に書き込み処理を実施し、
完了後オフライン用データベースをオンライン用データベースに上書きコピーします。

「後からまとめ書き込み方式」は、システムが出来上がると安定した運用が可能です。

上書きによるエラー(オンラインで参照している側)は記憶の限りありません。
ボトルネックの少ない、SSD採用のレンタルサーバーを利用しています。

メッセージキュー方式


レンタルサーバーでの利用は厳しいかもしれない方法です。VPS等ご利用中の方が使える方法です。お使いの環境でメッセージキュー関数が使えるかどうかを事前に確認する必要があります。

要求の順序性を保ちつつ、ほぼリアルタイムに処理できる方式です。
AJAX等でコールされたプログラムからメッセージキューへ送信します。
メッセージキューを受信する専用のプロセスが必要です。このプロセスは、SQLite3書き込み用プロセスで順次くる要求に従ってデータベースを更新します。

キューを利用することで並列でくる要求をシーケンシャルにすることが可能です。

メッセージキューに格納できるデータサイズの上限等の制限(環境依存)もあり得ます。この場合中間ファイル等を利用することで回避できます。

同時書き込み単位にファイルを分割




まとめ


SQLite3で同時書き込みすると「database is locked」エラーが発生します。同時読み込みをサポートしているから当然同時書き込みもできると思いがちですが、SQLite3は同時書き込みできないことが分かったかと思います。

SQLite3で同時書き込みを防ぎつつ、システム利用するのにはどうすべきかをご紹介してきました。

SQLite3の更新系は「同期」が必須になります。そのための設計が必要ってことですね。

今回ご紹介したように同期をプログラムからサポートする方法もあります。
ただこれがいいってわけではありません。

同時書き込みする場合のおすすめはデータベースサーバーです

「database is locked」エラーで悩むのは、SQLite3の用途を超えた設計になっているかも。

「応答速度が速い」がGoogle上位表示の秘訣!応答速度が速いサーバーは?

2018年7月からページ速度がより早い方がモバイル検索ランキング上位に表示される要素になるってご存知でしょうか?googleの公式ブログで2018/1/17に発表されているのでご存知の方も多いかと思います。
=>2018/7から「応答速度が速い」がGoogle上位表示の秘訣になるってことです。

人々はできるだけ早く質問に対する回答を見つけることができるようにしたいと考えています。研究によれば、人々はページのスピードを本当に気にしています。スピードはしばらくの間ランク付けに使用されていましたが、その信号はデスクトップ検索に集中していました。今日では、2018年7月からページ速度がモバイル検索のランキング要素となることを発表しています。
https://webmasters.googleblog.com/2018/01/using-page-speed-in-mobile-search.html


ユーザーがページを表示するまで速いのが一番ですが、サーバーが担うのは一部です。
1)【スマホ/PCの役割】URLからIPアドレスをLookup、サイトに要求する
2)【サーバーの役割】URLに該当するページを応答する
3)【スマホ/PCの役割】レスポンスで受け取っとページを描画する

2)の部分をできる限り速くするのがサーバーの役割です。これ以外の部分はユーザーの範疇です。例えば高性能なスマホなら速く表示できるし、ユーザーの使っている回線が速ければ素早く表示できます。

速いサーバーはレスポンスが早いということになります。レスポンスが遅いと離脱率が上がり、記事を見てもらえない可能性が高くなります。
サイト表示が2秒遅いだけで直帰率は50%増加!

操作開始時間が1秒のサイトと3秒のサイトを比較しても、3秒のサイトは1秒のサイトに比べ、ページビューが22%低下、コンバージョン率は38%低下、直帰率は50%上昇してしまう
Impress:Web担当者



応答速度が速いレンタルサーバーの定義


サーバー ハードウェアのスペックで注目したいのは、SSD採用かどうかです。VPSや専用サーバーならCPUコア数、メモリも重要ですね。多ければ多いほどピーク時に対応しやすいメリットがあります。反面価格も高くなるのでトレードオフです。

ポイント1)SSDを採用している


ファイルへのアクセスが高速になります。ページのキャッシュ(ファイル)、データベースクエリの結果キャッシュ(ファイル)、PHPコード(ファイル)、ファイルにアクセスするシーンは多いです。
ベースのRead/Writeスピードが高速なSSDは有利です。SSDを採用しているレンタルサーバー、VPSサーバー、専用サーバーは多いです。

ポイント2)HTTP/2 or QUICに対応している


サイトのSSL対応はGoogleのページランキングの要素の一つです。HTTPS化のメリットの一つはHTTPより速くなることが期待できるHTTP/2、QUICを使えるようになることです。

HTTP/2は、HTTPS通信時にEdge/Chrome/Safari/Opera主要ブラウザが使えるプロトコルです。サーバー(HTTPデーモン)がHTTP/2に対応している必要があります。
HTTP/2のメリットは、クリティカルパスを短くできる可能性を秘めています。優先度制御や非同期でのリクエスト/レスポンス処理が可能です。ブラウザの進化によりHTTP/2に対応しているサイトは、Webページを表示する見かけ上のスピードを向上することが期待できます。

QUIC(Quick UDP Internet Connections)は、GoogleがHTTP/2より安全で高速なレスポンスを目指し、Chrome/Operaブラウザで使えるプロトコルです。サーバーがQUICに対応している必要があります。
chrome://net-internals/#quic
で動作状態を確認することができます。デフォルトではアクティブになっていました。

ポイント3)次世代HTTPサーバー(Nginx、LiteSpeed)とキャッシュ機能が使える


HTTPサーバーといえばApacheが有名ですね。2018年6月時点、同時アクセスのパフォーマンスに着目したNginx、さらに高速化を目指しているApacheと互換性のあるLiteSpeed、次世代HTTPサーバーがレンタルサーバーでも利用できるようになっています。

同じハードウェアでHTTPサーバーの処理能力が向上するものなの?疑問ですよね。LiteSpeedで検証データが公開されています。LiteSpeedはApahceの10倍処理能力があります。
LitespeedはApacheの10倍、NginxはApacheの4倍処理能力が高いことがわかるグラフ

出典:https://blog.litespeedtech.com/2018/03/05/compare-openlitespeed-to-nginx-and-apache/
このグラフは1秒間にリクエストをどの程度アクセスを受け入れられるかを示しています。グラフが高いほど優秀です。
このグラフからApache上のWordpressサイトでW3 Total cacheを有効にしたサイトを1とすると、Nginx+FastCGI Cacheは4.24倍、litespeed(オープンソース版)+LSCacheは10.24倍処理能力が向上できることがわかります。

これらの要件を満たすレンタルサーバーは?


XSERVER、mixhost、JETBOY、この3つのレンタルサーバーです。

XSERVERのポイント


ポイント1)全プランRAID10構成のSSD採用 200GB〜
ポイント2)次世代nginxサーバーを採用
ポイント3)FastCGI、HTTP/2が使える
ポイント4)最安X10プラン 初期費用3,000円+1年契約で月額1,000円相当です。
ホストサーバーは20コアCPU & 192GBメモリのハイスペックサーバーです。このスペックを複数人で共用し、利用します。

公式で詳しくチェック=>エックスサーバー



mixhostのポイント


ポイント1)全プランRAID10構成のSSD採用 50GB〜
ポイント2)次世代LiteSpeedサーバーを採用
ポイント3)HTTP/2&QUIC完全対応
ポイント4)最安スタンダードプラン 初期費用無料+1年契約で月額980円相当です。
ポイント5)VPSのようにユーザーごとメモリ、CPUなどのリソースが割り当てられます。(3vCPUs / 2GBメモリ〜)
ホストサーバーは24コアCPU & 256GBメモリのハイスペックサーバーです。

公式で詳しくチェック=>MixHost



JETBOYのポイント


ポイント1)RAID構成のSSDを採用しています。
ただし、SSDデータベース&HDDのハイブリットSSD構成のサーバーもあるようです。
ポイント2)次世代LiteSpeedサーバーを採用(LiteSpeedエンタープライズ版) 、LScacheプラグインも使えます
ポイント3)HTTP/2完全対応
ポイント4)最安ミニSSDプラン 初期費用1,000円+1年契約で月額290円相当です。
ポイント5)VPSのようにユーザーごとメモリ、CPUなどのリソースが割り当てられます。(1コア / 512MBメモリ〜)
ホストサーバーは24コアCPU & 256GBメモリのハイスペックサーバーです。

スタンダードプランは、ストレージ40GB、3コア、メモリ2GB構成で初期費用3,500円+1年契約で月額1,280円相当です。

公式で詳しくチェック=>JETBOY




まとめ


今回ご紹介したサーバーはいずれもお試し期間があります。ホストサーバーのスペックはほぼ横並びです。お試し期間でパフォーマンスをチェックし、Google上位表示しちゃいましょう!

格安共用サーバー徹底比較!【厳選格安11社12プラン】

月100円のレンタル料金で、MySQLが利用でき、ワードプレスがインストールできる格安・激安共用(レンタル)サーバーのまとめです。


各レンタルサーバーの初期費用、半年契約、年契約の費用やドメイン数、ディスク容量、転送量、PHPバージョンなども明記しているのでレンタルサーバー選びの参考にしてください。

初期費用を含めた年額、月額、初期費用、高速SSDストレージ、大容量ストレージ、転送量、PHP7が利用可能、PHP高速化が可能、IP分散、SSH、クーロン、11の視点で月額200円未満の11社12プランを徹底比較しています。


はじめに結論!おすすめはコレ!


2017年7月27日時点の情報をまとめ、徹底比較した結果のおすすめできる格安共用サーバーです。

↓↓ 絶対おすすめ!クリックして詳細を確認してみてください ↓↓




おすすめ理由はこちらをチェック!

↓↓ 絶対おすすめ!クリックして詳細を確認してみてください ↓↓




おすすめ理由はこちらをチェック!




突然サービス終了していたり、サービス内容が変更されることもあることをご理解ください。

続きを見る方はこちらをクリックしてください

SQL Server 2017 Linuxが使えるレンタルサーバーは?

SQL Serverは、MicrosoftのWindowsサーバー上で動作するデータベースエンジンです。

データベース(RDBMS)、
レポーティング(SSRS)、
インテグレーションサービス(SSIS)、
多次元データベース(SSAS)
などの機能が使えます。


2017年中旬、そろそろだと思います、
SQL Server 2017はLinuxを正式サポートすることが決まっています。


2017登場時点では、RDBMS(フルテキスト検索も可能)がLinuxに対応しています。


パブリック プレビュー版でサポートされるLinuxディストリビューション
Red Hat Enterprise Linux 7.3
Ubuntu Linux 16.04
SUSE Linux Enterprise Server v12 SP2

これらディストリビューションを稼働させている方は、
Microsoftのサイトより入手し、インストールすることができます。


SQL Server 2017 Linuxは、こちらのdocs.microsoft.comの情報がとても詳しいです。
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-release-notes



SQL Server 2017 Linuxのメリット


Linuxで動かせるメリットは、無償で動かせるLinux上でSQL Server 2017を稼働できるところです。
  • Windows ServerのCALが不要になるだろうと推測しています。


データベースは、使い慣れたSQL Serverにする、という選択肢がインターネット上のシステムでも比較的リーズナブルに配置できるかもという魅力を感じます。


MySQLでいいじゃんって声がきこえてきます。その通りです。
SQL Severはイントラネット環境で採用されることが多いデータベースです。


従量課金制のAzureではコストが見合わないようなシステム案件で、
SQL Server 2017 Linuxが選ばれていくと思います。


MySQLから乗り換える必要は一切ないです。



当然メリットだけではなく、不安は大きいです。
LinuxとWIndows Server混在の構成では、WIndows認証の実装レベルで苦労するかも・・・
(Linux版はWIndows認証未対応)
価格はリーズナブルなのか・・
SSAS、SSISのLinux対応はないのか?
Linux版のSQL Server Management Studio (SSMS)が欲しい・・
SQL Server 2017 Expressもあるといいなぁ・・



SQL Server 2017 Linuxが使えるレンタルサーバーは?


SQL Server 2017 Linuxは未リリースです。使えるレンタルサーバーはありません。


OSを選んでインストールすることができる専用サーバー、VPSは、稼働させることができます。






まとめ


2017年7月14日時点の情報に基づいています。
記事中にある公式サイトから最新情報を入手することができます。




レンタルサーバーの試用期間で確認すること10選【初心者向け】

レンタルサーバーの試用期間で確認すること10選

インターネットで情報を公開しようとVPS、専用サーバー、レンタルサーバー、ワードプレス専用サーバー、自宅サーバーどれにしようか悩んだりしますよね。

当ページを読むと、
試用期間で確認すべきことがわかります。
レンタルサーバーに絞って試用期間で確認すること10選をまとめています。

目次



初めてサーバーをレンタルする際は、検索して見つかった評判やおすすめなどを参考にしたりします。
こういった情報はなるべく、新しい日付の情報を参考にした方が良いです。

例えば、レンタルサーバーの場合だと、契約する時期が新しければ、新スペックのサーバーになったりします。

古い日付の情報の場合、その時点ではあっている情報でしたが、今では全然違うってこともよくあります。
  • なるべく新しい更新日の情報を参照する


レンタルサーバーの試用期間中の料金に関して
  • 初期費用や月額料金は発生しません。無料です。


本契約した場合の扱いに関して
  • 本契約を結ぶと試用期間中に試したサーバーが割り当てられます。


  • 試用期間中にサポートへ連絡しても特に料金等は発生しないので、
    疑問に思ったことは問い合わせした方がいいです。


    【試用期間でサーバーを試す心構え】
    「評判通り良いサーバーだったら契約する」という気持ちが必要です。



    レンタルサーバーを試す前に準備すること


    rental-server-zyunbi.png

    試用期間は、自分にあっているサーバーなのか?を確認する選定期間です。
    可能であれば、複数のレンタルサーバーで、同時に確認するのが望ましいです。

    • 試用期間があって、必要不可欠な機能があるサーバーをピックアップします。

      例えば、php7が使える、sshが使える、wordpressの自動インストールがあるなどです。


    • レンタルサーバーに試用期間申し込みする際に必要となるログイン名を決める

      いくつか候補を決めておきます。すでに存在する名前は使えません。


      後から変更することはできません。
      独自ドメインを利用する予定であれば、適当でいいと思います。


      多くのレンタルサーバーは、このログイン名がデフォルトで使えるドメイン名になります。
      さくらインターネット:○○○.sakura.ne.jp、エックスサーバー:○○○.xsrv.jp、LOLIPOP:○○○.xxxx 
      ○○○に相当する部分がログイン名です。
      ロリポップは、xxxxxに該当する部分が選べます。




    よく比較されるレンタルサーバー3選【契約済】


    さくらインターネットのスタンダードプラン、エックスサーバーのX10プラン、LOLIPOP!のスタンダードプランは、いろいろなサイトで比較されるのを目にします。

    プランやスペックの比較は以下の通りです。いずれのレンタルサーバーも試用期間があります。表示している価格は税込みです。
    3つを比較して、優れているポイントを太文字(赤)で強調しています。

    レンタルサーバーさくらエックスサーバーLOLIPOP!
    プランスタンダードX10スタンダード
    年間契約時の月額515円1,080円515円
    無料お試し期間14日間10日間10日間
    初期費用1,029円3,240円1,620円
    ディスク容量100GB200GB120GB
    転送量上限目安/日80GB70GB100GB
    共有SSL対応無料独自SSL対応
    独自ドメイン数20無制限100
    MySQLデータベース数205030
    WordPress簡単インストール対応対応対応
    データベースの容量制限全体で500MB1つあたり500MB
    MySQLバージョン5.5.x5.7.x / 5.5.x5.6.x
    php7対応対応対応

    プランの月額は、12ヶ月契約で一括払いした金額を月額相当に計算しています。

    エックスサーバーは、初期費用が3,240円から半額1,620円になる初期費用半額キャンペーン実施中です。
    2017年4月28日までの期間限定です。

    エックスサーバーの試用期間申し込みはこちらから↓








    レンタルサーバーの試用期間で確認すること10選【初心者向け】を読む>>>

サーバーに設置できる無料ヒートマップシステムはあります

訪問者がどこを読んでいるのか可視化できるヒートマップ、サイトの構成見直しや記事のブラシュアップに大変役立つツールです。

ヒートマップはGoogle Analysticsと同じようにJavascriptをHTML内に埋め込むことで使えるようになります。



ヒートマップは、マウスクリック、タップ、マウスの移動、ページスクロールしている、しないでみているエリアなどの情報を元に可視化しています。


ヒートマップは統計情報だよね


一番信頼できるのはマウスクリック、タップの情報です。
訪問者がマウスをクリックした、タップした場所のイベントは正確です。推測が一切ありません。

マウスカーソルが置かれている位置、ページのスクロール、スクロールが止まっている状態、これら情報を元にサーモグラフィーのようなヒートマップが作られています。
(日々進歩していると思われます。)


ページを見ている最中に、友達と会話が弾んでそのまま放置でも、Javascriptから得られる情報は「見ている」ことになります。

8割の人は、あまり見ていないかもしれません。2割の人はある程度真剣に見ているかもしれません。



真剣に見てくれている2割のための改善を考えるとPV500以上必要じゃないでしょうか。
10アクセスで2つサンプル、100アクセスで20サンプル、500アクセスで100サンプル、1000アクセスで200サンプルになります。

情報の精度は、サンプルの数によって上がります。



ヒートマップの仕組みはサーバーへの負担が大きそう


Javascriptでマウスイベント、スクロールイベントを検出した結果を送信、サーバー側で蓄積した結果を解析するという流れでサーモグラフィーのようなヒートマップが出来上がります。



マウスの移動は環境によってまちまちですが、頻度が多いイベントです。
1PVに対しての送信頻度が多い傾向になります。

PVが多いメディアでは、このイベントをさばけるようなサーバーが必要になってきます。
ある程度まとめて送るような施策も必要だと思います。

自前でサーバーを用意したくないなら無料のヒートマップツールを試してみよう!


ある程度まで無料で使えるオススメのヒートマップツールです。
  1. ptengine
    メールアドレス+サイトURLの無料登録で使えます。
    無料で使えるのは、登録したサイトの1ページのみです。

    ヒートマップを使いたいページ数分、メールアドレスが必要になります。
    有料版は、14,800円〜、ページの上限は無くなります。PVの上限値があります。

    Wordpress用のプラグインが公開されています。
    https://wordpress.org/plugins/ptengine-real-time-web-analytics-and-heatmap/

    長めのページを解析したい方にオススメ!



  2. User Heat
    メールアドレス、氏名、サイトURLの登録が必要です。
    月間30万PVまで登録したサイト全ページ解析可能です。


    PV以外にも、有料プランへのお誘いがあります。
    解析できる長さ・幅に制限があります。写真、画像が多めで長いページや文字数2000文字以上ページだと途中で解析結果が切れています。

    このように制限はあります、でも全ページ対象にできるって結構すごいです。
    はじめに試すならUserHeatがオススメです。


 
 
 

自前でサーバーを用意してヒートマップシステムを構築する


まず、普通のレンタルサーバーでは構築は難しいです。
パブリックに公開している自前のサーバー、VPS、専用サーバー、クラウドサーバーなどの環境が必要になります。

こちらのページにアクセスして、要件をつかんでください。
The definitive heatmap
ソース一式置いてあります。

高速反応可能なmod_imapを使い実現する手法です。

registerclicks.js 解析対象のページに設置するjavascriptです。自分のサーバ向けに修正する必要があります。


Rubyで管理系処理を実現しています。


ログを解析して、最終的に画像(final.png)化します。

表示はOverlayで実現



関連リンク:
https://sourceforge.net/projects/clickmaps/

下部にあるコメントも見逃せません、「俺はメッセンジャー使ってやってるよ」とか想像を掻き立てられます。

PerlやPHPでやる手法も部分的に公開されています。


1つ目のボトルネックは、apacheの反応速度、cgiやphpやモジュール系がいいです。
検討すべき項目:CPU性能、コア数、バックボーンの転送速度など

アクセスを受けた後、最終的に情報を格納する必要があります。

2つ目のボトルネックは、ディスクの書き込み速度、マルチアクセスに対するディスクアクセス制御、ディスクコストがキーになります。
検討すべき項目:スループット、SSD


難しいソースではないので、読んで理解することができると思います。
自分で改善ポイントやレンタルサーバーでできるアイデアも湧いてきますね!


mod_imapを入れるにはルート権限でいじれる環境、例えばVPSが必要になってきます。
VPSサーバーでも月額が安いものが登場しています。
性能は、当たりハズレがあったりします。

だから無料期間があるVPSを選びたいですね!

評価する期間は長い方がいいので、無料期間が長い順に3つご紹介します。
事務手数料無料! 無料期間1ヶ月! 月額467円〜

【SPEC】Memory:1GB〜、HDD:50GB〜

初期費用がなく、月額も一番安いです。これで満足できる性能だったらトータル費用が一番安く仕上がります。



無料期間2週間! 月額685円〜

【SPEC】Memory:0.5GB〜、SSD:20GB〜 初期費用:1,080円
【UPGRADE】メモリ1GB、2コア、SSD30GBは、月額972円です。

無料期間が2週間付いているメリットがあります。スペック的にはCoNoHaと競合しています。


こちらは初期費用が無料でSSD付きです、トータル的に見るとお得です。
初期費用無料!月額630円〜

【SPEC】Memory:0.5GB〜、SSD:20GB〜
【UPGRADE】Memory1GB、2コア、SSD50GBは月額900円です。



自分で設置できるヒートマップのまとめ


無料で使えるHeatmapツールは優秀です。有料プランは高いです。

高度ではありませんが、ヒートマップを実現する根幹部分のソースコードは公開されています。
やろうと思えば設置して全部コントロールできます。

PVが多いと色々問題が出てくるかと思います。
アクセスをさばけるサーバーの必要性が出てきた時、有料プランの方がお得ってことになるかもしれません。

PV数が多くなるとコストがかかります。
1サイトならHeatmapツールの無料版をアップグレードする方がお得かもしれません。

複数サイトならコスト見合いですね。












24時間連続稼働パソコンの悩みはコレで解決!?

自宅のウィンドウズ10、Core i7、メモリ16GB、SSD搭載のPCは、とっても高性能です。だから24時間連続稼働させてMT4などのFX自動売買ソフト、GRC、コンパスなどの検索順位チェックツール、フォローマティックXY等々のソフトを動かすこともできちゃいますね。

当然出勤して、自宅にいない時にも、パソコンが稼いでくれる環境です。

ただ、とっても心配なことがあり、不安もあります。


普通のパソコンで24時間連続稼働するリスク


自宅のパソコンはかなり高性能、ハイスペックです。HTTPDのサービスも提供できちゃいます。
でも、産業用PCではなく、普通のパソコンです。
そして、自宅だからこそ、不安になることがあります。

一番の不安は、住宅火災=>パソコンからの発火することです


パソコン発火事件


数世代前の自作したパソコンの話です、CPUが発火しました。


その時は、在宅でリビングでくつろいでいました。


「何かくさい」




異臭の原因を探したらPCでした。



すぐに電源ケーブルを引っこ抜いて、火災には至りませんでした。(自宅にいるタイミングで、本当に良かったとしみじみ思います)



当時はマザーボードにCPU FANを監視するようなものもなく、CPUクーラーのファンが止まって熱でやられた感じだったと記憶しています。






今時のマザーボードは、FANの動作を監視できます、ただ、事実として

パソコンは「勝手に燃える可能性を秘めている」ことを体感
しました


PCの発火対策は?


定期的に掃除する、燃え移る可能性のあるホコリを除去するのが目的です。
初夏からだんだん暑くなってくるのでエアコンも欠かせません。

今の所これだけです。不安はぬぐえません。


ところで自宅のパソコンの中掃除したことあります?


蓋を開けて、びっくりするほどホコリが溜まっています。


吸気ファンから吸い込んだホコリがケース下、マザーボードなどに付着しています。



割とさっぱりした性格なので、いつも掃除機で掃除しちゃってます。



ノートPCも定期的に掃除するとFANが生き返ります。
ただ、保証対象外になることが多いです、蓋を開けるとファン付近にたっぷりホコリが溜まっていたりします。

吸気ファン、排気ファン、CPUクーラーのファン、いずれも可動部があり、消耗品です。
チップセット、メモリは意外と発熱しますね。
Windows7,7Pro,8.1,8.1Pro,10,10Proなどは、クライアントOSという位置付けです。
1日8時間の利用用途を想定しています。
=>1週間に1回は再起動しておくと気持ち的に安心です。


自宅サーバは意外とコストが掛かっています


厳密な計算は気が滅入るのでしていませんが、電気代が一番コスト高です。

ベーシックなノートPC 45W
少し高性能なノートPC 65W
ゲーミングノートPC 130W
デスクトップPCは、180W、350W、600W、750Wなど様々あります。

月の電気代は、ワット数と利用時間で変動しますよね。ここでは、24時間、1ヶ月稼働した場合の電気代をワット数別に求めています。W×時間x0.027の計算式で求めることができます。
1ヶ月の電気代ワット数
874.8円程度45W
1,263.6円程度65W
1,944.0円程度100W
2,916.0円程度150W
3,888.0円程度200W
5,832.0円程度300W
7,776.0円程度400W
9,720.0円程度500W
11,664.0円程度600W
13,608.0円程度700W
15,552.0円程度800W
17,496.0円程度900W

この計算は常にCPUがぶんまわっているような環境での想定です。実際には、CPUがアイドルになっている時間の方が多いかと思います。500WのPCで、平均すると100W前後に落ち着くのではないでしょうか。

デスクトップPCの場合、ディスプレイの消費電力も増えることになります。

24時間連続稼働のパソコンの電気代は、875円以上かかることがわかったかと思います。

電気代以外にも、不定期でSSD、HDD、ファンなどの消耗品の交換費用が発生する可能性も忘れてはいけませんね。


24時間連続稼働パソコンの悩みはコレで解決!?


パソコンで24時間連続稼働は、住宅火災を引き起こす不安を感じてしまいます。最近のWindows7以降、スリープから勝手に復帰して、スリープしない起動状態を維持してしまうこともあるので、意図せず連続稼働になってしまうこともあります。

この不安を解消するには、まずはスリープではなく、シャットダウンすることで意図せず連続稼働になってしまうことを防ぐことができます。

連続稼働させる場合、信頼性の高いサーバー用途のパーツで構成するのも一つの手です。ただ、データセンターなどは、夏でも寒いくらいに冷えています。温度管理に気を使う必要があるのは変わりません。

24時間監視できたらいいんですが、実際のところ人がいないタイミングもあるので、不安はぬぐえません。

根本的に不安を解消するには、連続稼働させるPC(発熱物質)を自宅に置かないことです。(と最近気づきました)

ウェブサイトを公開する目的で24時間連続稼働させている


レンタルサーバーに環境を移すことで不安は解消できます。
nginx+PHP/Perl、MySQLの標準的な環境なら対応するレンタルサーバーは数多くあります。

共用レンタルサーバーのデメリット
・管理者権限がない。管理者権限が必要なものは一切入れることはできません。
・mod_rewriteは大抵利用できる(Wordpressを動かすために必須だから)、共用サーバーの場合、利用できないApacheのモジュールがあることに注意が必要。
・PHP/Perlのバージョンに注意が必要。deprecatedになっているPHPが標準というレンタルサーバもある。PHP7に対応したレンタルサーバーを選ぶのが確実。
・MySQLのバージョンは古い。FULL TEXT検索に対応していないMySQLを使っているレンタルサーバーが多い。
・MySQLのデータベースサイズにも注意が必要。大規模なデータベースを想定していません。500MB以上のデータベースは作れないこともあります。
・SQLite3のバージョンは古い。FTS3、FTS4、FTS5に対応していないバージョンの場合が多い。

共用タイプのレンタルサーバーのおすすめは高速でデメリットが少ないエックスサーバーです。



私も愛用しています。たくさんサイト立ち上げていますが遅いって感じたことはありません。(あくまで個人の感覚です)

ストレージ用途


Windowsのファイル共有、macのファイル共有、少し高機能なNAS、2TB、3TBのディスクは割安で購入できるのでストレージ用途としてパソコンを使っている場合、ハードディスクが発火するとか聞いたことありませんが、CPUを内蔵したパソコンやNASは、信頼性の高いものをチョイスしておきたいですよね。

光回線をご利用ならストレージもGoogle Drive、iCloud Drive、OneDriveなどメインに使うOSを軸にクラウドストレージにすることで安く済むことがあります。また、共用サーバーの中にはWebDAVを使えるところもあるので、自分専用のプライベートクラウドもできちゃいます。

難点は、一気にダウンロードする、アップロードするような操作に時間がかかります。ネットワークだとどうしても遅いです。
ただ、24時間いつでもアクセスできる、外出時にもアクセスできる、ハードウェア故障の心配がないというメリットがあります。

セキュリティがしっかりしているビジネス向けのクラウドストレージ
クラウド型高速オンラインストレージ XDRIVE 1TB月額630円〜
大塚商会 どこでもキャビネット
50GB 月額3000円〜

24時間ずっと動かしたいWindowsプログラム


常時稼働させたいWindowsプログラムやアプリがあるとどうしても立ち上げっぱなしにしておく必要があります。

ウィンドウズで24時間連続稼働するならVPSがあります。
Windowsがプリンストールされたレンタルサーバーを契約できます。
つまり自宅サーバーの代わりにウィンドウズのソフトを24時間連続稼働させることができます。それがVPSです。以下で簡単な比較をしています。コストで考えると短期なら断然VPS、長期なら信頼性の高いPCの方が安く済むかと思われます。

型落ちCPUでお値打ちPCなら5万円ぐらいで調達できます。性能・コスパNo1のXserver for Windowsを比較した表を作成しています。これから導き出せる損益分岐点は1年間の利用ならXserver for Windowsの方が費用安いことがわかります。2年、3年と利用する場合自己所有の方が有利です。メンテナンス費用(ファンやストレージの劣化による交換費用)や光熱費の高騰などは考慮していません。
型落ちPCXserver for Windows

初期費用5万円無料
サービス月額料-50,160円(12ヶ月・月額4,180円)
電気代21,024円サービス月額料
ライセンス料等年間11,880円(990円/月)
メンテナンス費用故障したパーツの変更(時価)サービス月額に含まれる
1年間のトータル費用約7.1万円約6.2万円

  • 【Xserver for WIndows】12ヶ月 50,160円(月額4,180円)はXserver for WIndowsの4GBプラン(vCPU4コア、メモリ4GB、SSD100GB)を12ヶ月契約した費用です。
  • 【型落ちPC】電気代21,024円は型落ちPCの消費電力を100Wと仮定、100Wの電気代は1時間約2.4円、24時間連続運転を1年間した場合の電気代です。
  • ライセンス料等【Xserver for WIndows】年間11,880円(990円/月)は、リモートデスクトップ SALの費用です。
  • Xserver for Windowsはキャンペーンが開催されたりします。このタイミングで契約できるとさらに費用を抑制できます。





1秒でわかるVPS!


仮想プライベートサーバーの略がVPS、利用イメージはVirtualPCという感じです。
インターネット上で24時間つけっぱなしにできるWindowsパソコンを1台レンタルするという感じです。

Microsoft Azureよりいいの?VPSは月額基準で安心です。Microsoft Azureは従量課金のため使いっぱなしは怖いです。

VPSで向かない用途


専用のボードだったり、外部機器が必要な場合、VPSでは使えません。
自宅サーバーの用途、例えば地デジ録画サーバーとかの場合は、地デジを見るために別途チューナー(USB/専用ボード)が必要なので向きません。

Windows10PCをレンタルする感じなの?


レンタルするのは、Windows7, Windows8、Windows10ではなく、Windows Serverです。

以下にWindows(Windows Server)が利用できるVPSの2コアSSDの最安プラン一覧をまとめています。
さくらのVPS for Windows ServerConoHa for Windows ServerABLENET VPS Winカゴヤ VPS Windows ServerウィンサーバーVPSお名前.com デスクトップクラウド for BizGMO VPS
初期費用無料無料キャンペーン1,800円無料無料無料4,000円初期費用
月額1,000円1,800円 or 時間x3.2円1,250円〜1,430円 or 日数x52円1,500円〜1,525円〜VPS:4,580円+OS:3,600円月額
CPUコア2Core2Core2Core2Core3Core2Core5CoreCPUコア
メモリ1GB1GB1GB1GB1GB1GB6GBメモリ
SSD容量50GB50GB60GB50GB60GB60GB非対応 HDD400GBSSD容量
回線速度100Mbps100Mbps200Mbps明記なし100Mbps10Gbps100Mbps回線速度
利用できるWindowsWindows Server 2019/2016 Datacenter Edition2012R2(上位プランで2019/2016)Windows Server 2016 Datacenter Edition
Windows Server 2012 R2 Standard
Windows Server 2012 R2WindowsSever2019Windows Server 2019/2016 Standard利用できるWindows
詳細https://vps.sakura.ad.jp/windows/
公式
ABLENET VPS Win公式サイト
ウィンサーバーVPS公式サイトGMO VPS詳細


VPSでWindowsはライセンスの関係、最小スペックが高いためです。Windows以外でも大丈夫なら安価に借りることができるLinux系のVPSがあります。
Linux系のVPSはこちら「格安(千円未満)のSSDプランがあるVPS一覧とプラン【さくらVPS・ConoHa VPS・mixhost VPS】比較」の記事にまとめています。

wordpress wp-login.phpのガード方法

wordpressは、とっても簡単に設置できて、プラグインも豊富だから見栄え豊かで、キレイなサイトが誰でも作れてしまう強い味方です。

こんな高機能なプログラムが無料で使えるのでとっても幸せです。


PHPが動けば、無料レンタルサーバー、有料レンタルサーバーどちらでもワードプレスは使えます。
ただ、MySQL(データベース)がない場合、sqliteというファイル型のデータベースを使うように設定変更する必要があるので、できればMySQLが使えるレンタルサーバーを選ぶのが得策です。

誰でも使えるように高機能なので、ワードプレスで記事を書いたり、テーマ、アップデート、設定を変えたりするには、「ログイン」する仕組みです。

ワードプレスを使うデメリットのひとつとして、
ログインするためのパス、管理画面のパスなどがバレていることです。
これは、みんなが使っているので、管理側のURLなどの推測が知れ渡っています。

例えば、ドメイン名/wp-login.phpというのはワードプレスを使ったサイトでは共通です。


推測可能なユーザー名、例えば古いワードプレスのデフォルトだったadminとか、簡単パスワードを設定してしまうと乗っ取られてしまう可能性が高まります。

ユーザー名、パスワードともに自由に設定できる仕組みが備わっています。
できる限りパスワードは難しくしておきましょう。
また、ユーザー名はデフォルトではそのまま記事投稿者として表示されます。

ユーザー一覧からニックネームの修正ができるので、ログインするユーザー名等は異なる名称にしておきましょう!





wordpress wp-login.phpのガード方法


「ドメイン名/wp-login.phpというのはワードプレスを使ったサイトでは共通」だから、規則が決まっています、だから攻撃されやすいです。

「All In One WP Security & Firewall」、「Login LockDown」など、ワードプレスのセキュリティを向上する定番プラグインで対処することもできます。


ただ、ワードプレス本体、テーマ、も同じですが、プラグインも常に最新を保つようにしましょう。
大抵のアップデートには、不具合のFix、セキュリティホールの対応などが含まれます。

プラグインは、結局新たな機能を持ったプログラムをサイトで動かすことになります。
そのため、総合的なスピードが落ちたりするリスクもあります。

googleの2段階認証でログインで保護する


「Google Authenticator」、2年前が最終更新日のプラグインを使う方法です。
信頼のあるGoogleの2段階認証を無料で使える方法なので、プラグイン自体は古くても問題ありません。

SEOで有名な鈴木さんが解説してくれる「Google AuthenticatorプラグインでWordPressブログを2段階認証に設定する方法」が信頼できます。
https://www.suzukikenichi.com/blog/how-to-set-2-step-verification-for-wordpress/



wp-login.phpをパスワードで保護する


プラグインに頼らないで、アタックされる入り口のwp-loginをパスワードで保護しちゃいましょう。
設定は、2つ必要です。

1)保護するユーザ名、パスワードを作る


パスワードファイルは、webアクセスされない場所に作りましょう。

ロリポップの場合、web/フォルダがhttpアクセスの対象なので、webフォルダにログインしている状態なら一つ上のフォルダに作る、というような感じです。
htpasswd -c ../htpass user1
New password:
Re-type new password:
Adding password for user user1


上で作ったファイルを見る場合は、catというコマンドが使えます。
cat ../htpass
user1:$apr1$tJdfeg1t$r5j.mWqaJQIvKu7LAwgR7.

ユーザーを削除したい場合、-Dオプションを指定します。
htpasswd -D ../htpass user1

2)wp-login.phpを.htaccessで保護


wordpressをインストールしたフォルダにある.htaccessに以下を追加します。

# END WordPress
<Files wp-login.php>
AuthType basic
AuthName "(A)"
AuthUserFile (B)
Require valid-user
</Files>




(A)はブラウザによっては、メッセージとして表示されます。


(B)は1)で作成したパスワードファイルをフルパスで指定します

wordpress wp-login
wp-login.phpまたは/wp-adminにアクセスするとダイアログが表示されます。Chromeは、AuthNameは表示されません。

 wordpress wp-login
wp-login.phpまたは/wp-adminにアクセスするとダイアログが表示されます。Safariは、AuthNameが表示されます。privateで設定しました。
(ちなみに日本語(UTF-8)で設定しましたが、見事文字化けしました)



この方法のメリット


一般的な保護の方法を見ると、/wp-admin/を保護する方式が多いですが、ここのフォルダには一般ユーザーもアクセスしないといけないファイル(admin-ajax.php)が存在します。
この方法であれば、直接wp-login.phpのみを保護するので、簡単で済みます。

この方法のデメリット


  • /wp-admin/フォルダ下に、独自のテキストファイルとかある場合、ガードできません


wp-login.phpをパスワードで保護する 固定IPでガード


先ほどのガード方法は、htpasswdを使ったガードでした。
もし、あなたが固定IPを所有しているなら、固定IPでガードした方が簡単で安全です。


# END WordPress
<Files wp-login.php>
order deny,allow
deny from all
allow from IPアドレス(999.999.999.999)
</Files>


プロバイダ、モバイル回線、いづれも通常は、固定IPではなく、プライベートIPと呼ばれるものです。
この方法は、動的に変化しない静的なIPでやる方が安全です。

プライベートIPの場合、場所によってIPが変わったり、日付によってIPアドレスが変わったりします。
そのため、突然ログインできなくなる不確定要素を背負うことになります。
(プライベートIPでも日々.htaccessファイルを見直すことで運用は可能です)


プロバイダーによっては、固定IPオプションがあります。
固定IPが安い=>http://asahi-net.jp/service/option/fixedip/

また、MyIPというサービスを使うと固定IPアドレスが提供されないプロバイダやネットワーク環境からでも、グローバル固定IPアドレス(静的IPアドレス)が利用できます。



モバイルルーターや使わなくなったドコモ回線が使えるスマホをお持ちなら固定IPのSIMがあります。






あとがき


wordpressは、PHPという言語で書かれたプログラムです。
プログラムって、不具合を全部なくすって本当に難しいことなんです。

wordpressもこのソフトウェアの呪縛から逃れられないので、定期的にアップデートを確認して、最新版が出ていたらアップデートする運用を心がけたいですね!

是非とも運用する前に、
WordPress公式のドキュメント WordPress の安全性を高める一読されることをオススメします。
http://wpdocs.osdn.jp/WordPress_%E3%81%AE%E5%AE%89%E5%85%A8%E6%80%A7%E3%82%92%E9%AB%98%E3%82%81%E3%82%8B

安いサーバーでワードプレス!

安いサーバー、できる限り月額が安くて、ワードプレスができるサーバーを探すことになりました。
なぜ、探すことになったのか、悲しいワケは最後に書いてあります。

安いサーバーでワードプレス選定条件


安いと言っても人によって感覚が違ってたりします。
なので目安として、選定条件を明確にしています。
  • 月額500円程度
  • ディスク容量 10GB以上
  • ドメイン数20個以上
  • mod_deflate対応
  • mod_expires対応
  • PHP7対応 or PHPモジュール対応

=>あまり安いサーバーはサービス終了のリスクがあることを経験したので、月額500円程度としています。


=>ディスク容量は、HTMLやワードプレス、データベース、高解像度の画像など考えても、10GBもあれば十分だと判断しました。


=>ドメイン数は多ければ多いほどいいです、ただ、ワードプレス自体PHPで動くプログラムなので、メモリやCPUコストがかかります。1サーバーに設置できるワードプレスサイトは、10個未満、とってもアクセスがあるサイトになると、サイト1個でも厳しくなるかもしれません。


Google PageSpeed Insights対応


Googleはモバイルフレンドリーを重視しています。また表示速度を含めたパフォーマンスも重視しています。
これらの対応状況が確認できるのが、PageSpeed Insightsです。
googleのPageSpeed Insightsはこちらです。
https://developers.google.com/speed/pagespeed/insights/?url=

この評価項目の中で、自分でどうにかできるものと、サーバー側次第の評価項目があります。
「圧縮を有効にする」、「ブラウザのキャッシュを活用する」は、サーバー側が対応しているかどうかで決まります。「サーバーの応答時間を短縮する」は、主にサーバー側要因が大きいです。

「圧縮を有効にする」に効果的なのがmod_deflateに対応していることです。
「ブラウザのキャッシュを活用する」に効果的なのがmod_expiresに対応していることです。
「サーバーの応答時間を短縮する」に対応する上でPHP自体のスピードを重視しました、それが、PHP7に対応しているPHPのモジュール実行に対応している条件です。
PHP7は、実行速度が今までの2倍という高速化が期待出来るものです。また、多くのサーバーではPHPはCGIモード(別プロセスでPHPを起動)が多いです、PHPモジュールモードはHTTPDサーバー内で実行されるため、オーバーヘッドが少ない、速度が出やすいメリットがあります。

これらは、ワードプレスを使うサイトの場合、重視したい条件です。

やすいサーバーでワードプレス 条件にマッチする一覧


月額500円という基準で探すとかなり見つかります。
ディスク10GB以上、ドメイン数20個以上という条件でもまだまだたくさんあります。
しかし、mod_deflate対応+mod_expires対応+(PHP7対応 or PHPモジュール対応)で軒並み脱落していきました。
結局条件にマッチしたのは、ロリポップスタンダードプランだけでした。
月額1000円ならXSERVER X10プランがマッチします。
XSERVER X10プラン 初期費用3000円 月額 1000円(年額15,000円) 200GB MySQL 50個 ドメイン数無制限
PHP 7.0.x/5.6.x/5.5.x
mod_deflate OK
mod_expires OK

ちなみに、ワードプレス専用クラウドホスティングは、WpX、Z.com Wordpressなどあります。こちらも条件にマッチしないので、今回は除外しています。


ロリポップ スタンダード 500円〜


初期費用750円(半額価格)
MySQLデータベース30個
マルチドメイン100個
ディスク120GB
転送 100GB/日 
PHP 5.6 モジュール版 
SSH可
CRON10個
ロリポップブログ 5つ
PHP v5.4(CGI)、v5.5(CG)、v5.6(モジュール) users0xx/users1xx ver5.3, ver5.4
MySQL5.6 phpMyAdmin

mod_deflate デフォルトで有効
mod_expires ブラウザのキャッシュを活用する 設定可能


=>PHP7は未対応ですが、PHP5.6(モジュール版)が使えます。

=>ディスク120GB、マルチドメイン100個、MySQL 30個で500円は破格です



安いサーバーでワードプレスするなら、ロリポップスタンダードプランです



SSHも可能なので、契約したら、また情報アップしたいと思います。



脱落した激安、安いレンタルサーバープラン


クイッカ 98円〜 ディスク10GB、データベースなし、マルチドメイン10個、メールアドレス5個
ロリポップ 105円〜 ディスク10GB、データベースなし、マルチドメイン20個、メールアドレス10個
=>激安はデータベースがsqliteしか使えなかったりします。
ServerQueen 120円〜 ディスク5GB、データベース数1個、マルチドメイン30個、メールアドレス無制限
=>ディスク容量が足りなかったです。

ロリポップ ライト 250円〜 MySQL1個 マルチドメイン50個 60GB/日 ディスク50GB
=>ライトプランではモジュールの利用ができません

ドメインキング Pプラン 初期費用 934円 月額100円 ドメイン10個、ディスク20GB MySQL 1個
=>mod_expiresの設定情報が見つかりませんでした。

さくらインターネット スタンダード 1029円、 515円 100GB、SSHおk、 CRON、 PHP(CGI) MYSQL20個、ドメイン20個
=>PHP7未対応、PHPモジュール未対応でした。
mod_deflate OK
mod_expires OK

バリューサーバー まるっとぷらん 初期費用無料、 133円〜 おためしなし、 25GB 、MySQL 1個 ドメイン数3個
=>ドメイン数が条件未満でした。 PHP7、PHP5.6モジュール版が利用出来る!

バリューサーバー エコ 初期費用1000円 167円〜 おためし10日、50GB 25万ファイル、 SSH OK、MySQL 1個 ドメイン数25個
バリューサーバー スタンダード 初期費用2000円 334円〜 おためし10日、100GB 、 SSH OK、MySQL 無制限 ドメイン数:無制限
=>mod_deflateは可能っぽいです、mod_expiresは情報がなく、未対応な感じです。
  PHP7、PHP5.6モジュール版が利用出来る!



クイッカ ライトプラン 初期費用926円 230円〜 10GB、ドメイン数50個、MySQL 5個
クイッカ スタンダード 初期費用926円 450円〜 30GB、どめいん200個、 MySQL 20個
=>PHPのバージョンが不明でした。mod_deflate、mod_expiresともに対応してない可能性が高そうです。

ミニバード 初期費用1500円(3/31無料) 月額250円〜 2週間おためし ドメイン数50個 PHP5/7 MySQL5 ディスク50GB
=>mod_deflate、mod_expiresともに対応してない可能性が高そうです。

ファイアバード 初期費用2160円(3/31無料) 月額540円 2週間お試し ドメイン無制限、MySQL10 ディスク100GB
=>PHP5で、CGIモードのみでした。
mod_deflate OK
mod_expires OK

ラクサバ ミニ 初期費用1540円、月額98円〜 ディスク2GB ドメイン数3、 MySQL1ー>0
ラクサバ ライト 初期費用1540円 月額257円から ディスク10GB、ドメイン数6 MySQl 2
=>ディスク、ドメイン数が少ないです、mod_deflate、mod_expiresともに対応してない可能性が高そうです。PHP5でCGIのみでした。

ServerQueen Q-S1、Q-01
=>新規受付終了していました。

コアサーバー CORE-MINI 初期費用無料!515円、213円から ディスク60GB 、ドメイン50、 MYSQL10
コアサーバー CORE-A 初期費用無料! 1,029円 427円から ディスク120GB 、ドメイン無制限 MySQL無制限
=>mod_deflate、mod_expiresともに対応してない可能性が高そうです。PHPはモジュール版です。

99円サーバー エコノミーDB 初期費用2000円 198円から ディスク15GB 、ドメイン無制限 MySQL1
99円サーバー エコノミーDB+ 初期費用2000円 298円から ディスク15GB 、ドメイン無制限 MySQL3
99円サーバー パワーユーザー10G 初期費用2000円 598円から ディスク50GB、ドメイン無制限 MySQL無制限
=>PHP5でCGIでした、mod_deflate、mod_expiresともに対応してない可能性が高そうです。

ハッスルサーバー 初期費用1000円 208円から ディスク3GB、ドメイン数32、MySql 1
=>ディスク、ドメイン数が条件未達です。PHP5でCGIでした

COREPRESS Cloud CP-01 初期費用0 月額540円 ディスク10GB ドメイン3、MySQL 3
=>ドメイン数が条件未達です。PHP5でCGIでした













安いサーバーを探すワケ・・・
最新記事
最新コメント
タグクラウド
カテゴリアーカイブ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。