2014年1月16日木曜日

お名前サーバ(共用サーバーSD)からヘテムルへ移管 その2 まとめ

昨日に引き続き、「お名前サーバ(共用サーバーSD)からヘテムルへ移管」をしている。






ムームードメインからメールがくる


info@muumuu-domain.com
To:

 info@xxxxxx.co.jp
日付: 2014年1月15日 17:26
件名: 【重要】トランスファー承認手続きのお願い



本文中のURLへ飛び、承認すると、数時間すると次にお名前.comから同様のものがきて承認する。


すると、ムームードメインの管理画面内に移管したいドメインが表示されるので、クリックして一年分のドメイン管理費を支払う。




ヘテムルにドメインを追加して、ここからがサーバ移行をして結構嫌なところ。
ブラウザサイトだけのhtml+css程度のサイトならばいいのでけれど、CMSがお手軽に使える時代なのでサーバサイドの設定やMySqlバックアップの反映、呼び出しDBの変更などが面倒くさい上に知らないところでエラーの原因になる。


やはり、サーバの移行はしたくないとヒシヒシと思う瞬間です。
ヘテムルのサーバにも前サーバと同じ設定が出来たらムームードメインのネームサーバをヘテムルを選択して変更、この辺でヘテムルとムームーがごっちゃになりやすいので注意。




しばらくするとヘテムルに変更されています。
※すぐには反映されません。


結局、待ち時間が多いので、複数業務をこなしつつ2日にわたってのドメイン移管とサーバの移行が終了。


移行したことで、大きめのDBを利用した表示速度は早くなり、拡張子.htmlのPHP化も.iniの設定も簡単に出来、というか設定を特にしなくても快適な状態になっていることが素晴らしい!
”本当に気が利く人は「気を使っている事」を気づかせない”って聞いたことがあるが、まさにその状態でしす。
ここに労力と時間がかかっていたお名前サーバは、たとえ機能に問題がなくてもやはり何か違うと思う。まぁ、月間数百円

2014年1月15日水曜日

お名前サーバ(共用サーバーSD)からヘテムルへ移管

ヘテムルサーバでは「サブドメインにwwwが付けられない」や再販禁止などの問題から、ヘテムルサーバからGMOのお名前サーバの共用サーバへ移管した。
 
お名前サーバはシンプルな管理画面で、機能的にもそろっているのですが、プラスαのサービスが少ないので、いちいち手間がかかってしまい、ヘテムルサーバの時に予想の工程の倍以上の手間がかかることがザラにあったし、当然無料と考えていたものが有料だったりするので業務の効率化を優先してヘテムルに戻すことにした。
 
ちなみに時間がかかったことと言えば
  • phpmyadminの手動インストール
  • Whois情報公開代行
  • 管理者アカウントが自動で振り当てられる(ランダム英数)
  • PHP化した拡張子htmlが使えない(この変更が面倒くさかった)
  • ↑ちなみにSEO的にhtaccessで403転送をかけた
  • php.iniの設定
  • Wordpress等のかんたんインストールでのデータベース名が指定できないので、MySqlの名前から作り直し
  • FTPアカウントをディレクトリごとに作成したのも面倒
それと、理由はもう一つあって、モバイル転送がキャリアごとだったり、アクセスカウンターのたぐいの古臭いCGIの簡単設定機能がそのままにされていたりと、何だか時代遅れのホテルのような「これって何のために使うの?」的なものがたくさんあり、少しの敗北感のようなものを感じていた。
 
そしてこの度、PHPライブラリのPearを使おうとしたのですが、なんと手動にてインストールが必要との事で、「もうええわ!」と古巣のヘテムルに戻ることにしました。
 
 
-----------------------------ここから手順

お名前.comにログイン
Naviトップタブ
移管するドメイン名をクリック
テーブルの中のAuthcodeをコピーしておく




ムームードメインにログイン
↓ドメイン移管手続
↓質問に答え進む
移管申請完了
メールで申請内容を確認




ここから数時間から48時間以内に「トランスファー承認手続き」メールを待ちメールが来ればそれに従い移管手続をすすめる。


という事で、本日できることはここまでです。
ムームードメインからの応答がある後日、続けます。
まぁ、一日でサーバの移行やドメインの移管は難しい上にメールの設定や、ネームサーバの設定の影響でNotFoundになるリスクを考えると、サーバ管理を請け負うのは採算が取れない。


それでもクライアントのスキルによってはせざるを得ないことになることがほとんどだと思うので、最初の時点で明確にクライアントのサーバと自社サービスのサーバは分ける方が管理も精神衛生上もいい。
また、再販可能なGMOのレンサバだとしても、年間数千円程度で借りられるのでクライアントにサーバー維持費を請求しても普通に払ってくれる。

サイトの制作者がセコイ根性を出して自社とクライアントを一緒に管理することで年間数千円を節約しようとすると、自分にも制限がかかってしまいクライアントにもリスクを負わすことになるのでお勧めしない。

2014年1月14日火曜日

urlencode

PHP覚書

urlencode(
の文字をブラウザがGETで飛ばす際に自動的にurldecode(するため、文字化けの原因になっている。

セキュリティーの面でも、出来るだけ2バイト文字は使わないか、使う場合は細心の注意が必要。

メンテナンス向上の意味からも設計段階でしっかりと決めておく。

2013年12月13日金曜日

Google 「+post ads」プラスポストアドス

+post adsとは(プラスポストアドスとは)

簡単に言うと、アドセンスの広告枠にグーグルプラスの企業広告を出すというもの。

従来の広告との違いは、企業広告ではなくグーグルプラス内での商品や企業の内容を説明するようなものです。
広告枠が表示されたページから離れることなく「プラス1」や「イイネ」が出来たり、コメントの書き込みで企業とユーザーが繋がれたり、そのままシェアされ拡散したりすることで、よりユーザー主体の広告となるのではないでしょうか。

グーグルのアドセンス広告を利用している一般ウェブサイト内に、グーグルプラスのコンテンツが表示されることで、一般ウェブサイトの一部(広告枠)をグーグルプラスのコンテンツにしてしまう作戦だ。

これによって一般ウェブページに埋め込まれたツイッターやフェイスブックのタイムラインなどで大きく遅れをとっていた部分を、「広告枠をSNSと融合」させることで 新しく一般ウェブサイト内にグーグルプラスを浸透させ、かつ広告が利益を生み出すという離れ業を成し遂げるのかもしれない。

そして、一般のウェブサイトに広告枠を持っていないフェイスブックやツイッターが同様のことはできないので、きっとアドセンスと同様の広告枠を持っている企業の買収するだろう。

関連リンク
https://www.google.com/+/business/brands/ads.html

2013年11月29日金曜日

Stristr 指定文字以降の文字列を取得 PHP

指定の文字以降を取得、指定の文字列以降を取得、指定の日本語以降

stristrは、文字列の中から指定の文字以降を抜き出します。

【今回の目的】
とあるページから店舗名などの情報だけを抜き取りたい

file_get_contents()で、htmlソースを取得。

ここから文字取得の編集にてこずる。
str系の関数がPHPにはたくさん用意されているが逆引きなどではあまり詳しく説明していないので、ウェブの同士にに頼ることに

【結果】
店舗情報は「■店舗名」以降に決まった法則に従って記述されている。きっとDBから呼び出していることが予想できる。


header("content-type: text/plain; charset=UTF8");//文字コード

$f = file_get_contents("http://site.com?id=店舗id"); //

echo stristr($f, "■店舗名");


これでsite.com?id=16ページの「■店舗名」以降を取得。


そして、必要事項だけを抜出して連想配列にする。


<?php
header("content-type: text/plain; charset=UTF8");

$st = file_get_contents("http://site.com?id=16");// 必要なページのhtml取得
$st = str_replace("&nbsp;","",$st);// 不要な記号削除
$str = stristr($st, "■店舗名");// 連想配列の起点0を「■店舗名」に調整する。

$rep = array('【店舗情報】', '■店舗名', '『', '』', '■取扱募集代理店', '■所在地', '■電 話', '■開店日', '■営業時間', '■対応コース', '<br>', "\r", "\n");//連想配列の基本(タイトル作る)

$arr = array();//空箱を作る
$str = str_replace($rep, "\t", $str);//タブ区切り "\t"  カンマ区切り ","

//explode関数は文字列を文字または文字列で分割し配列にして返します。以下に使用例を示します。
foreach (explode("\t", $str) as $val) { if ($val !== '') $arr[] = $val; }

print '<pre>';
print_r($arr);
print '</pre>';
?>

それで、出てくるのが

<pre>Array
(
    [0] => 保険代理店A
    [1] => 東京中央店
    [2] => 株式会社ほけんプラプラ
    [3] => 東京中央区2-2 田中ビル5F
    [4] => 0120-00-0200
    [5] => 2013年3月1日
    [6] => 10:00~18:00
    [7] => ■定休日なし
    [8] => 来店
    [9] => ■URL
    [10] => <a href="http://site.com?id=16">http://site.com?id=16</a>
    [11] => </p>


ここまでくればあとはSQL文に編集してfunctionで必要なid分だけfor or foreachなんかで取得してしまおうってことです。

2013年11月28日木曜日

PHP cURL でページを取得 クロールもできる

一連の cURL cURL_setopt cURL_exec を使ってサイト情報のチェックと、店舗情報ををDBへ放り込む。

1000店ちかくある複数の代理店の、更新店舗と閉店店舗の管理をしている。
代理店統括から来る情報は遅く、各代理店毎に様式が違うので結局は各代理店の新着情報が頼みの綱。

だけど、時々、諸事情により新着に載せずに閉店している店舗があると面倒くさい。
都道府県ごとに店舗数を照らし合わせ、違いのある都道府県から閉店店舗を探し出すという作業。

すぐに見つかれば1時間程度で済むのだが、下手をすると3時間以上かかってしまう。



そこでクローラほど大げさなものでは無いのだが、代理店のショップ番号をcURLで照らし合わせてしまおうというのである。

【前情報 CURL の使い方】

$ch = curl_init(); // cURL使うよー
curl_setopt($ch, 値, TRUEかFALSE) // 設定をごにょる
$curl_exec($ch); // ここで実行
$curl_close($ch); // 俗に言うおまじない

例えばグーグルを拝借
$ch = curl_init(); // 起
curl_setopt($ch, CURLOPT_URL, "http://www.google.co.jp"); // 承
curl_exec($ch); // 転
curl_close($ch); // 結

 ちょっと画像やなんかがおかしいが代理店の情報があるかないかを調べるには十分

ってことで、理屈としては

  1. URLに付けられてる変数「?shop=○○」を1からforかwhileかなんかで新着店舗の500まで回す。
  2. SQL文でDBにあるかを参照
  3. DBに無い場合は追加(代理店サイトも当然プログラムを組んでいるのでhtmlについているid名なりclass名から予測)
  4. こちらが多い場合は削除する
な感じでクラス化しときましょうか。

出来たら追加します。




PHPのリダイレクト 広告管理

metaでrefreashさせて広告のアクセスを見ているサイトを目にする。

どうせならPHPのheader()と合わせて飛び先まで管理した方がいいのではないか。

ウェブ広告のタグがhtmlで管理すると、コピペをしまくると意外に労力がかかり時間もかかる。
人為的なミスも増えるので、広告コードを直接編集するのは極力避けるべきだと思う。