新規記事の投稿を行うことで、非表示にすることが可能です。
サイト移転のお知らせ2025年4月22日(火)ファンブログ終了です。それに伴いサイト移転します。
移転先: https://www.wcguru.net/
2016年3月最新ロリポップのスタンダードプラン申込手順の流れ
(この記事を書いている段階では、まだお試し期間中です)
ロリポップのスタンダードプラン申し込み手順をスクリーンショット満載で説明します。
ロリポップのスタンダードプラン申し込み手順
ロリポップに限りませんが、無料お試し期間があるレンタルサーバーは多いです。
=> ロリポップは、10日間のお試し期間がありました。
=> お試し期間中クレジットカードの入力不要でした。
=> 他にブログを所有していて、引っ越しするなら、初期費用が半額で750円ほどお得になります。
登録には、メールアドレスが必要です。また、住所、氏名入力が必要です、ただ、クレジットカードの入力は不要なので自動課金とかの心配不要なのがいいです。
では、プランの申し込みをします。
よりプランを申し込んだ流れで説明します。
1. スタンダードプランを申し込みました

モジュール版PHPで快速ワードプレスが使える、月額500円〜、容量120GB、マルチドメイン100個を目視で確認した後、
「選択する」をクリックします。
2. アカウントと「ロリポップ!のドメイン」を選んでお申込み内容を入力します

独自ドメインを設定する人はそれほど神経質になる必要はありません。
選んだアカウント、ドメインでしっかりワードプレスサイトを作る!と考えている方もいるかと思います。
そんな方のために、「ロリポップ!のドメイン」どれを選ぶのがいいのか、指標となるデータを調べたので参考にしてください。
グーグルのページランク(*1)が一番良かったドメインは、ページランク4の「chicappa.jp」です。
グーグルのページランクがついた「ロリポップ!のドメイン」は、ページランク4が1つ、1は、9つありました。
ページランクが1だったのは、「babyblue.jp」、「boy.jp」、「chu.jp 」、「heavy.jp」、「kilo.jp」、「main.jp」、「moo.jp」、「sub.jp」、「zombie.jp」です。(並びはアルファベット順で深い意味はありません)
一番人気がなかったのは、「pigboat.jp」です。
*1 指標としては古いですが、このランクをもとに中古ドメインの価格が変動するのも確かです
* seoチェキ!を使って「ロリポップ!のドメイン」すべてを調べた結果です。(2016/3/5調査)
以下、人気度を調べています。
- ポップなドメインで一番人気が高い1位はjellybean.jp 、2位 lovepop.jp、3位 pupu.jpです。
- クールなドメインで一番人気が高い1位はmain.jp 、2位 oops.jp、3位 mods.jpです。
- 短いドメインは、人気が集中しているようです、その中でも一番人気が高い1位はsub.jp、2位 moo.jp、3位 boo.jpです。
- オシャレなドメインで一番人気が高い1位はraindrop.jp 、2位 whitesnow.jp、3位 sunnyday.jpです。
- カワイイドメインで一番人気が高い1位はitigo.jp 、2位 girly.jp、3位 littlestar.jpです。
- ちょっと変わったドメインで一番人気が高い1位はchicappa.jp 、2位 fool.jp、3位 hiho.jpです。
アカウント、ドメインを決めて、パスワード、メールアドレスを入力します。
入力した内容を見直して、間違いなければ、「お申込み内容入力」をクリックします。
3. 住所、氏名を入力します。※ 初期費用半額を設定します

個人 or 法人、名前、郵便番号、住所、電話番号を入力します。
郵便番号を入力すると、自動的に住所が展開されました、住所は、番地やマンション名などの入力だけで済みました。
初期費用半額キャンペーン中なので、サーバー移行 or 以前ロリポップを使っていた人は750円お得になります。

「はい、サーバー移行 or 以前にロリポップ!を利用したことがあります」を選択すると、移行前 or 以前のホームページアドレスの入力欄が増えるスクリーンショットです。

「必須」項目に不備があると、「お申込み内容確認」ページには遷移しないで、エラー入力箇所の下に赤文字でメッセージが表示されました。
入力に問題なければ、「お申込み内容確認」をクリックします。

入力内容に不備や、ミスがあった場合、「無料お試し開始」ボタンの下に「お申込み内容を修正する」リンクがあります。このリンクから修正してください。
利用規約と、プライバシーポリシーのリンクがあります。納得できない内容だと困るので、しっかり確認しましょう。
納得できたら「無料お試し開始」をクリックします。
4. 以上でお申込みは完了です。

登録メールアドレスに1通、件名:「【ロリポップ!】お申込み完了のお知らせ」が届きます。
本文中に「【キャンペーン適用】 初期費用 \750 (税抜) ※通常 \1,500」と書いてあったので、ちゃんとキャンペーンが適用できたようです。
ちなみに、このページで表示されている「最大12ヶ月契約期間プレゼント」が気になったので、見てみたところ、
最大12か月は、エンタープライズプランの場合で、スタンダードプランの場合は6か月間でした。
新たに6か月分の契約ができるのではなく、今回契約したプランが延長されるイメージです。
クレジットカードや銀行口座など一切入力せずに、申込みができました、また、申込み完了後すぐに、コントロールパネルサイトへアクセスできて、操作も可能でした。
SSHの使い心地、PHPモジュール版の実力なども、今後情報をアップできたらと思います。

安いサーバーでワードプレス!
なぜ、探すことになったのか、悲しいワケは最後に書いてあります。
安いサーバーでワードプレス選定条件
安いと言っても人によって感覚が違ってたりします。
なので目安として、選定条件を明確にしています。
- 月額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 初期費用無料!
コアサーバー CORE-A 初期費用無料!
=>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でした

安いサーバーを探すワケ・・・
オールドドメインが欲しい!?
なので、オールドドメインの見つけ方をまとめています。
ググってみると正解っぽいサイトを見つけました。
無料で取得する方法
無料、自力で期限が切れたドメインを取得する方法が明確に記載されているサイトはこちらです。
オールド(中古)ドメインとは|無料取得方法からチェックの仕方まで!
www.peko.co.jp/seo/domain-seo/domain-used
かなり有益な情報にアクセスできました。
その名の通りのExpired Domainsなどで
https://www.expireddomains.net
期限切れのドメインを探して、お名前.comだったり、バリュードメインだったり、ムームードメインだったり、使い慣れたところで期限切れのドメインを取る!という方法です。
ただ、オールドドメイン=優良ドメインではなく、
良質なオールドドメインであるかどうかを見極める必要があるようです。
ある程度良質なのかどうかを見極める方法も、「オールド(中古)ドメインとは|無料取得方法からチェックの仕方まで!」に明記されています。
実践 Expired Domains
アクセスすると、昨日(おそらく米国時間)切れたドメインの一覧がcomやらnetやらbizなどの単位で確認することができます。
じっくり、眺めながら、「オールド(中古)ドメインとは|無料取得方法からチェックの仕方まで!」の方法でチェックしてみると・・・
良質な感じのドメインはすでに取得済み!でした。
競争が激しすぎる予感しかしません・・・
いろいろ調べてみると、オールドドメインが切れる情報を取得するようなツールも売られているようです。
(俗に言われている情報商材ってやつ)
オールドドメインの期限切れを狙うツールは、かなり限定的なので、再現性がありそうです。
つまり、購入者が同じようなことができてしまうので、枯渇しやすい状況になっていると予測されます。
無料は手間がかかる、チャンスを逃すな!
もし、オールドドメインのリストを売ってくれるような情報に出会えたら、
価格を確認した上で、出せる金額なら購入しておきましょう。
やってみてわかったんですが、
無料の手段は、手間がかかり上、競合が多すぎます。
レジストラー系で販売されているオールドドメインは、1件あたり2000円以上、数万だったりします。
手間を考えると安いのかもしれませんね・・・
重要なのでもう一度、もし、オールドドメインのリストを売ってくれるような情報に出会えたら、
価格を確認した上で、出せる金額なら購入しておきましょう。
意外と簡単?ペナルティサイトの判定法
オールドドメインは前オーナーの状態を引き継げるメリットがあります。
これは、とってもいい状態を引き継げるので、とってもいいんです。
でも、とっても悪い状態も同じように引き継げてしまうので、とっても悪いんです。
=>つまり、博打的な要素があります。
ネットの情報を見るとグーグルにペナルティを受けていたかどうかは、
実際登録するまでわからないような情報ばかりでした。
ふと、ものすごく簡単な方法で判別可能なことに気づきました。
多分、これって知らない人が多いと思うんです。
実際に実践してみて、確証が得れたら!
次回をお楽しみに!^^
お名前COM共用サーバーでデータベース管理はadminerが便利です
作ったデータベースの中身を見たり、バックアップ、リストア(復元)する手段は用意されていません。
利用者が別途インストールする必要があります。
sshでログインすることもできますが、mysqlコマンド、mysqldumpコマンドなどは用意されていません。
なので、自分でphpmyadminをインストールする必要があります。
phpmyadminは導入時に設定が必要だったり、アクセス権を適切に管理する必要があります。
phpmyadminはデータベース名、ホスト名、データベースユーザーなどあらかじめ設定して、
任意に設定したユーザー名、パスワードでログインする流れになります。
自分で用意するには、ちょっと大掛かりかなぁと感じる方も多いのではないでしょうか
ワードプレスの単一データベースのバックアップ、リストアならプラグインが存在します
- WP-DBManager https://lesterchan.net/portfolio/programming/php/
- wp-database-backup http://www.wpseeds.com/wp-database-backup/
スケジュールで自動バックアップなんていう便利な機能が付いていたりします。
1サイト毎の管理には最適な方法の一つですね^^
複数サイトのデータベース、独自テーブルを管理したいならadminerが便利です
phpmyadminもいいんです、でもちょっと大掛かり、adminerは基本1ファイルを設置するだけです。
https://www.adminer.org/en/
バックアップ、リストア、テーブルの表示、SQLコマンドの発行ができます。
ビジュアル編集がお望みならAdminer-Editor(https://www.adminer.org/en/editor/)というのもあります。
adminerの管理画面はこんな感じです。

SQLコマンド、インポート、エクスポート、テーブルの作成、プロシージャの作成、イベントの作成等々一通りの機能が揃っていることが確認できます。
(クリックで拡大します)
phpmyadminと比べて、adminerのいいところは、

セキュリティはどうなのよ?
レンタルサーバーに設置する、お名前COMの場合、そのまま公開しているサイトに設置するイメージになります。
phpmyadminでも、adminerでも公開サイトに設置する時点で安全性の担保はないと思っています。
.htaccessでIP/HOSTによるアクセス制限、BASIC認証によるパスワード認証などでリスクは若干下がります。
経路の安全性は、ssl、httpsに対応することで確保できます。
phpmyadminでも、adminerでも一緒のことなので、セキュリティが心配な方は対策してみてください。
adminerのログイン画面は、データベース名、データベースサーバー名、ユーザー名、パスワードを手動で入力してログインする方法になっています。
経路を盗聴されてしまうとアウトですが、
adminerのURL、データベース名、ユーザー名、パスワードの4つの壁が存在すると思っています。
(高い壁なのかどうかはわかりません><)
ちょっとでもわかりにくURLにしておくのが良さそうです。
お名前COMにadminerをちょっとだけセキュアに設置してみた
FTPでも作業可能です。ここではsshでログインしたりしています。
adminerのPHPファイルをそのまま設置することですぐに使えます。
このままでは、.htaccessの制限する際やプラグインで拡張する際にちょっぴり面倒になります。
なので、はじめにadminer専用フォルダを作って、プラグインで拡張しやすい形で、さらに後から.htaccessで簡単に制限できる方法です。
- ファイルのダウンロード(PC)
https://www.adminer.org/en/ から、Adminer x.x.x for MySQLというPHPファイルをダウンロードします。ファイル名はそのままを利用します。
adminer-4.2.3-mysql.phpをダウンロードしました。 - お名前COMに専用フォルダを作成します。(SSH)
~/filesにlib/adminerというフォルダを作成しました。
$ cd ~/files
$ mkdir -p lib/adminer - ダウンロードしたadminer-4.2.3-mysql.phpをアップロードします
先ほど作ったlibフォルダにアップロードします。
~/files/lib/adminer/adminer-4.2.3-mysql.php - 設置用のadminer.phpを作成します。(PC)
ここではadminer.phpとしています、適時、推測されにくい、連想しにくい名前に変更してください。
以下、~/ドメイン名/ホゲホゲ/adminer.phpという形で設置するイメージのadminer.phpファイルです。
<?php
include __DIR__ . "/../../files/lib/adminer/adminer-4.2.3-mysql.php"; - お名前COMのサイトフォルダ化にadminer設置用フォルダを作成します。
$ cd ~/site/
$ mkdir わかりにくフォルダ名
(ここでは、わかりやすくadminerとしています) - adminer.phpファイルをアップロードします。
ここでは、~/ドメイン名/adminer/adminer.phpとしてアップロードしています。
これでhttp://ドメイン名/adminer/adminer.phpにアクセスするとログイン画面が出てきます。
ログインは、お名前COMのサーバーNavi、コントロールパネルからMySQLデータベースのデータベース設定情報を見ながらログインすると簡単です。
コントロールパネルのMySQL データベースの設定画面の(1)から(4)を
adminerログイン画面にコピペして、ログインボタンをクリックするとログイン出来ます。
adminerにはプラグインで拡張できます。ログインも便利にできる拡張機能が用意されていますが、
この面倒なところがセキュリティにつながると信じているので、便利さを追求しない方がいいです。
今回使ったお名前COMの共用サーバーはこちらです。
お名前COM共用サーバーSDでSSH!できること、できないこと
なぜ、お名前COM 共用サーバーを契約したのか
少し前に、SEOに強いと噂の賢威テンプレートに惹かれて、お名前COMの共用サーバー 賢威パッケージを契約しました。
たまに目にしているかたもいるかと思います、下のような広告のやつです。

通常より5000円も安く賢威が手にはいる最安の方法で、これ以外方法がないと判断して、契約しちゃいました^^
1年くらいは使ってみないと良さがわからないかもしれない、と考えて、1年契約しています。
賢威自体は、パッケージ版と同じもののようで、契約すると
お名前COMから、賢威サポートサイトの仮アカウントがメールで届きます。
賢威サポートサイトにアクセスして、本登録すると賢威5、6、7などワードプレス、HTMLのテンプレートが入手できます。
本人が契約しているサイトならお名前COM以外でも使いたい放題なので、買ってよかったと思ってます。
というわけで、お名前COMの共用サーバー利用者になりました
お名前COM共用サーバーでもSSHできるんです。
詳しくは、「お名前COMの共用サーバーにパスワード入力を簡略化sshログインする方法」に書いています、お名前COM共用サーバーでもSSHログインできます。
でも、ネットで情報を探しても、お名前COM共用サーバーはSSHログインできないとか、書いてあったりします。見つかるのはVPSの情報ばかり・・・
理由は、簡単で、お名前COM共用サーバーでSSHログインできるようになったのは、2015年6月と最近です。
SSHログインできるところとして、エックスサーバーやさくらなどのサービスが先行していたので、
すでに需要は尽きていたんでしょうかね、だから情報が少ないという結論に至ってます。
お名前COM共用サーバーSDのフォルダ構成
~/の下は
ディレクトリ analyze
ディレクトリ backup
ディレクトリ files
ドメインを追加すると
ディレクトリ ドメイン名
というような環境になります。
ホームディレクトリ(~/)の書き込み権限がありません。
なので、環境設定等はfilesディレクトリか、追加したドメインディレクトリ内のどこかに置いておく必要があります。
お名前COM共用サーバーSDでSSH!できること
まず、OSはSunOS、Solarisのx86版っぽいです。
$ uname -a
SunOS ssh 5.10 Generic_Virtual i86pc i386 i86pc
同じサーバー内には、計66アカウント存在するようでした。
(ls .. | wc)
当たり前ですが、cp/mv/tar/gzipなどの標準的なコマンドが利用できます。
- perl -v
This is perl, v5.8.4 built for i86pc-solaris-64int
- smbclient -V
Version 3.6.24
- python
Python 2.6.4
などなど、/usr/binには1021個のオブジェクトが存在しました。
ただ、javaやjavacなどありますが、シンボリックリンク先の実体が削除されたりしているので、
実際はもう少し少なそうです。
X11も存在しました、ただ、リモートでX11は管理者権限が必要な箇所があるので、実際には使えないかと思います。
普通に転送したファイルを解凍したりする分には、全然問題ないレベルです。
お名前COM共用サーバーSDでSSH!できないこと
できないことでショックを受けました・・・
GCC/CCのコンパイラがないという事実に気がつきました・・・
コンパイル好きな人には酷すぎる感じです。
お名前COM共用サーバーSDでSSHの用途はコレ
コンパイルができないのに、ログインして意味があるのか!?と思ってしまいますが、
実は、意味があるんです。
まず、お名前COMの共用サーバーには、mysqlコマンドがありません。
仕様なようなので仕様がありません(寒
代わりにphpMyAdminがあります、というかお名前COMで提供しているわけではなく、自分でインストールする必要があります。
公式の手順 => http://guide.onamae-server.com/sd/3_12_15_25/
公式の手順はFTPでアップロードする方法ですが、sshでリモートログインすることでもっとサクサクインストールすることが可能です。
もう一つは、wordpressです。
簡易インストールを行うと、ドメイン名/wp/という感じのディレクトリがサイトのルートディレクトリになるようです。
なので、手動でワードプレスをインストールすることで、この/wp/をなくした状態、一般的なインストール状態にすることが可能です。
sqlite3 1万件を超えるならUPDATE/DELETEは使っちゃダメ
データ件数は、1日1000件ぐらい増える感じで、1万件、5万件、10万件と増えていきます。
当然追加(INSERT)する際は、PK(実際はインデックスなし)の存在を確認してInsert Or Updateな処理が必要になります。
件数が多くなるとトランザクションは必須です。
テストデータは、5万件超えのもので確認しています。
何も考えずに、select pk from tbl where pk=?的なSQLで検索して、存在しなければInsert、存在すればUpdateという処理にすると
(以下、msec=ミリ秒です。)
select発行コストは、1件あたり0.001sec(1msec)とごくわずかな時間でした。が、
UPDATE発行コストは、1件あたり0.06sec(60msec)もかかります。
10件で、600msec、100件で6秒、1000件で1分・・・・うーん数は力です。
UPDATE発行コストを下げるには・・・
件数が少ない場合、無視できるコストですが、件数が10万件、将来的に100万件を超えるようなテーブルでは、無視できません><
パッと思いつく方法は、以下2つでした
1. UPDATE対象専用のテーブルに、INSERT、まとめてUPDATEする方法
2. UPDATE対象専用のテーブルに、INSERT後、更新対象をTBLからDELETE、その後UPDATE対象=>TBLヘ
「1. UPDATE対象専用のテーブルに、INSERT、まとめてUPDATEする方法」
=>INSERTコストは全く気になりません。
update tbl set x = (select uptbl.x from uptbl where tbl.pk = uptbl.pk ) where exists (select uptbl.pk from uptbl where tbl.pk = uptbl.pk)
みたいなSQLでUPDATE対象専用のテーブル=>TBLへまとめて更新する方法は、
1件ずつUPDATEする方法とほぼ同等のコストでした。><
「2. UPDATE対象専用のテーブルに、INSERT後、更新対象をTBLからDELETE、その後UPDATE対象=>TBLヘ」
=> delete tbl from pk = ?というSQLで1件ずつ削除すると1件削除の平均コストは124msecでした
delete 超遅い><
たった2つしか試していませんがw・・・
m(_ _)m UPDATEコストを低減させる方法は、見つかりませんでした。
ここまでを一言でまとめると・・
sqlite3ではUPDATE/DELETEはコストが高い!です。
できるだけ、UPDATE/DELETEを発行しないような仕組みに作り変えます。
sqlite3は、INSERT/ALTERを多用しようぜ!
ここまで確認している中で、INSERTコストは、全く気になりません。
トランザクションのメリットですね。
ということで、INSERT主体の処理に変更します。
ちなみに、私は、この方法で、5分かかっていた処理が 3秒になりましたw
元
beginTransaction
LOOP START
SELECT PK
INSERT OR UPDATE
LOOP END
commit
と、
1テーブルに対して、SELECTして、値を得た結果でINSERTかUPDATEで挿入、更新を行う処理だったものを、
beginTransaction
SELECTで全件検索
更新対象となるキー 値を書き換えて UPTBLへINSERT(更新)
更新対象外 そのままUPTBLへINSERT(更新対象外)
SELECT END
commit
更新対象で処理していないものを全部UPTBLへINSERT (新規)
という流れに変更しました。
UPTBLは、CREATE TABLEでTransaction開始前に作成しています。
この変更点をサクっというと、
5万件のテーブルは触れずに、新たに5万件のテーブルを更新しながら作っちゃう作戦です。
繰り返しになりますが、UPDATEやDELETEを発行しない方法です。
でも、
5万件のデータでも、2、3秒で終わります。
この後、元々のTBLをDROP TABLE、
更新したUPTBLをTBLに変更します。
=>ALTER TABLE UPTBL RENAME TO TBLでUPTBLをTBLに変更しちゃいます。
私が検証した結果では、速度面でUPDATE/DELETEは使ってはいけない、代わりに新たにテーブル作っちゃえという結果になりました。
最後に・・・
検証は行っていますが、あくまで個人の環境です。
お手元にあるDBの特性に合わせてチューニングすることをお勧めします。
・・・・
ファイル系のデータベース、sqlite以外にもSQL Server CompactやAccess(ACE)などもあります。
sqliteは、SQL Server Compact(sdf)やOLEDBに比べて、とても簡単な印象を受けました。
PHPなどでは何もインストールしなくても使えるし、fts3,4の仮想テーブルを使うと型宣言も必要ないし、・・
万件データを扱うようになると、やはりSQLコストが問題になってきます。
likeや=での検索は、致命的に遅いです><
なので、全文検索のmatchという選択にせざる終えませんが、
謎の挙動が多いので、https://sqlite.org/fts3.html を徹底的に読んだ方が良さそうです・・・
sqlite3のデータベースは、ディスクIO速度が性能に直結します。
可能であれば、SSDの領域にdbファイルを置いて処理すると格段にパフォーマンスが上げられます。
さらに余裕があれば、メモリ領域に置くことで高速化可能です。
SQL Server/Oracle/MySQL/PostgreSQLなども同様ですが、結局のところ、IOコストですね・・
変更来歴
2015/1/17 言葉足らずな文章だった箇所を修正しています。
2017/9/22 SQLite3のコツ10選を追加しました。
続きを見る方はこちらをクリックしてください
お名前COMの共用サーバーにパスワード入力を簡略化sshログインする方法
2015年6月16日よりSSH接続機能が提供され、ログインできるようになっています。
お名前COMへSSHログインする方法は、お名前COMのマニュアル類を参考にしてください。
お名前COM共用サーバーSDでSSHする際の課題
現在、お名前COM共用サーバーSD-11を契約しています。
- sshでログインすると、~/、ホームディレクトリ下の権限がありません。
~/.cshrc, ~/.bashrc、~/.ssh/などが作成することができません。
現時点では、一般的な公開キーを用いたsshパスワードの省略が行えません - 慣れの問題ですが、ユーザー名が特殊です
$ ssh ユーザー名@sshホスト名
ユーザー名は、sd9999999@gmoserver.jpです
なので、ssh sd999999@gmoserver.jp@ssh99.gmoserver.jpというような感じになります。
個人の環境問題だと思いますが、macからsshログインする際、1回目のパスワード入力を失敗すると
アカウントロック的な状況に陥ってログインできなくなりました。
お名前COMの共用サーバー ちょっとセキュアなsshパスワード省略ログイン方法
先ほど課題で触れたとおり、公開キーを使うSSHパスワード省略ログインはできません。
クライアント側で工夫する方法しかありません。
この記事は、どちらかというとmacやlinuxからお名前COMにsshログインする方に適しています。
Windowsな環境の場合、WinSCPやputtyなどのキーワードで情報を探してください。
(確認は、osx el capitanで行っています)
公開キー以外のsshパスワードを省略する方法は、
expect(shellの対話プログラミング)、sshpass(SourceForge 引数でパスワードを渡せるプログラム)
の2つです。
expectで作ったshellは、環境に依存しやすいので、ここでは、sshpassを利用します。
sshpassのソースは以下sourceforgeにあります。コンパイルしてインストールしてください。
http://sourceforge.net/projects/sshpass/
sshpassの使い方
sshpass -p パスワード ssh ホスト名 -l ユーザ名 -o 'StrictHostKeyChecking no'
実際に実行中のsshpassプロセスは、ps -le等で見ても、パスワードがzzzzというような表示になって秘匿されています。
historyで確認すると、打ち込んだパスワードがそのまま残ってしまいます。
また、shellでパスワードを平文で残しておくのも、なんとなくやな感じがします。
一人しか使わないような環境では、シェルスクリプトにそのまま平文が最も簡単な方法です。
以下方法では暗号化しています、ただ、何者かが自分のユーザーでログインできてしまった場合、暗号化は破られます。なので、ちょっとセキュアな方法です。
スクリプト
sshpassは、~/local/binにインストールしてある状態です。
~/local/bin/mylogin.sh(ファイル名、パスは自由です)
#!/bin/sh
ssh_agent(){
host=$1
user=$2
f=~/.ssh/${user}@${host}.rsa;
PASSWORD=$(openssl rsautl -decrypt -inkey ~/.ssh/id_rsa -in ${f})
~/local/bin/sshpass -p ${PASSWORD} ssh ${host} -l ${user} -o 'StrictHostKeyChecking no'
}
お名前COM sshログインスクリプト(適切なファイル名でお願いします)
ex) ~/onamae-ssh.sh
#!/bin/sh
. ~/local/bin/mylogin.sh
ssh_agent ssh99.gmoserver.jp sd999999@gmoserver.jp
これでスクリプトの準備は完了です。chmod +xで実行可能にしておきます。
sshログインパスワードの暗号ファイルの用意
opensslを使ってパスワードファイルを作成します。
~/.ssh/id_rsaファイルを使います。あらかじめ作成してください。
パスワードファイルは、~/.ssh/ユーザ名@ホスト名.rsaという形で準備します。
(これ本当はどこでも、なんでもいいです、ただ先のスクリプトと対になっているので、変更する場合はスクリプトも変更してください)
$ echo 'パスワード' | openssl rsautl -encrypt -inkey ~/.ssh/id_rsa > ~/.ssh/ユーザ名@ホスト名.rsa
これで暗号化したパスワードができました。
パスワードは、ssh_agent()処理で復号されます。
使い方
~/onamae-ssh.sh
でお名前COM 共用サーバーSDにログイン出来ます。
Webからデータを取得する3つの方法
コマンドラインからHTML/XMLを取得して解析する
主にPHP系です。Windows/Mac以外にも、Linux/FreeBSD/Solarisなど様々な環境で利用可能な方法です。
libXML DOMDocument DOMXPath
PHPでDOMを扱うベーシックな方法です。DOMDocumentでサイト/HTMLやXMLを読み込み、XPathで簡単に情報を取得することができます。
PHP Goutte
githubで公開されているGoutteを使う方法です。
簡単に説明すると、Goutteはコンソールで使えるWebブラウザの機能を備えています。
必要となるコンポーネントは、guzzlehttp、react、symfonyなどです。
requestして、ユーザ名、パスワードを入力して、ログインボタンをクリックして、ログインするなんてことも可能です。
HTML要素に対する制御は可能です。phpQuery
githubで公開されているphpQueryを使う方法です。
簡単に説明すると、phpQueryはコンソールで使えるWebブラウザの機能を備えています。
基本PHP Goutteと同じような感じです。
phpQueryは、HTML要素へアクセスする際、jQueryの表現ができることが大きな違いになります。javascript PhantomJS
phantomjs.orgで公開されているPhantomsJSを使う方法です。PhantomJSは、QtのWebKitベースのブラウザですが、CUIから利用が可能です。
簡単な動作イメージは、PhantomJSでサイトにアクセスするとQtWebKit経由でサイトにアクセスして、QtWebKitを経由して、javascriptで制御するといった感じです。
そのため、コンソールからアクセスしていても、スクリーンショットが撮れるというスゴ技ぶりです。
難点は、バイナリが用意されていますが、ソースからコンパイルが必要な場合、
GNU C++ compiler, bison, flex, gperf, Perl, Ruby, SQLite, FreeType, FontConfig, OpenSSL, ICUなどのライブラリが必要になる点です。多くの場合すでに備わっているかと思います。
これ以外にjavaを使う方法もあります。
この辺りの手法は、Web系の単体テスト、機能テストなどにも利用されます。
Webブラウザをエミュレーションする
開発環境が必要です。
実行には、WindowsやMacでログインしている必要があります。
- Windows VisualStudio系
System.Windows.Form.Webbrowserコントロール
ウィンドウのFormにWebBrowserを貼り付けてアクセスする方法です。古くから存在する方法です。NavigateでURLにアクセスします。独自のJavascriptを後から実行する手段も用意されています。
iframeなどが含まれるサイトでは、ドキュメントの読み込み完了が複数回呼び出されるため工夫が必要になります。 - Mac XCode系
WKWebView(webkit)
WebKitブラウザをMacやiPhoneアプリに埋め込めることができます。ドキュメント読み込み開始時点のJavascript埋め込み、ドキュメント読み込み完了後の独自Javascriptの実行などが比較的簡単に行えます。iFrameなどが埋め込まれたサイトでもドキュメントの読み込み完了は、起点となるドキュメント読み込み完了で呼び出されます。
target = __blank__や、BASIC認証などは、自前で対応する必要があります。
WKWebViewの日本語情報は少ないです。おそらくXcodeでドラックアンドドロップできるコントロールになっていないことが大きな要因だと思われます。
個人的な最大なメリットは、セッションを独立させられるということだと思います。
WKProcessPoolがキーワードになります。
基本:webブラウザ
Chrome/IE/SafariなどのブラウザでURLにアクセスします。
CSS、Javascript、画像イメージなどURLに紐付けられているデータを取得できます。
ブラウザ内蔵の開発ツールなどで要素の詳細を見ることが可能です。
javascript numeric comma処理:品質面で安心できる
1234567890 => 1,234,567,890
サーバーサイドでは、数値にカンマ区切りを挿入してくれる便利な関数が標準で用意されています。
phpの場合:number_format( $num );
C#の場合: (1234567890).ToString("#,##0");
クライアントサイドであるブラウザ側では、
サーバーサイドで生成されたコンマ区切り文字列をそのまま表示するのが一番簡単です。
なぜなら、javascriptでは標準でコンマ区切り書式にする関数が存在しません。
また、以前CSSで数値を表示上カンマとして表示する仕組みも検討されていたようですが、一向に進んでいないようです。
javascriptで数値をコンマ区切りする方法 javascript number comma
javascript toLocaleString()
var n = 1234567890;n.toLocaleString();
safari系(ipad/iphone/osx)ではうまくいきません。safari系無視でOKな要件の場合、もっとも簡単な方法です。
javascript 正規表現でコンマ区切り
function numberWithCommas(x) {
var parts = x.toString().split(".");
return parts[0].replace(/\B(?=(\d{3})+(?=$))/g, ",") + (parts[1] ? "." + parts[1] : "");
}
正規表現で区切りを挿入するパターン、ループしてカンマを入れるパターンなどがあります。
これらのデメリットは、すべて自作のため、品質の問題が付きまといます。
javascript 有名な外部ライブラリを利用する
現時点では、この有名所の外部ライブラリを利用するのがオススメです。
その理由は、いろいろな方がつかっているので、関数の信頼性が高いことにあります。
オススメはd3.format
公式サイト: http://d3js.org/
スクリプトの読み込み(CDNパターン)
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
カンマ区切りする方法
var num1 = d3.format(",")(1234567890);
var num2 = d3.format(",.2f")(1234567890); // 小数2桁
詳しい書式は、以下を参照してください。
https://github.com/mbostock/d3/wiki/Formatting
D3はデータを可視化する(グラフなど)ためのエンジン的なライブラリです。
利用者もたくさんいるので品質面で安心です。
d3.timeという日時系書式も存在します。
php error をconsoleに出力
$ php a.php
$
という結果になります。
phpのソースをいじらずに、エラーになるかどうか確認したい場合はlintを使います
$ php -l a.php
Errors parsing a.php
正常時:
No syntax errors detected in a.php
残念ながら、エラーがあるよ、ないよというレベルでしか確認できません。
php.iniのdisplay_errorsを1にすることで標準出力、display_errors=2とすることで標準エラー出力に出力させることができます。
ただ、php.iniは本番環境でも参照されるものなので、単純な確認で変更したくありません。
php error consoleに簡単出力
phpコマンドには、-dオプションが存在します。
--define foo[=bar]
-d foo[=bar] Define INI entry foo with value bar
この-define/-dを使うことで、いまから実行するphpのみエラーレベルを指定&console出力させることが可能になります。
全部のエラーをconsoleに出力させるにはdisplay_errors=1とerror_reporting= 2147483647を指定します。
$ php -d display_errors=1 -d error_reporting=2147483647 a.php
Parse error: parse error, expecting `"variable (T_VARIABLE)"' or `"${ (T_DOLLAR_OPEN_CURLY_BRACES)"' or `"{$ (T_CURLY_OPEN)"' in a.php
これにより、ソースはいじらずに、動作確認で検証したいときのみ、consoleにエラーを表示できるようになります。
aliasを設定するとさらに便利になります
毎回毎回打ち込むのは、あまりにも面倒なので、例えばaliasをつかって定義すると簡単になります。
.cshrc/.bashrcなどに以下を追加
.shrc/.bashrc
alias phpconsole='php -d display_errors=1 -d error_reporting=2147483647'
.cshrc
alias phpconsole php -d display_errors=1 -d error_reporting=2147483647
$ phpconsole a.php
と打ち込むとaliasで展開され
$ php -d display_errors=1 -d error_reporting=2147483647 a.php
が実行されます。