ホームページ制作の最近のブログ記事

エクスポート機能の無いアメブロから、wordpressへのブログ引っ越しの手順をメモしておきます。

大まかな手順としては、

アメブロからFC2へ一旦お引っ越しの機能を使ってバックアップし、FC2からwordpress形式でデータのバックアップを排出し、それをwordpressに取り込みます。


FC2に申し込むタイミングでお引っ越しツールが利用できます。
先にアカウントを開設してしまったら利用できないと思うので注意。

まず、準備としてアメブロのテンプレートと日付の形式を変更しておきます。

1.アメブロのスキン設定 : シンプル→ベーシックグレー
2.日付の表示方法 : XXXX-XX-XX XX:XX:XXの形式

その他、アメブロのアカウント情報など、必要事項を入力して申し込み登録します。

その後1日ぐらい経過して、登録メールアドレスに引っ越し完了のお知らせが来ます。
これで第一段階の引っ越しは完了。

次にFC2からwordpressへ引っ越し。

FC2にはデータバックアップという機能があるので、そこで記事データをダウンロードする。今回記事の数が多く5MB弱ありましたがダウンロードできました。

画像は一つずつダウンロードすることになります。
1ページ当たり100枚ずつに分かれて画像が表示されるので、Chromeのオプション機能、Image Downroaderというのを追加してダウンロードします。
ダウンロードしたい画像が表示されているバックアップページを開いた状態でこのオプション機能のボタンを押すと、全画像ファイルをダウンロードフォルダに自動でダウンロードしてくれるとっても便利なオプションです。

30ページほどに分かれていたのでそこそこ大変でした。

ダウンロードしたファイルをwordpressのルートにあるwp-contentフォルダの中にuploadsというフォルダを新規作成し、そこにFTPでがっさりアップします。

その後、記事データの画像ファイルパスを新サーバのURLに一括変換。

記事データの中にひとつ厄介な事があります。コメントデータのパスワードです。
今回は10件やそこらのコメントデータしかなかったので、
SECRET: 0
PASS:
という部分は手動で消しました。

wordpressにはツールのところにインポート機能があって、「Movable Type and TypePad」というプラグインをインストールして使います。

記事データをアップするのですが、最大サイズ: 2 MBなので、適当に記事データを3分割し、3回に分けてアップしました。

特に問題も無く順調に引っ越す事が出来ました。


何度やってもしばらく時間が空くと忘れちゃうよね…

納品書にお届け先の住所を入れたいので、
ご注文者情報を削除してそこに入れました。


data/class/SC_Fpdf
お届け先情報の下辺りに、詳細を取得する行を追加。

$objShip = new SC_Helper_Purchase_Ex();
$this->arrShip = $objShip->getShippings($this->arrDisp['order_id']);

あとは、表示位置の調整をしながら指定するだけ。


参考サイト:http://戯れ問答.net/ec-cube/ec-cube211/555/

IFTTT での WordPress のアクティベートができない。
Xserverを利用している場合できないという記事を数件発見する。


プリントされた設定ファイルをぼんやり眺めてるとXserverのServerPanel左メニューに
「WordPressセキュリティ設定」
というのを見つけた。

国外IPアクセス制限設定というのがありました!

解除して無事アクティベート完了。

postgreSQLからmysqlへの移行で気を付けたい点

postgresqlで、ある小さなシステムを構築準備してました。
現状あるシステムをそちらに載せ変えるという事で、
既存のデータをそのまま使いたい。

最初に確認しておけばすんだ事だけど、postgresのDBエンコードがEUCで、
変更できない事がデータの移行テストの段階でわかった。
新規DB作成も許可されていなかった。

元のシステムがUTF8なので、機種依存丸付き文字がばんばん使われている。
それをそのまま使えるようにしたいし、新しい入れ物はUTF8でないといけない。

mysqlなら新規DBも作成できるし、そもそもUTF8だったので、
急遽つくりかえることにした。

その際、種々の問題が発生したので覚え書きを残しておく。

■データ型
timestump型はdatetime型にする。
(複数カラムあるため)

■php
関数名を「pg_」から「mysql_」に置換

mysql_fetch_objectは行番号指定で取得できないので、
mysql_data_seekでポインタ位置を指定する。

■福問い合わせ
サブクエリがまず展開されるので、サブクエリに無用な結果が含まれると
総当たりとなり、膨大になる。(反応遅い)
サブクエリのSELECT文はできるだけ条件を入れた方が良い。

UPDATE a_table,(SELECT * FROM b_table)o_table SET a_table.name=o_table.oldname where a_table.code=o_table.code and o_table.num=1;

UPDATE a_table,(SELECT * FROM b_table where num=1)o_table SET a_table.name=o_table.oldname where a_table.code=o_table.code;

■mysqlでは正規表現による置換が出来ない
これは面倒だったし、今回はpostgresに持ってって処理した。
ある特定の文字に挟まれた数値データをとりだしたかっただけなので、
それでいけたけれど、文字コードに影響される様な文字列だったらそれはできないし、
ステップ踏むしかないかな。
phpでREGEXPとREPLACEを使って置換する方法をとるとか。

以上、私のメモ書き。
素人なので表現や方法が間違ってるかもしれません。


昔は丸付き文字なんか、利用者の方に制限させて、
文字化けしたら利用者のせいにするとか普通だったけど、
今は丸付き文字も機種依存文字も使うもんね。
私は今も使わないけど。

これまで、引っ越しの際に必ず浸透問題うんぬんと言われていたけれど、
必ずしもそうとは限らない。
余裕があれば回避できる。

1)ネームサーバーが別の場合

旧サーバにてドメイン管理&ネームサーバをレンタルしている。

ドメインを新サーバとは切り離したサービスに移管&ネームサーバレンタル、
旧サーバ向けゾーン情報を設定し、新ネームサーバに切り替える。

平行して新サーバでのコンテンツやアカウントの設定を準備しておく

新しいネームサーバに完全に切り替わった後、
都合の良い日を設定し、ゾーン情報を新サーバ向けに設定。

TTLを短めに設定していれば、すぐに切り替わる。

TTLが短すぎるとリスクがある様なので、
切り替わった後、設定し直す方が良いのかもしれない。

ネームサーバが別サービスであるか、新サーバのゾーン設定の自由度が高くないとできない。

ネームサーバは別に用意しておいてなるべく変更しないというのが理想かもしれない。
webサーバやメールサーバの引っ越しの際、
ネームサーバの変更が無ければ、ゾーン情報の書き換えだけで済み、早ければ数分で切り替わる。

TTLの設定は、サービス会社によって対応が変わってくる。
自由に設定できる手段が無ければ、申請して2〜3営業日とか、何万円とか言われる場合もある。

ドメインの管理はホスティング会社の付属サービスを利用するのではなく、
独立していた方が良いと、つくづく思いました。

iphoneとかでFlashコンテンツがみれないので、
代替コンテンツを用意して、
Javascriptで切り替える。

条件分岐とdocument.write


if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) {
document.write('Flashの代替コンテンツ');
} else {
document.write('Flashコンテンツ');
}

MT/MySQLの引っ越しの手順

MTが使用しているDBをダンプ

ダンプにとくに設定機能はなかったので、
一度、別サーバーのDBにリストアし、
都合の良い形にダンプし直す。

自社サーバーにアップし、
作成するクエリの最大長を300にしてエクスポート

新サーバーは大きいファイルがダンプ出来ないため、
bigdumpを使用する。
http://www.ozerov.de/bigdump/

http://新しいサーバー/sql/bigdump.php

phpmyadminの画面からは日本語テキストが化けていないが、
MTの管理画面では化けている。
どいうこと??

ご利用環境の Perl のバージョンに依存して発生する現象となります。Perl 5.6.1 の環境において、Movable Type 4.2 以降のバージョンへのアップグレード、または新規インストールを行った場合に発生します。下記のリンクから、ファイルをダウンロードし適用することで、問題を回避することができます。

MT4.2-Perl5.6.1Patch.zip

適用方法:
 
ダウンロードした zip ファイルを展開
 
サーバー上の以下のパスが指すディレクトリ内のLocaleディレクトリを削除
(Movable Type 4.2 をアップロードしたディレクトリ) /extlib
zip ファイル展開後のextlib内にあるLocaleフォルダを、上記extlibディレクトリ以下にアップロード

解決した!


文字コードの問題は大変厄介。
DB作る際に、最初からきっちり文字コードを指定しておかないと
余計な手間がかかるので注意しなくてはいけない。

/data/class/pages/shopping/LC_Page_Shopping_Complete.php

に、在庫数が少ない場合の分岐とメール送信の記述を追加した。
残り何個で送信するかは、この部分の数値を変更する。
忘れない様メモ。

CPIサーバへEC-CUBEインストールで詰まった。

必要なファイルをサーバーに転送後、
php.iniの設定をし、インストールを開始。

アクセス権限のチェックはOK。

必要なファイルのコピーを開始します。
の次に、下記エラーがでる。
Call to undefined function mb_ereg()

でも、ちゃんとmbstringは組み込まれているし...


いろいろ調べていると、どうやらディレクトリの位置の問題らしい。
一つ階層を下げていたのをやめてwebルートに直接入れる事で解決。

何度やっても忘れるので記録しておきます。

Automator起動

Finder 項目の選択を求める
(複数選択を可能にするにチェック)

PDF ページを結合
(ページを追加していくにチェック)

Finder 項目を移動

Finder 項目の名前を変更

Googlemapを携帯で公開するため、 Google Static Maps APIを使ってみましたが、
http://googlejapan.blogspot.com/2008/03/google_1433.html

PCでは正常に表示されるものの、携帯(au)で表示されません。

動的なところがマズいのかといろいろためしたものの駄目でした。

一晩置いて、わかりました。
タグのなかに改行コードがあったというのが原因でした。
改行コード取ってテストしてたつもりがまだ1カ所残っていたでの気がつきませんでした。
つまらない失敗です。
検索してもなかなかページがなかったのでメモっておきます。

携帯ではGoogleの地図が画像として表示されるだけなので、
拡大縮小を変数で渡して対応するようにしました。

作業メモ:

pdf 結合 macでググるとでてくる。
OS X 標準アプリの「Automator」で自動化処理を自分で作成。
選択したファイルを、結合し、保存する流れを組む。

受注確認メールや問い合わせ確認メールを自動送信する際、phpよりmail関数を使用して送信すると、X-Authentication-Warningフィールドが自動で付加されてしまい、 メールサービスによっては届かない事がある(らしい)。
迷惑メールとみなされるのかな。

そこで、
/etc/mail/submit.cfの Trusted usersにTapacheを追加。
submit.cfを保存し、
make submit.cfを実行して、sendmailを再起動。

X-Authentication-Warningがつかなくなりました。

この日記が文字化けして読めないという事ですので、確認しました。
やはり文字化けしています。

ちゃんとEUCで書き出して METAの宣言もEUCになっているのに化けます。

そこで.htaccessで強制的にcharsetしました。

AddType "text/html; charset=EUC-JP" .html

これでうまくいきましたでしょうか。

どうでしょう?

phpで次ページを表示する方法は前に見た事があるけど、
静的に出力したかったので、調べると便利なプラグインがあった。

PageButeというプラグインで、

簡単に実現できた。


<MTPageContents count="12">
<MTEntries>〜エントリー出力部分〜</MTEntries>
</MTPageContents>

<!--// ナビ部分 //-->
<MTIfPageBefore><span><$MTPageBefore delim="前の12件"$></span></MTIfPageBefore>
<$MTPageLists$>
<MTIfPageNext><span><$MTPageNext delim="次の12件"$></span></MTIfPageNext>
<!--// ナビ部分ここまで //-->

phpMyadminからsqlコマンドのフォームにcreate文をいれ、テーブルを作成。

データのインポートでひっかかった。

「LOAD DATA する CSV」を選択し、実行。
インポートするファイルの文字コードと改行コードの問題だったようで、
EUCの改行コードがCRLFだったのがマズかったみたい。
LFに保存し直したらうまくいった。

ほっと一安心。

テーブル構造は取得できたので、内用をcsvファイルに書き出す。


// 定義
$dir = '/backup/'
$mcsv = 'table';
$my_table = 'my_table';
// $my_tableテーブルを呼び出す
$rs = mysql_query("SELECT * FROM ".$my_table);
// $my_tableテーブルのフィールド数
$fields = mysql_num_fields($rs);
if(!$fields) return;
// ループ処理
while($row = mysql_fetch_array($rs)) {
for($j=0; $j<$fields; $j++) {
// $dataにデータを蓄積
$data .= '"'.addslashes($row[$j]).'"';
if($j<$fields-1) $data .= ',';
}
$data .= "\n";
}
// $dataから余計な文字列を取り除く
$a = substr($data, 0, 5);
if($a == 'Array') $data = strstr($data, 'Array');
// CSVファイルを呼び出す(※なければ新たに作成)
$fp = @fopen($dir.$mcsv.".csv", "a");
// CSVファイルに$dataを追加挿入
@fputs($fp, $data);
// CSVファイルを閉じる
@fclose($fp);

うまく書き出せた。件数は多くなかった。
機種依存文字がある...。

次は新サーバでの設定。

ターミナルからdumpが使えない場合の引っ越し手順覚え書き。

今回の移転作業は、移転もとの DBが業者の専用の物であり、他のクライアントと共用であると推測されるため、このような手順をとる。

MySQLDump 2.0というクラスをダウンロードし、phpファイルから実行するとdumpファイルを出力するというもの。

でも、なぜかこれができなかったので、手動で情報を取得する。

まずテーブルのリストを取得。


$dbname = 'mysql_dbname';

if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
echo 'Could not connect to mysql';
exit;
}

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
echo "DB Error, could not list tables\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}

while ($row = mysql_fetch_row($result)) {
echo "Table: {$row[0]}\n";
}

mysql_free_result($result);


幸いにも2個しかテーブルが無いようだ。

テーブルの構造を取得

$result = mysql_query("SHOW COLUMNS FROM sometable");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
print_r($row);
}
}


後はselect分でcsvを吐き出して、それを取り込むか。続きは明日。

詐欺まがいのホームページビジネスのニュースがありました。
総額170万円の5年リース契約で、ちょっとしたホームページを作った後、変更や修正等希望しても聞いてもらえず、リースだから途中解約できない、という事例でした。


--均等割すると1月当たり2.8万円の契約ということになる。---


その3〜4日後、取引先のクライアントが同様の契約を結びかけて直前に回避できた事例も伺いました。(月額5万の5年契約)

昨日もホームページのだいたいの費用を教えてほしいと知人から聞かれたのですが、
ホームページを持つ目的によって費用は様々になり、ざっくりと出す事は難しいのです。

ホームページビルダーでちょちょっと作ったらできてしまう様な印象をもってらっしゃる方も多いかもしれません。
とりあえず、誰がみるという訳でもなく存在すればいいんだ。という様な場合はそれで十分でしょう。

でも、ホームページを維持するには最低でも年間数千円〜数万円のレンタルサーバー代金などの費用が発生します。

意味なくホームページを作っても、そういったレンタルサーバ代金を捨てている様なものです。

ホームページはなんらかの目的を達成する為に作られるものであり、見てもらえないとなんの価値もありません。

しかも、ホームページは路面店の様にオープンしただけで人が来るというものではないので、なにもしなければ一人もやって来ないホームページとなります。

お金を出せば人が訪問する低価格から始められる広告も多種ありますが、人が来てもホームページの訴える力がなければ、わずか3秒で立ち去っていきます。

まず、(目的を達成する)効果のあるホームページを作る事が1番大事で、
それと同時に集客方法を確立する事。
そして、それらを維持運営する事です。

簡単に効果のあるホームページと言っても、何の為のホームページか、何を伝えたいのかによっても変わってくるので、訴える内容を深く研究する必用があります。
ホームページをきらびやかに作る技術だけあっても駄目なんです。

深く研究するには時間と努力が必用です。
(相性もあると思います。)

また、効果のあるホームページを作る為には画像加工ソフト、レイアウトソフト、フォント、カメラ、スキャナ、プリンタ、などなど、総額100万円を超えると思われる投資が必用です。

そして費用の中心となるのは、ホームページ制作に携わる人たちの人件費です。

優秀な人材の賃金、優秀とまでは行かなくても平均的な人件費として、去年ウェブ系雑誌で調査された結果によると、月収で33万円程度。

以前勤めていた会社では一人当たりの制作ノルマが最低80万円でしたから、20日勤務で1日当たりのノルマが4万円となります。

月収33万円の人材を抱える為に、80万円でやっていけるかどうかは会社にもよると思いますが、経験上このくらいで妥当だと思います。

物を仕入れて売る時、仕入れ価格がどのくらいだったらうれしいですか?
人材の場合は教育や保険、道具など付随する負担が大きくなります。

で、話があちこちになってしまいますが、
1日当たり4万円として、単純にページ作りをどのくらいこなせるかという話です。

仮に A4程度のレイアウトだとしましょう。

コーディングに長けた優秀なデザイナー(大規模な制作会社の場合、デザイナーとコーダーは分業になりますが、小さい会社では兼業です)が印刷物で使用したデータを流用してつくるとして、画像加工、チェックなども含め3〜4時間。

多く見積もってもせいぜい1日当たり3ページでしょう。

もちろん、パターン化された物なら、10や20ページこなす場合もあります。

ということでだいたいのページ単価というものが見えて来ます。

この話ってと〜っても長くなりそうですね。
項目別に分析していく方がいいかもしれません。

でもここで一旦結論!

だいたいホームページを作るには20万円〜80万円ぐらいの初期費用がかかり、大規模な物だと1000万円というものもあると思いますが、それ以上の物はほとんど、商品撮影やシステムにかかる物であり特殊なケースだと思います。
(私の関わる規模ではございません)

保守にどれくらいかかるの?という問いに対しては、
20万円〜80万円規模の場合、
ドメイン、レンタルサーバに5千円〜1万円/月額
ホームページの更新内容や頻度によって月額保守費用は様々ですが、
自分で更新できる仕組みを用意し、それで補うという方も多いです。
(ブログなど利用するケースが増加中)

そして、冒頭のリース契約の料金について私の意見を述べますと、

保守として、ホームページの変更や更新内容を伺い手配するのは、ディレクターまたは営業(小規模の場合、兼業する事が多い)がするのであって、
彼らのノルマから考えると、ノルマが最低でも100万/月として(ちょっと少なすぎる?)1日当たりノルマ5万円以上となり、

1回訪問してとりまとめや連絡や手配やなんやかんやで1日かけて、それで5万円。

リース契約の2.8万円は安すぎて、とても営業活動もできないし、ページを作るにもその金額では新規追加はできない。

まして、初期にホームページを作る為の金額(最低でも20万円)はどこから捻出できるのか。

5年で総額170万円。

したがって、そんなリース契約で効果のあるホームページが作られるはずも無く、ちゃんとした会社であればあるほど、その金額設定は安すぎておかしい。

そしてもう一つ。
5年縛りは、注意!インターネットの世界は日々進歩しており、2年後にはホームページが古くなってしまいます。見れなくなるとはいいませんが、効果が薄れてくると言えます。

ホームページの賞味期限は業界にもよりますが2年と考えるのが妥当でしょう。

今までに無くだらだらと書いてしまいましたが、
後日項目別に書き直したいと思います。

皆様がどうか詐欺まがいの業者にあたりませんように。

「ホームページ リース契約」で検索してみてください。

history.back() や ブラウザの戻るボタンで前のページへ戻ろうとすると、

警告 : ページの有効期限切れ

と出ることがあります。

前に閲覧していたページがフォームデータの送信によって作られたページの場合によくおこる様です。(検索結果、お問い合わせフォームなど)

今回の場合、再読み込みを強制させることで何とかなった様です。
session_cache_limiter('private, must-revalidate');

営業日のお知らせのため、テーブルでカレンダーを作る事がよくありますが、毎回手打ちして作るのはナンセンスだと思い、カレンダー出力のphpを作りました。



とりあえず、表示するだけのものです。

これに独自の休日や日本の祝日等を入れられる様にしたら便利ですね。
今後の課題です。
今時、UTF-8が主流ですが、EUC-JPへとMovable Type運用途中で無理に変更しました。

まず、UTF-8と記述されている部分をすべてEUC-JPに置換。
(この作業をローカルでやったのは時間がかかって失敗でした。)
→FTPで上書き


その後、
ターミナルより、nkfで文字コードの変換。
$find -name '*.php' | xargs nkf --overwrite -w
$find -name '*.pm' | xargs nkf --overwrite -w
$find -name '*.cgi' | xargs nkf --overwrite -w

ブログのテンプレードはまだデフォルト状態だったので、初期化する。
(今思えば、「.tmpl」の文字コードも変換しておけば良かったのかもしれません。)

そして記事自体の文字コードの問題があり、
保存できなくなってしまったため、
まだ記事数が少なかったので、1つずつ再投稿するローテクで復元。

文字コードは計画的に事前に決めておきたいものです。
別サーバで動いていたデータベースをdumpし、
不要な部分を排除してリストアしようとした時、

エラーとなりました。

ユーザーが無い場合等、出る事があるというのを見たので、
オーナーの部分を修正し、やり直すも、

エラー。

いろいろ調整してみても、エラー。

落ち着いてじっくり見ると、そもそも間違っていました。

psql database < dumpfile
とするところを、
pg_dump database < dumpfile
としていたのでした。...orz

(言い訳)
データベースのリストアなんて、
する機会も少ないし、
自分では滅多にしないからです。
人に頼らず、なんとか自力で開発中、

いろいろ試すも、
Ident authentication failed for user
なるエラーがでて手こずった為、ここに記録。

ユーザを新しく作ってデータベースに権限を追加。

postgresql.confに
tcpip_socket = true
を追加。

pg_ctl restart

pg_hba.confを書き換える。

local databasename username password
host databasename username 127.0.0.1 255.255.255.255 password

これで良いのかどうか...。
service postgresql restart

TCP/IP ソケット経由の場合、下記のようにして接続テストを行う。

psql -h 127.0.0.1 -d databasename -U username

うまくいった様です。

ほぼ1日はまりました...orz

ウェブページ

Powered by Movable Type 4.13

このアーカイブについて

このページには、過去に書かれたブログ記事のうちホームページ制作カテゴリに属しているものが含まれています。

前のカテゴリはヘナです。

次のカテゴリはリンクです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。