<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.7.1" -->
<rss version="0.92">
<channel>
	<title>Satake Studio Developer's Blog</title>
	<link>http://dev.satake7.net</link>
	<description>サタケスタジオ 開発者ブログ</description>
	<lastBuildDate>Thu, 11 Mar 2010 07:31:03 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Live Commerce備忘録</title>
		<description>
Live Commerce

　
よさそうなところ

多言語対応／多通貨表示機能 
PayPalエクスプレスチェックアウト

　
ダメそうなところ

未完成っぽい雰囲気につきる

 </description>
		<link>http://dev.satake7.net/blog/2010/03/09/302/</link>
			</item>
	<item>
		<title>EC-CUBE備忘録</title>
		<description>
インストールについて
EC-CUBEマニュアルサイトを参考に。
　
その前に PostgreSQLをインストールする。
[Ubuntu] PostgreSQLのインストール・初期設定・使い方メモの通り。
唯一気をつけるところは、初期設定だとログインユーザでないとDB操作できなくなっているので、local all all ident sameuser の上の行に追加。
[code lang="bash"]
$＞ e /etc/postgresql/8.3/main/pg_hba.conf

local all eccube_db_user trust
[/code]
※ もちろん、すべてのユーザを trustしてもいいのだけど、とりあえず限定的に許可。
　
EC-CUBEのマニュアルに php.iniを変更しろと書いてあるけど、.htaccessに書いてあったのでやらなくてもいいみたい。
　
ダウンロードした tar.gz を解凍するとき、tar xpvfz として権限付きで解凍しないと、インストール時にうんざりするくらいパーミッションエラーが出て泣ける。
　
phpPgAdminのインストールと設定をみて、phpPgAdminをインストールしておくと便利。
　
アクセスするドメインを変えるとき
このファイルの中を変えておく。
[code lang="php"]
$＞ e /home/www/your-site/eccube-2.4.3/data/install.php

define ('SITE_URL', 'http://your-url.jp/');
define ('SSL_URL', 'http://your-ssl-url.jp/');
[/code]
　
参考リンク集

ネットショップ開業パックプラン
EC-CUBEの学校
これだけやっていれば、取りあえずは開店できる！
ネガティブ・コメント

 </description>
		<link>http://dev.satake7.net/blog/2010/03/09/301/</link>
			</item>
	<item>
		<title>宅配便料金表</title>
		<description>
クロネコヤマトで宅配便を出すときの料金表（関東発）
ヤマトらくらく家財宅急便の料金表
クロネコヤマト・佐川急便・ペリカン便の荷物追跡サービスURLまとめ



　
 </description>
		<link>http://dev.satake7.net/blog/2010/03/09/299/</link>
			</item>
	<item>
		<title>Mailmanで会員リストをテキストにする方法</title>
		<description>Mailmanの会員管理の会員リスト画面では、登録会員数が多くなるとメールアドレスの先頭1文字ごとのリスト表示になって、すべての会員を一度に見ることができなくなります。
検索を使っても、ほぼ全部が対象になるような『ne\.jp』とかすると、やっぱり、グループ化されたリストになってしまいます。


そういうときは、サーバにログインして次のようにします。
[code lang="bash"]
$ export LANG=C
$ sudo list_members [メーリングリスト名]
[/code]
最初の LANG=C は Mailmanが EUCなので文字化けを防ぐため、英語モードにしています。
list_members の実行は Mailmanのデータベースへのアクセス権があればいいです。
これで、[メーリングリスト名]に所属する会員のメールアドレスが標準出力に出てきます。
export LANG=ja_JP.UTF-8 で UTF-8 に戻すことを忘れずに。
 </description>
		<link>http://dev.satake7.net/blog/2009/10/02/297/</link>
			</item>
	<item>
		<title>sshでログインできないときに疑うべき点</title>
		<description>今日から急に新しい連載をすることにしました。
いつまで続くかわかりませんが、主として Ubuntu Serverでの気づきについてポイントのみ、書いていきたいと思います。（難易度：高）


クライアントで鍵を準備。
ssh-keygenで .ssh/id_rsaと .ssh/id_rsa.pubができるので、scpでサーバへコピーする。
[code lang="bash"]
$ ssh-keygen -t rsa
$ scp -P 22 .ssh/id_rsa.pub Server-IP-Address:~/
[/code]
　
サーバ側の作業。
.ssh/authorized_keysに公開鍵を追加しておく。
[code lang="bash"]
$ cat id_rsa.pub >> .ssh/authorized_keys
[/code]
　
普通はこれでログインできるはずだが、エラーがでたときに疑うべきところ。
[code lang="bash"]
$ ssh -p 22 user@server-name
A) ssh: connect to host server-name port 22: Connection refused 
B) Permission denied (publickey).
[/code]
　
A)の場合

クライアントの /etc/hostsを疑う。server-nameが名前解決できてないかも。
サーバの sshd が立ち上がっていない。
ルータの port forwardが正しくできていない。
サーバの /etc/ssh/sshd_configの ListenAddressで制限されている。
サーバの /etc/hosts.allowで制限されている。

　
B)の場合

サーバの .ssh/authorized_keysが間違っている。

 </description>
		<link>http://dev.satake7.net/blog/2009/10/01/292/</link>
			</item>
	<item>
		<title>コメント・スパム対策</title>
		<description>いままでまったくといっていいほどこなかったコメント・スパムが突然多量に、それも数百オーダーで来るようになりました。
Akismetを導入しているので、自動的にスパムフォルダへ振り分けられて実害はないのですが、毎日スパムが数百ずつ増えるのを見るのもうんざりですし、もしこの中に間違ってスパムじゃないコメントがまぎれていたとしても、目視で確認することは事実上不可能です。


■ Comment-Policy
ということで、Comment-Policyというプラグインを導入することにしました。
Comment-Policy WordPress Plugin のページなかほどの「Download」から「comment-policy.zip」を
ダウンロードして、必要なところを書き換えます。変更箇所のみ抜粋。
[code lang="php"]
$cp_form_field_name = 'anynamewithletters';
[/code]
チェックボックスの nameをここで指定した適当な文字列に Javascriptで置き換えます。スパムボットが
 HTMLを読んでチェックボックスにチェックを付けようとしても、ロード時に nameを変えているので無効になるという対策ですね。
ですから、ここをデフォルトの 'anynamewithletters'にしておくのは、あまりよろしくないと思いますから変えておきましょう。（スパムボットが scriptを読んで動作したら意味ないですが）
　
[code lang="php"]

  
  チェックを入れてから送信してください。

[/code]
使うテーマによって、input要素を「width:100%」にしてあることがありますので、「width:auto」に指定しなおしておきます。（そうしないとチェックボックスとラベルが改行されてしまう）
ラベルのところに元々は「Comment Policy」へのリンクがあったのですが、今回はただのスパム避けなので、チェックを促す文字列にばっさり書き換えてしまっています。
　
[code lang="php"]
if ( '1' != $userterms ) {
//  header("HTTP/1.1 403 Forbidden");
  die( __('チェックを入れてからコメントを投稿してください。') );
}
[/code]
チェックボックスにチェックを入れないで送信しようとしたときのエラー表示です。こちらも大胆に書き換えました。適用させるスタイルは適当に。
「header("HTTP/1.1 403 Forbidden");」があると、403エラーページを表示してしまうテーマがあったので、コメントアウトしてしまいました。なくても特に問題なさそうです。
■ まとめ
以上、換骨奪胎というか改悪に近い形での変更ですが、コメントスパム避けに特化すればということでお許しください。
これを導入してからコメントスパムがぴたっとこなくなりました。すごく効果ありますよ、これ。














 </description>
		<link>http://dev.satake7.net/blog/2009/05/22/283/</link>
			</item>
	<item>
		<title>WordPressの Upload設定</title>
		<description>WordPressで大きなファイルをアップロードしようとして躓いたので（つまづくという読みに躓かないように）、対処方法をメモしておきます。


■ エラー
15MB程度のファイルをアップロードしようとすると、『このファイルは大きすぎます。php.ini で設定されている upload_max_filesize は 2M です。』というようなエラーが出ます。
サーバの /etc/apache2/php.ini の該当箇所（upload_max_filesize）を 30Mに修正して、/etc/init.d/apache2 restart で Apacheを再起動しても、やはりエラーは変わりません。
Flashアップローダーのせいかなと思って、ブラウザのアップローダーを使ってみましたが、そうするとこのエラーは出ないものの、別のエラー画面が出てしまってアップロードできません。
■ 対処
php.iniの post_max_sizeも合わせて広げておかないといけないようです。初期設定が 8Mになっていましたので、これを 60Mにしておきました。
[code lang="bash"]
upload_max_filesize = 30M
post_max_size = 60M
[/code]
初期設定の比率でいくなら、30M → 120Mにしないといけないところですが、倍くらいとっておいたらいいんじゃないでしょうか。Apacheを再起動させてもう一度やってみるとうまくいきました。
■ 参考
WordPressでのuploadエラー

 </description>
		<link>http://dev.satake7.net/blog/2009/05/21/278/</link>
			</item>
	<item>
		<title>OP25B対策</title>
		<description>イー・モバイルからお知らせが来て、6/16から迷惑メール対策（Outbound Port 25 Blocking：OP25B）が始まるとのこと。いま使っているプロバイダ（ZOOT）では余計なフィルタがかからないため、SMTPは 25を使っていたのですが、イー・モバイルで外部からメールが送れないとすると不便この上ないので、いよいよ本腰を入れて代替ポート（587）対応をしないといけません。


■ ルータ（RT-200NE）設定
パケットフィルタ設定と静的IPマスカレード設定を行ないます。（画像はクリックすると大きくなります）

１．パケットフィルタ設定で代替ポート（587）を通してやります。&#160;
２．静的IPマスカレード設定で振分け先を設定します。
■ Postfix設定
代替ポート（587）を使用するためには、SMTP-AUTH対応を行なっていなければいけないのですが、外部からの SMTP接続を許すということは、当然そういう対処は済んでいるでしょうということです。うちのサーバでも外部から接続できるようにした時点で Submissionポート（587）が使用可になっています。
/etc/postfix/master.cf
[code lang="bash"]
smtp       inet n      -       n       -       -      ...</description>
		<link>http://dev.satake7.net/blog/2009/05/21/246/</link>
			</item>
	<item>
		<title>WordPress MU 2.7.1のカテゴリースラッグ</title>
		<description>WordPress MU 2.7 から 2.7.1 へバージョンアップしたところ、またもやカテゴリースラッグ（slug）の変更ができなくなってしまいました。
2.7.1 ではもしかするとデフォルトで変更できるようになっているかも、という淡い期待がありましたが、そんなことは露ほどもなく、2.7 より徹底的にできなくしてありました。


■ 2.7と2.7.1の違い
2.7 では、カテゴリースラッグが一応クイック編集で変更できるようになっていて、それがカテゴリー名をサニタイズしたもので上書きされてしまうというものでした。
2.7.1 では、クイック編集からも外されてしまっています。
■ なぜ、MUだけこういうことをするのか
WordPress MU › WordPress MU Forums » Category Slug の MrBrian の回答によると、よくわかんないらしい。

My guess is it's a security risk, but I don't know why. There are several differences between normal Wordpress and WPMU for security reasons (such as being able ...</description>
		<link>http://dev.satake7.net/blog/2009/05/20/229/</link>
			</item>
	<item>
		<title>ImageRotate()を使えるようにする</title>
		<description>携帯から投稿するプラグイン（Ktai Entry）を試していたところ、携帯で撮った写真をローテートする指定を付けるとサーバで受付時にエラーになることがわかりました。


■ 原因は？
どうやら、Ubuntuにもとから入っている PHPの GDライブラリでは ImageRotate()関数が使えなくしてある模様。詳細はよくわかりませんが、ImageRotate()にセキュリティホールがあるようです。セキュリティレポート等を見ると、このようになっています。
PHPをApacheモジュールで共有型ホスティングサービスを利用しているユーザに影響します。SSLを利用している場合は秘密鍵を盗まれます。
Satake Studioの場合、ホスティングはしていますが、ユーザIDを出して自由に使っていただく共有型ではないので、このケースには該当しないようです。
■ 対策
筋がいいのは、Ubuntuにもとから入っている GDはそのままにして、使うところ（WordPressの wp-includesなど）で ImageRotate()関数だけを追加することですが、やってみたところ、関数を定義すると今度は Imagick()がないなど、なかなか一筋縄ではいかないようです。
深追いしてもいいことはなさそうなので、次善の策、PHPのバンドル版のインストールをやってみます。
■ PHPをソースから入れる
手順は次の通りです。
[code lang="bash"]
$ mkdir ~/deb
$ mkdir ~/deb/php5
$ cd ~/deb/php5
$ aptitude update　　　　　　　 ← apt-getでエラーが出たため
$ sudo apt-get build-dep php5　　← あとで足りないと怒られた
$ sudo apt-get install devscripts　← 　　〃
$ sudo apt-get install fakeroot　　← 　　〃
$ sudo apt-get install shtool　　　← 　　〃
$ apt-get source php5
$ cd php5-5.2.4/
$ e ...</description>
		<link>http://dev.satake7.net/blog/2009/04/23/194/</link>
			</item>
</channel>
</rss>
