広告

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

お名前コムで取得したドメインをさくらサーバーで使う、戻す方法

ここでは、お名前コムで取得したドメインをさくらサーバーのスタンダードに設定して使う方法、設定したドメインをさくらサーバーからお名前コムに戻す方法をご紹介しています。
さくらサーバーのスタンダードは、初期ドメイン(sakura.ne.jpのサブドメイン)の他に2つまで無料のサブドメインを取得して使うことができます。独自ドメインも契約できます。GMO系列に比べると価格が少しお高めなのでお名前コム、バリュードメインなどで取得することが多いです。

ドメインは移管するの?


お名前コムで取得したドメインを他社レンタルサーバーで利用したい用途なら移管する必要はないです。
レジストラーが提供するWebの機能に不満がある、そういった方は気に入ったレジストラーへ移管することで幸せになれますね。


ここでは、ドメインを移管しない方法をご紹介しています。移管したい方はこのページで悩みを解決できません。

お名前コムで取得したドメインをさくらサーバーで使う流れ


すでにお名前コムを使ってドメインを取得した、これからドメインを取得する方どちらの方もこの流れで対応できます。

お名前コムで取得したドメインは、ドメインNaviを使います。


ドメインNavi(https://www.onamae.com/domain/navi/domain)にログインすると取得済みドメインの一覧が表示されます。表は、ドメイン名、更新期限日、契約更新、サーバー申込み、Whois情報公開代行、ネームサーバーなどが表示されています。

この表にある、ネームサーバー、これが今回使う機能になります。

ネームサーバー列の「変更する」ボタンをクリックすると「ネームサーバーの変更」画面に表示が切り替わります。「ご登録情報に変更・相違はありませんか?」というメッセージが表示される方もいるかもしれません。変更がないようでしたら「情報は正しいので、手続きを進める」ボタンをクリックします。


お名前.com各サービスを利用、他のネームサーバーを利用、2つのタブが表示されていますよね。
さくらレンタルサーバーで取得したドメインを使うためには、「他のネームサーバーを利用」をクリックします。

ネームサーバー情報を入力で1プライマリーネームサーバー(必須)、2セカンダリーネームサーバー(必須)、3、4、5の入力項目が表示されていることを確認してください。

まだ確認画面へ進むボタンは押しません。ここまでで1つ目の変更の準備が整いました。

さくらレンタルサーバーの管理画面から新しいドメインを追加します


さくらレンタルサーバーの管理画面から新しいドメインを追加する方法は、さくらサポート情報【ドメイン設定】他社で取得・管理中のドメインを利用を参照してください。
スクリーンショット付きで詳しく書いていあります。

「STEP4 ネームサーバの変更」でネームサーバー1 ns1.dns.ne.jp、ネームサーバー2 ns2.dns.ne.jpを指定します。ここで先ほどログインしたドメインNaviを利用します。

1プライマリーネームサーバーへ「ns1.dns.ne.jp」、2セカンダリーネームサーバー「ns2.dns.ne.jp」を入力し、確認画面へ進むボタンを押して、確認後確定します。


しばらく待つと切り替わってさくらインターネットで設定したサイトにアクセスできるようになります。

インターネットの環境によっては、反映完了まで24時間から72時間程度かかる場合があります。本当?


「インターネットの環境によっては、反映完了まで24時間から72時間程度かかる場合があります」を目にしたことがあります。さくらインターネットのコントロールパネルでドメインを追加、お名前コムでネームサーバーを切り替える、たったこれしかしていないのに、24時間から72時間程度かかるって本当でしょうか?って疑問ですよね。

ある意味本当です。

注目したいのは「インターネットの環境によっては、」という箇所です。

ネームサーバーとは


ネームサーバーは、ドメイン名とIPアドレスの対応を管理してくれるサーバーです。このサーバーではドメインネームサービス(DNS)が動作しています。これが本当に管理してくれる実態です。

ネームサーバーは全世界に至るところに存在します。メインとなるネームサーバーもあります。ルートネームサーバとも呼ばれます。

DNSと聞くと、ドメイン名で問い合わせるとIPアドレスがわかったり、IPアドレスで問い合わせるとドメイン名がわかるものというイメージかもしれません。これ以外にDNSはドメイン名、IPアドレスのデータを動的、静的に管理する仕組みがあります。

DNSサーバーに未登録のドメインは、DNSサーバーがより上位のDNSサーバーに問い合わせて解決しようとします。ここで得た情報は、ある一定期間DNSサーバー内にキャッシュされ活用されます。

このキャッシュされる時間は、DNSサーバーの設定に依存します。古くからの慣例で1日としているサーバーが多いです。

=>キャッシュが短いDNSサーバーは素早く反映されます。


会社からインターネットにアクセスする際は、会社で立ち上げているDNSサーバーを経由してアドレスを特定しています。家庭からインターネットにアクセスする場合は、プロバイダーが提供しているDNSサーバーを経由してアドレスを特定しています。DNSサーバーはいたるところで立ち上がっています。同じようにキャッシュされる仕組みです。キャッシュする設定はサーバーに依存します。
=>インターネット環境とは、どちらかというと自身がアクセスするインターネット環境という意味合いが強いです。

さくらサーバーからお名前コムに戻す


さくらインターネットのスタンダードプランで使っているドメインをお名前コムに戻して、さくらサーバー以外で利用したい場合がありました。ここではその時行った手順をまとめています。元に戻すドメインはサブドメイン利用していないドメインです。

お名前コムで取得したドメインをさくらインターネットで使う場合、さくらインターネットのコントロールパネルでドメインを新規追加、お名前コムでネームサーバーをdns.ne.jpに切り替える流れでしたね。

この逆順が正解だと思っています。さくらインターネットから削除する際、そのサイトを削除する操作になります。バックアップが必要な方は事前に実施しておく必要があります。また、「共有SSL」 「SNI SSL」 「Webアプリケーションファイアウォール」の設定をしたまま削除はできません。解除方法はこちらでわかります。


1 ドメインNaviへアクセスし、ネームサーバーを初期設定します


「お名前.com各サービスを利用」タブにある初期設定に戻す「設定する」ボタンをクリックします。
「ネームサーバーの変更 確認」画面で対象ドメインが戻したいドメインになっていることを確認します。ネームサーバー情報には、お名前コムのドメインが表示されています。よければ「設定する」ボタンをクリックします。

ドメインがお名前コムに移るまで待ちます。


待ちます。
ブラウザからアクセスし、このドメインはお名前コムで管理されていますと表示されるまで待ちます。

3 さくらインターネットのコントロールパネルからサイト(ドメイン)を削除します


ドメイン設定 ドメイン/SSL設定を開いて、削除ボタンをクリックします。ドメインの削除 確認画面に移ります。削除ドメイン名がお名前コムで初期化したドメインであることをしっかり確認し、「送信」ボタンをクリックします。
間違って削除すると2時間は戻すことができません。

ワードプレスのデータベースなどもがっつり削除されるので間違えないようにしてくださいね。


3、1の順番でもうまくいくかもしれません。初期設定した逆順が安心ですよ。

まとめ


お名前コムで取得したドメインをさくらサーバーで使う、戻す方法をご紹介してきました。使う方法はよく目にします、戻す方法を目にする機会がないので記事にしてみました。

お使いのDNSサーバーのキャッシュ設定を確認したい場合、digというコマンドを利用するのが一般的です。
Windowsではnslookupコマンドを使います。
コマンドプロンプト> nslookup
> set debug
> 確認したいドメイン
----
権限のない回答
----
ここにttlまたは default TTLがキャッシュ設定になります。

TTLは秒で示されることが多いです。2774と表示されていたら46分14秒という意味になります。





posted by scripts at 15:28 | Comment(0) | TrackBack(0) | さくら

HTMLを更新後、表示が変更前のままです。コレで直ります【エックスサーバー】

データベースや、テキストファイルのデータを表示するPHPのオリジナルサイト、フレームワークを使ってサイトは、データベースやテキストファイルを最新の内容に書き換えても修正内容が反映されないことが起きやすいです。ワードプレスのサイトはこれには該当しないので安心して利用できます。PHPオリジナルサイトの話です。

HTMLを更新後、表示が変更前のままです。コレで直ります【エックスサーバー】


エックスサーバーは、PHPの初回実行時に、PHPの内容を最適化した状態でキャッシュしておき、次回以降、 同じPHPにアクセスがあった際にキャッシュしたPHPで高速になる機能が標準装備されています。(APC / OPcache)
コンパイル済みPHPプログラムをメモリに格納して、メモリ上のプログラムを再利用しています。

PHPプログラムから読むテキストファイルに変更を加えても、サイトの表示は変更前のままでした。
利用しているとプログラムの実行結果もキャッシュされていると感じることが多いです。


また、「mod_pagespeed設定」を有効にすると、ファイルを圧縮してデータ転送量を削減する、同種のファイルを一まとめにして無駄な通信を削減するなどの最適化処理を実行しています。
今このmod_pagespeedはOFFの設定でも、表示が修正前のままの状態になっています


HTMLテキストファイルを更新し、表示が反映されないのは、キャッシュが原因です。
キャッシュをクリアするには、PHPファイルの日付を最新にするのが最も簡単な方法です。


以下、sshでxserverにログインして、PHPファイルの日付を更新する方法です。
cd ドメイン/public_html/
(ドメインの公開フォルダに移動します。)

ls *.php
(PHPファイルの一覧を表示させます。)

目的のファイルの日付を更新します。
touch php-file-name.php

touchコマンドは、存在するファイルの日付を最新にします。
ファイルが存在しない場合、新規作成してしまうので、打ち間違いに注意してください。

間違ってファイルを作ってしまったら、以下コマンドで消すことができます。
rm -i 間違って作ってしまったファイル名
-iパラメーターを指定することで確認メッセージが表示されます。


これで、ブラウザで表示を更新すると最新の内容に反映されたことが確認できます。


もし、直っていない方は、更新すべきphpファイルを間違えている可能性があります。
.htaccessでRewriteしている場合、index.phpも合わせてtouchしてみると直る可能性があります。



AMP対応ページは、別ドメインでも公開可能だが、警告が出る

完全に別のドメインのAMPサイトを公開した場合、元々のPCページとの関係性をGoogleがどう管理してるのかがわかりました。今回無料ブログをPC向けサイト、独自ドメインをAMP専用サイトとしてAMP対応してみました。多くの無料ブログはAMP(Accelerated Mobile Pages)に未対応です。無料ブログから独自ドメインへ全面移行してしまえば簡単ですね。でも試しにドメインが異なるAMPサイトを公開しました。完全に別のドメインのサイトになります。

具体的には、無料ブログのheadに<link ref="amphtml" href=https://"独自ドメイン/..."/>を追加して、独自ドメイン(HTTPS)のAMPページへ飛ばしています。


Google Search Console


無料ブログ(PC向けサイト)、独自ドメイン(AMPサイト)共にGoogle Search Console、Google アナリティクスに登録しています。

Google Search Consoleの検索での見え方からAccelerated Mobile Pagesのインデックスに登録された AMP ページ数や重大な問題のある AMP ページを知ることができます。

Accelerated Mobile Pages(検索での見え方)はPCサイト(無料ブログ)で確認できます


PCサイトからAMPサイトへリンクを貼ってしばらく経つと、PCサイトのサーチコンソールに「新しい重要メッセージ」が届きます。
PCサイトURLのAMPドメインの更新というタイトルでした。

独自ドメイン側に出てくるかと思っていましたが、1週間経っても「Accelerated Mobile Pages は見つかりませんでした」のまま。きっとこっちには登録されませんね。

無料ブログ(PC向けサイト):Accelerated Mobile Pagesのインデックス状況が表示されます。
独自ドメイン(AMPサイト):表示されません。「サイトにAccelerated Mobile Pages は見つかりませんでした」


警告が表示されます。Accelerated Mobile Pages > AMP ページのドメイン不一致(問題の重大性: 重要ではない問題)


AMP ページをホストしているドメインが正規ページのドメインと異なると、AMP ビューアでユーザーの混乱を招く恐れがあります。

この先ドメインを統合するまで、ずっとこの警告が表示され続けることになります。


検索アナリティクス(検索トラフィック)


検索での見え方は、独自ドメイン(AMPページ)で選択できます。
通常、同一ドメインでAMP対応した場合、検索トラフィック>検索アナリティクスのフィルタ項目に「検索での見え方」が追加選択できるようになります。フィルタなし、AMPなどが選べますよね

無料ブログ(PC向けサイト):「検索での見え方」フィルタはありません。
独自ドメイン(AMPサイト):「検索での見え方」があります。


Google Search Consoleの別ドメイン AMPページのまとめ


ここまでのまとめてとして、別ドメインでAMPページを公開すると以下のようになります。
  • AMP ページのドメイン不一致警告が表示される

  • Accelerated Mobile Pagesインデックス状況は、PC向けサイト

  • AMPのクエリ、ページのCTR、掲載順位は、AMPサイト



続いては、Googleの検索結果です。

別ドメインでAMPページを公開し、Accelerated Mobile Pagesで重大なエラーがないページは稲妻マークのAMPページとして検索結果に表示されます。

PCブラウザの検索結果
タイトル
PCサイトのURL
日付 - ディスクリプション
スマホブラウザの検索結果
タイトル
PCサイトのURL
AMP 日付 - ディスクリプション


PCブラウザの検索結果はPCサイトのURLをナビゲートしていました。
一方スマホブラウザの検索結果は、見た目PCサイトのURLですが、AMPサイトが表示されます。

iPad Proで検索した結果、AMPサイトが表示されました。

AMPページ対応することで、いままで通りパソコンのブラウザで検索した訪問者をPCサイトへ流せます。
タブレット、スマホのブラウザで検索した訪問者をAMPサイトへ流すことができます。

検索結果をクリックした後、AMPサイトが表示されたタイミングで初めてドメインが違うことがわかる仕組みでした。そのため、Googleは別ドメインで実装したAMPページに警告を表示しているんですね。


タグ:AMPページ

【unlockの方法】SQLiteのデータベースがロック!でもプロセスをkillしても直りませんでした。

SQLite3のデータベースにアクセスしているのは自分だけなのに、SQL error: database is lockedが発生するって知っていましたか?今回この現象に遭遇して、初めて知りました。当ページでunlockの方法がわかります。

cronで実行していたPHPプロセス、基本そのタミングで動ける唯一のプロセスだったはずですが、何かしらのトラブルで、そのプロセスがゾンビになっていました。プロセスはゾンビになっていましたが、cronは一定間隔で呼び出されます。データベース書き込み中にゾンビになったのか、その後呼び出されたcronは、SQL error: database is lockedで書き込みできない状況になっていました。

このcronで実行していた処理では、トランザクション処理を一切使わずにCRUD(insert,select,update,delete)操作しています。


ps -ef等でゾンビになったプロセス、プロセスIDを知ることができます。
以下コマンドで、ゾンビになったプロセスを強制終了できます。
kill -9 プロセスID

これで、SQLite3のデータベースにアクセスしているプロセスは存在しません!

ですが、sqlite3でデータベースに接続して、CRUD操作するとlockされていると怒られます・・
sqlite> update テーブル set value=2 where id=1;
SQL error: database is locked

再度、プロセスの存在を確認してみましたが、このデータベースにアクセスしているプロセスは自分だけで、ロックしていないはずですが、sqlite3の認識では継続してロックされているようです。


SQLite3データベースをunlockする方法


以下はunlockできた方法です。ここではロックされているデータベースをdb.sqlite3としています。
このアンロックできた方法から、原因もわかりました。

移動して、コピーすることで、unlockできました。

1. mv db.sqlite3 bk.db.sqlite3
ロックされているSQLite3のデータベースファイルを別名にします。(mv)
2. cp -p bk.db.sqlite3 db.sqlite3
元と同じファイル日付で、元と同じファイル名としてコピーします。(cp -p)

たったこれだけの操作で悩み悩んだdatabase is lockedが回避できました。

ファイルを別名し、コピーすることでロックが解除できます。
sqlite3データベースにロック情報が記録されているのであれば、この操作では中身を一切書き換えていないので、アンロックされることはあり得ません。
このことからロックの原因は、PHPのSQLite3 拡張モジュールで使われているflock系のシステムコールに起因すると想像しています。



SQL error: database is lockedは単一プロセスなら発生しないって本当ですか?


いいえ、データベースを更新する操作を単一プロセスで実行していても、SQL error: database is lockedは発生します。

ただ、単一プロセスの処理が正常に動いている間は発生しません。Insert/Update/Delete中に異常終了した場合にlock状態が維持されることがあるようです。該当のプロセスを強制終了させても、維持される場合もあります。

もし、発生してしまったら、こちらの方法でアンロックすることができます。



参考までに、この現象は、xserverで遭遇しました。
SQLite3のバージョンは、SQLite version 3.3.6です。
PHPのバージョンは、7.0.16です。



posted by scripts at 12:10 | Comment(0) | TrackBack(0) | php

エックスサーバーで30秒以上のCronを上手に運用する3つのコツ

エックサーバーはcronが利用できます。cronはWindowsでいうatコマンドやスケジューラーみたいな機能です。
お好みのプログラムを10分毎に処理を実行させたり、毎日決まった時間に実行させることができます。

cronが使えるレンタルサーバーは、さくらレンタルサーバー、ロリポップ!などcron レンタルサーバーで探すことで対応しているレンタルサーバーが見つかります。

登録できるスケジュールの数、動いたスケジュールの稼働時間など何かしらのリミットがもうけられています。エックサーバーの場合は、CPUを100%使って良い時間に制限があります。

1回の実行で許容されるCPUフルの時間が30秒を超えると、そのプログラムが強制終了されます。
具体的には、Maximum execution time of 30 seconds exceededというメッセージとともに強制終了されます。

sleepやusleepで実行率を下げればいける!?と思いましたが、完了するまでの時間を伸ばすだけで、実処理のCPU時間の上限は変わりません。考えると当たり前ですね・・そのためほぼ同じ位置で処理が止まります。

CPUをぶん回し、30秒以内に完了するプログラムは、そのままなんの工夫もしないでいけます。

30秒をちょっとでも超えるプログラムは、強制的にプロセスが終了してしまうので対策が必要です。

エックスサーバーで30秒以上のCronを上手に運用する3つのコツ


これからご紹介するのは、エックスサーバーに限らず、PHPをcron実行させ、時間制限のあるサーバーでCronを使うためのコツとして使えます。

同じ処理を何度もcron実行させ、目的の処理を完了させるように変更します。

コツ1 ループ処理の実行時間を計測する


microtime()で経過時間を測定します。これは、強制終了で中途半端な位置で終了を防ぐ目的です。

以下のようなループ回数が多いパターンなどで使えます。
foreach( $datas as $key => $data ){
1つあたりの処理時間は大したことがない関数();
ループ回数が多いと強制終了される
}


このように実行から28秒経過した時点でループ処理を抜けることが可能になります。
$st = array_sum( explode(' ', microtime() ));
$実行時間タイムアウト=false;
foreach( $datas as $key => $data ){
if( (array_sum( explode(' ', microtime() )) - $st ) >= 28 ){
$実行時間タイムアウト=true;break;
}
1つあたりの処理時間は大したことがない関数();
ループ回数が多いと強制終了される
}
if( $実行時間タイムアウト ){
// タイムアウト用処理
}
完了処理();

これで許容されるCPUフルの時間前に処理を停止することが可能になります。

コツ2 処理結果を記録する


コツ1で実行時間を判断することが可能になりました。このままでは毎回先頭から始まってしまうので、何度やっても同じところで止まってしまいます。これを回避するにはやった処理を記録し、スキップさせます。
$st = array_sum( explode(' ', microtime() ));
$実行時間タイムアウト=false;
$進捗=array(); if( file_exists("進捗.json") ){ $進捗 =json_decode(file_get_contents("進捗.json"),true);}
foreach( $datas as $key => $data ){
if( array_key_exists( $key , $進捗 ) == true) { continue;}
if( (array_sum( explode(' ', microtime() )) - $st ) >= 28 ){
$実行時間タイムアウト=true;break;
}
1つあたりの処理時間は大したことがない関数();
$進捗[$key]=true;
ループ回数が多いと強制終了される
}
file_put_contents( "進捗.json", json_encode($進捗) );
if( $実行時間タイムアウト ){
// タイムアウト用処理
}
完了処理();

実行した処理を処理済み配列$進捗に格納していきます。ファイルに保存して、次回実行時に読み込まれるので、複数回呼ばれても同じ処理を実行することがなくなります。
スキップさせたい単位の処理済み配列は、この例では、キーワード単位にしています。粒度はご自身の処理に合わせて変更することが可能です。


コツ3 throwを使ってシンプルにする


コツ1、コツ2で大抵対応できます。throwを使うと処理をシンプルに書くことが可能です。
時間を計測して、タイムアウトを検出したら、次の処理に進まずに処理を終了させたいですよね。
この際、throwを使います。
function main(){
try{
前処理();
時間計測している処理1();
時間計測している処理2();
時間計測している処理3();
後処理();
}catch(Exception $e ){

}
}
function 時間計測している処理1(){
ループ処理でタイムアウトを検出、throw new Exception("タイムアウト処理1");
}


メイン処理の中から個別に呼び出した処理でそれぞれタイムアウトを検出するようにしています。
通常、処理1が終了すると続けて、2、3、と流れていきます。throw new Exception("")で例外を発生させると次の処理に進まずに、メイン処理のcatch部に流れてきます。

これにより、メイン処理の構造を変えずに、シンプルに処理を中断させることができます。

おまけ PHPのバージョン指定を忘れずに


エックスサーバーは複数のバージョンのPHPを利用することができる環境になっています。
そのため、通常何もバージョンを指定しないphpは、PHP 5.3.3 です。
PHPのバージョンの違いによって思わぬ副作用があったりするので、必ずバージョンを指定して利用しましょう
PHP7系は以下のパスにあります。
/usr/bin/php7.1 (PHP 7.1.2)
/usr/bin/php7.0 (PHP 7.0.16)

おまけ2 cronの設定はsshからできるよ


エックスサーバーのコンソール(ブラウザ)からスケジュールを指定できます。
これ以外に、sshログインした後、以下コマンドでスケジュールを編集することができます。
$ crontab -e 

viの使い方や、cronの書き方がわからない場合は、ググると詳しいサイトが見つかります。

先頭に#をつけるとコメントアウトできます。もし何か異常があったら先頭に#をつけて停止しておきましょう。

以下コマンドでスケジュールの一覧を確認することができます。
$ crontab -l



まとめ


ここまで、エックスサーバーで30秒以上のCronを上手に運用する3つのコツをご紹介してきました。
この記事にたどり着いた方はコアな方に違いない!って思ってます。



AMP対応!無料ブログのまとめ【2017年版】

AMPマーク

AMP(Accelerated Mobile Pages)対応していますか?
AMP対応できているとGoogle検索結果の上位にカルーセル表示されたり、検索結果の説明文に「稲妻マーク AMP」と表示されます。
(スマホ表示です)

2016年10月ごろからGoogleの検索結果に反映されています。AMP対応のサイトは軽くて素早く表示できると利用者にも浸透しつつあります。

ワードプレスのサイトでは、AMP対応プラグインを導入することで簡単にAMP対応サイトへ早変わりします。
ワードプレスのAMP対応プラグイン公式サイト:https://www.ampproject.org/ja/

AMP対応サイトは、通常記事のURLのほか、AMP用のURLを持ちます。そのため、HTMLデザインを編集してどうにかするようなものではありません。


無料ブログの対応も始まっています。

AMP対応!無料ブログのまとめ【2017年版】一覧


メジャーな無料ブログをまとめています。地方ブログ系は調査していません。


続きはこちら

エックスサーバーでSIRIUSサイト(iPhone)は500サーバエラーになりがちです

エックスサーバーはとても快適に使えるサーバーとして評価されています。
SIRIUSの上位版を使ってHTMLサイトをアップロードして、iPhoneで確認するとエラーになります。
アクセスしようとしたページは表示できませんでした
「>アクセスしようとしたページは表示できませんでした。」
500 Internal Server Error

パソコンからEdge/Chrome/Safari/FireFoxでアクセスすると正常に表示されます。

そのため見逃しがちになりやすいエックスサーバー特有の現象です。

エックスサーバーでSIRIUSサイト(iPhone)は500サーバエラーになりがちの理由


続きはこちら

ワードプレス4.8をSQLite3で動かす手順【MySQL必要なし】

ワードプレス4.8をMySQLサーバーを使わずにファイル型データベースSQLite3で動かす手順をご紹介します。



手順だけ知りたい方は、こちらからどうぞ。


ワードプレスとは


ワードプレスは、オープンソースで公開されている無料のコンテンツマネージメントシステムです。
コンテンツマネージメントシステム(CMS)といっても、イントラ<=>インターネット間の同期や情報の公開承認機構など高度なシステムではありません。

インターネット上に公開したサイトに対する記事やページを管理することができるシステムです。


ワードプレスは、テーマを変えることでデザインの変更や機能拡張が可能です。
さらに、世界中の人が公開しているプラグインをインストールすることでさらなる機能拡張が可能です。

ブログからEコーマースサイトまでサポートすることが可能です。



ワードプレスは、ApacheもしくはNginx・IISのHTTPサーバー上で動作させることができます。
実行には、PHP5またはPHP7のモジュールと通常MySQL5.6以降(データベースサーバー)またはMariaDB10.0以降が必要になります。

MySQLの他に、PostgreSQLをご利用することも可能です。
PostgreSQLは、PostgreSQL for Wordpressプラグインを利用するのが簡単です。

SQLServerはPHP用ドライバーがあります。ただプラグイン等はないので、
上記のようなプラグインを参考にしながらプラグインを作る必要があります。
(ワードプレスコアは、速いサイクルで更新されています。そのためコアの変更はおすすめできません)


ワードプレス4.8をSQLite3で動かすデメリットとメリット


ワードプレスはMySQLデータベースサーバーを使って動かすことが前提となっています。
これをSQLite3を使って実現する方法は自前でやる以外の方法で、2つあります。
  1. PDO (SQLite) For WordPress
    長らく更新されていません。
  2. SQLite Integration
    ここ最近更新されていません

どちらもワードプレスのプラグインを使った方法です。

今回ご紹介する最新ワードプレス4.8でSQLite3で動かす手順は、SQLite Integrationを利用します。


ワードプレスをSQLite3で動かすデメリットはあるの?


あります!

まずSQLite3のデメリットがあります。
SQLite3は参照系(select)やInsert(新規追加)が高速!という特徴があります。

一方、更新系(Update)や削除(Delete)は遅いので、大きなサイトには向かないです。

これ以外にワードプレスをSQLite3で動かすデメリットは、以下の通りです。



  1. 1)表面上は動くのに、深いところで動作しない可能性がある

    ワードプレスは、テーマやプラグインで拡張できるとご紹介しました。
    ワードプレスには、テーマやプラグインからアクセスできるよう共通関数やヘルパクラスなどが用意されています。
    テーマやプラグインのソースコードは、名前空間の衝突さえなければ、ほぼ自由に創ることができます。
    そのため、保守性が高いソースコードもあれば、保守性をあまり考えていないソースコードもあります。

    データベースを利用する箇所がMySQLソースの直書きのような場合、その機能を使うタイミングでないと動く動かないの見定めがわかりにくいです。



  2. 2)サイト解析プラグインや訪問者アクセスチェックなどのプラグインは避けた方が無難

    SQLite3は注意深く設計してもdatabase lockが発生しやすいと感じています。
    記事の投稿・更新などは複数人同時更新は避けた方が無難です。
    これと同じ理由で、訪問者が訪れた場合にデータベースへアクセスしてきたページや訪問者の画面サイズなどを記録するサイト解析系プラグイン、アクセスチェックなどのツールは避けた方が無難です。

    また、テーマによっては、アクセス数をカウントする機能が盛り込まれたものがあります。同様の理由で避けた方が無難です。

    動かすことは可能です。複数同時実行の際、予期しないエラーが発生しやすいです。



  3. 3)不具合が起きた場合、情報が少ないため自力解決が基本

    全て自己責任です。





ワードプレスの高速化目的の場合、SQLite3で動かすメリットはありません。高速化の場合、高機能キャッシュプラグインはほぼほぼ使えないのでデメリットしかありません。






ワードプレスをSQLite3で動かすメリットって何?


デメリットしかなさそうなSQLite3を利用したワードプレスですが、メリットってあるんでしょうか?
あります!

これから2つのメリットをご紹介します。
  1. 1)データベースの移動が簡単

    SQLite3はファイル型データベースです。SQLite Integrationプラグインは1つのSQLite3データベースファイルを利用します。
    ローカルで確認してリモートへアップしたい、リモートにアップした内容をローカルで確認したい、こういった場合、SQLite3が大きな武器になります。

    1つのファイルを移動するだけ、ローカル<=>リモートのデータベース同期が可能になります。
    MySQLの場合、ダンプ=>インポートで同じようなことができます。



  2. 2)激安レンタルサーバーにワードプレスが設置できる

    激安レンタルサーバーの中には、ワードプレスが動く!っていうサーバーもあります。
    ただ、多くは、PHPは動作する、MySQLは提供なしというパターンが多いです。

    MySQLなしでワードプレスを動かす選択肢として、SQLite3のメリットがあります。





わざわざ激安サーバーでワードプレスを動かすメリットがあるの?賢威のHTMテンプレートやSIRIUSでいいんじゃない?


メリットはあります。



ワードプレスは、Accelerated Mobile Pages (アクセラレーテッド・モバイル・ページ、 AMP) をプラグインを導入するだけで構築することができます。

AMPプラグインは無料です。


知らない方のための賢威、SIRIUSのご紹介


賢威はHTMテンプレートとワードプレステンプレートがいつでもダウンロードして使うことができます。
SEOに強いってよく言われています。

SIRIUSは、次世代型サイト作成システム、Windowsでテキスト記事を書くだけで立派なHTMLサイトが作れてしまうツールです。


どちらも甲乙つけがたい優れたツールです。


持っている方は活用した方が良いでしょうし、
持っていない方はそれほど高額ではないので購入した方が良いと思います。



賢威は、7系テンプレートと6系テンプレートがご利用可能です。
7系のテンプレートは、6種類【クール版、ビューティ版、プリティ版、コーポレート版、スタンダード版、ストーリー版(近日リリース予定)】でそれぞれHTML版、ワードプレス版があります。
6系のテンプレートは、5種類【コーポレート版、クール版、プリティ版、ヘルシー版、マネー版】でそれぞれHTML版、ワードプレス版があります。

7系のテンプレート、6系のテンプレートはそれぞれ共通化されています。
6種類、5種類とデザインを切り替えることができるのですが、
HTMLの構造は、共通化されている関係で、7系で1つ、6系で1つといったイメージになります。


SIRIUSは、デフォルト、ビジネス、レスポンシブ、角丸タイプの4つからオレンジ(1/2/3カラム)、グリーン・・・などの色とカラムタイプが選べます。

HTMLの構造はどれもほとんど同一に近いです。


一方ワードプレスは、292,000を超えるテーマがあります。
テーマを変えることで様々なHTML構造に簡単に変更できるというメリットがあります。



ワードプレス4.8をSQLite3で動かす手順


本記事は、すでにMySQLで動作させているワードプレスサイトは対象にしていません。
MySQLがない環境で新たにワードプレスサイトを立ち上げる手順です。

sshログインできるサーバー、FTPのみのサーバーと環境に依存する部分があります。
サーバーに依存しない基本的な手順と、sshできる環境での手順、FTPのみの環境での手順をご説明します。

【ワードプレスを正常に実行させる必須の要件】
  1. Apacheのmod_rewriteモジュールが動作する環境(Apache or Nginx )
  2. htaccessファイルが設置可能である


これら必須要件と、合わせてPHP7以降(ワードプレス4.8の推奨要件より)が動作する環境が望ましいです。


【SQLite Integrationを正常に実行させる必須の要件】
  1. PDO extensionが有効(PHP5.3以上)
  2. PDO SQLiteが使える


レンタルサーバーの確認方法


レンタルサーバー各社の公式サイトでPHPのバージョンやMySQLのバージョンが確認できます。
ただPDO extensionが有効なのか、PDO SQLiteが使えるのか、ちょっと深い情報になると開示状況はまちまちです。

こちらで格安レンタルサーバーの比較を紹介しています。
どこでも1、2週間の間はお試し利用が可能です。深い情報は実際に使ってみて確認するのが一番早いです。

無料期間中に以下PHPファイルを配置して確認しましょう。
ファイル名:test.php(ご自由です)
<?php 
phpinfo();


初期ドメインでアクセスできるフォルダ直下にtest.phpを配置してください。
ブラウザで「初期ドメイン/test.php」にアクセスすることで状態が確認できます。

【phpinfoで確認する項目】


  1. PDO drivers で検索します。

    enabledにsqliteがあることを確認します。


  2. SQLiteのバージョンの確認は必須ではありません。
    SQLite Library で検索します。

    enabledにある値がご利用できるSQLiteのバージョンです






基本の手順


手順1 ワードプレスの最新版のダウンロード


ワードプレスの日本語版の最新ダウンロード先から最新版をダウンロードします。
現在の最新版はワードプレス4.8です。
ZIPファイル:https://ja.wordpress.org/latest-ja.zip
tgzファイル:https://ja.wordpress.org/latest-ja.tar.gz

手順2 ダウンロードしたワードプレスの展開


取得したワードプレスは圧縮されています。
拡張子に則した方法でワードプレスを解凍します。


手順3 SQLite Integrationプラグインのダウンロード


入手先:SQLite Integration
直リンク:https://downloads.wordpress.org/plugin/sqlite-integration.1.8.1.zip

手順4 SQLite Integrationプラグインの展開と設定


Windowsはエクスプローラー標準機能で解凍できます。Linux系の場合は、unzipコマンドで解凍できます。
展開先:wordpress/wp-content/plugins/

展開後、以下フォルダがあることを確認します。
展開後:wordpress/wp-content/plugins/sqlite-integration/

【必須の設定】
wordpress/wp-content/plugins/sqlite-integration/db.phpファイルをコピーします
コピー先:wordpress/wp-content/db.php

必須の設定は、ここれだけです。オプションとしてSQLiteのファイル名を変更する、フォルダを変更する方法があります。次の「手順5 ワードプレスの設定」で説明しています。

手順5 ワードプレスの設定


最新版ワードプレスを展開するとwordpress/wp-config-sample.phpが解凍されています。
wordpress/wp-config-sample.phpをリネームします。
リネーム名:wordpress/wp-config.php

これで準備完了です。

MySQLを使わないため、wp-config.phpを編集する必要はありません。
SQL Integration用の設定がいくつか可能です。

wp-config.phpを編集する際は、必ずUTF-8(BOMなし)で保存してください。

【SQLiteのファイル名を変更する】
DB_FILEでSQL IntegrationがアクセスするSQLite3データベースのファイル名を変更することができます。

wp-config.phpに追加します。
define('DB_FILE', 'your_database_name');


your_database_nameのままでも大丈夫です。
your_database_nameをお好きな名前に変更してください。

変更したwp-config.phpはサーバーにコピーしてください。

【SQLiteのフォルダを変更する】
DB_DIRでSQL IntegrationがアクセスするSQLite3データベースのフォルダを変更することができます。
HTTPでアクセスできないフォルダを指定することでセキュリティが向上できます。

define('DB_DIR', '/home/youraccount/database_directory/');



手順6 ワードプレスの設置と初回アクセスでサイト名、ユーザー名、パスワードの設定


サイトを公開したいサーバーへ設置します。

ドメインやフォルダの指定をコントロールパネルで指定後、
公開したURLにアクセスし、サイト名、管理者ユーザー名、管理者パスワードを指定します。

お疲れ様です。これで手順完了です。


もし、アクセスしても真っ白な画面になってしまった場合、
ドメイン/wp-login.phpへアクセスしてみてください。
これでも真っ白画面の場合、wp-config.phpがBOM付きUTF-8で保存されている可能性があります。
文字コードを指定できるエディタ(sakura editor、秀丸エディタ等)でUTF-8(BOMなし)保存したものを
再アップロードし確認してみてください。



ワードプレス4.8をSQLite3で動かす手順【SSHでログイン編】


本手順は、Linux系コマンドを多用しています。
設定は、「基本の手順」に従っています。よくわからない場合は、参照してください。

ご契約しているレンタルサーバーのコントロールパネルでワードプレスを動かしたいドメインの初期設定を行います。
初期設定で、~/ドメイン名/public_html/などのフォルダが自動生成されるかと思います。
後からフォルダを指定することで公開できるタイプのレンタルサーバーの場合は、省略して構いません。

これからご紹介するのは、
~/ドメイン名/public_html/にSQL Integrationを適用した最新ワードプレスを設定する流れになります。

1 sshでログインする


$ ssh レンタルサーバー 
$ cd ~/ドメイン名/


2 必要なファイルをダウンロード


カレントフォルダは、~/ドメイン名/です。
$ curl -O https://ja.wordpress.org/latest-ja.tar.gz
$ curl -O https://downloads.wordpress.org/plugin/sqlite-integration.1.8.1.zip


3 展開(解凍)


カレントフォルダは、~/ドメイン名/です。
$ cd public_html 
$ tar xvzf ../latest-ja.tar.gz --strip=1
$ mv wp-config-sample.php wp-config.php
$ cd wp-content/plugins/
$ unzip ../../../sqlite-integration.1.8.1.zip
$ cp -p db.php ../../.


公開フォルダがpublic_htmlではなく~/ドメイン名/方式の場合は、cd public_htmlは不要です。

4 必要な方はwp-config.phpを修正します


手順5 ワードプレスの設定」を参考に、SQLite Integrationのオプションを指定してください。

5 用済みのファイルを削除する


後始末です。
latest-ja.tar.gzファイル、sqlite-integration.1.8.1.zipファイルは使わないので、削除します。
必要な方は残しておいて構いません。
$ cd ~/ドメイン名/
$ rm latest-ja.tar.gz
$ rm sqlite-integration.*.zip


これでMySQLなしでSQLite3+最新ワードプレスの環境が整いました。
あとは、「手順6 ワードプレスの設置と初回アクセスでサイト名、ユーザー名、パスワードの設定」でワードプレスの初期設定を始めましょう!


ワードプレス4.8をSQLite3で動かす手順【FTPで転送編】


ご契約しているレンタルサーバーのコントロールパネルでワードプレスを動かしたいドメインの初期設定を行います。
初期設定で、~/ドメイン名/public_html/などのフォルダが自動生成されるかと思います。
後からフォルダを指定することで公開できるタイプのレンタルサーバーの場合は、省略して構いません。

これからご紹介するのは、
~/ドメイン名/public_html/にSQL Integrationを適用した最新ワードプレスを設定する流れになります。

Windows10 PCを使っていることを想定した流れです。
FTPソフトは、FFFTP Ver 1.99a-20170325などご利用ください。

1 必要なファイルをダウンロード


Chromeで以下URLのファイルをダウンロードします。

https://ja.wordpress.org/latest-ja.zip
https://downloads.wordpress.org/plugin/sqlite-integration.1.8.1.zip

Microsoft Edgeは、ダウンロードできない場合があります。

wordpress.orgはwordpressの公式ドメインです。


3 展開(解凍)とコピー(その1)


Windows10のダウンロードフォルダにlatest.zip、sqlite-integration.1.8.1.zipを解凍します。
wordpress-sqlite3-ftp-010.png

図のようにpluginsフォルダにsqlite-integrationを移動またはコピーします。

4 db.phpのコピー


wordpress-sqlite3-ftp-020.png

図のようにplugins\sqlite-integration\db.phpをwordpress\wp-contentへコピーします。


5 必要な方はwp-config.phpを修正します


手順5 ワードプレスの設定」を参考に、SQLite Integrationのオプションを指定してください。

6 再圧縮


ご契約のレンタルサーバーのコントールパネルから、圧縮ファイルを解凍する機能はあるでしょうか?

解凍する機能がある場合、ワードプレス+SQLite3を整えた圧縮ファイルを作成した方がスムーズに進められます。
圧縮ファイルは1ファイルの転送で完了します。
もし、解凍する機能がない場合、生ファイルをFTP転送するため、
数多くのファイル転送を行うことになります。途中で失敗することもあるので、リトライしながらアップロードします。


FTPで転送できるように再圧縮します。
wordpress-sqlite3-ftp-030.png

図のようにwordpressフォルダを全選択後、圧縮ファイルを作ります。

圧縮ファイル作成後、任意のファイル名に変更することができます。

7 FTPで公開サーバーへ転送する


FFFTPで公開サーバーに接続し、
ドメイン名/public_htmlへ移動します。

解凍機能があるレンタルサーバーの場合、index.zipをアップロードし、コントロールパネルから解凍してください。
解凍機能がないレンタルサーバーの場合、全ファイル選択後、アップロードしてください。
ファイル数が多いので、転送完了までにはしばらく時間がかかります。


これでMySQLなしでSQLite3+最新ワードプレスの環境が整いました。
あとは、「手順6 ワードプレスの設置と初回アクセスでサイト名、ユーザー名、パスワードの設定」でワードプレスの初期設定を始めましょう!




格安共用サーバー徹底比較!【厳選格安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日時点の情報に基づいています。
記事中にある公式サイトから最新情報を入手することができます。




最新記事
最新コメント
タグクラウド
カテゴリアーカイブ
×

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