<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Satake Studio Developer's Blog</title>
	<atom:link href="http://dev.satake7.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://dev.satake7.net</link>
	<description>サタケスタジオ 開発者ブログ</description>
	<pubDate>Thu, 11 Mar 2010 07:31:03 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Live Commerce備忘録</title>
		<link>http://dev.satake7.net/blog/2010/03/09/302/</link>
		<comments>http://dev.satake7.net/blog/2010/03/09/302/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 20:50:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://dev.satake7.net/blog/2010/03/09/302/</guid>
		<description><![CDATA[
Live Commerce

　
よさそうなところ

多言語対応／多通貨表示機能 
PayPalエクスプレスチェックアウト

　
ダメそうなところ

未完成っぽい雰囲気につきる

]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://www.live-commerce.com/" target="_blank">Live Commerce</a></li>
</ul>
<p>　<br />
よさそうなところ</p>
<ul>
<li>多言語対応／多通貨表示機能 </li>
<li>PayPalエクスプレスチェックアウト</li>
</ul>
<p>　<br />
ダメそうなところ</p>
<ul>
<li>未完成っぽい雰囲気につきる</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://dev.satake7.net/blog/2010/03/09/302/feed/</wfw:commentRss>
		</item>
		<item>
		<title>EC-CUBE備忘録</title>
		<link>http://dev.satake7.net/blog/2010/03/09/301/</link>
		<comments>http://dev.satake7.net/blog/2010/03/09/301/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 20:42:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://dev.satake7.net/blog/2010/03/09/301/</guid>
		<description><![CDATA[
インストールについて
EC-CUBEマニュアルサイトを参考に。
　
その前に PostgreSQLをインストールする。
[Ubuntu] PostgreSQLのインストール・初期設定・使い方メモの通り。
唯一気をつける [...]]]></description>
			<content:encoded><![CDATA[<div style="width:700px;">
<h3>インストールについて</h3>
<p><a href="http://wiki.ec-cube.net/" target="_blank">EC-CUBEマニュアルサイト</a>を参考に。<br />
　<br />
その前に PostgreSQLをインストールする。<br />
<a href="http://itmst.blog71.fc2.com/blog-entry-45.html" target="_blank">[Ubuntu] PostgreSQLのインストール・初期設定・使い方メモ</a>の通り。<br />
唯一気をつけるところは、初期設定だとログインユーザでないとDB操作できなくなっているので、local all all ident sameuser の上の行に追加。</p>
<pre class="brush: bash">
$＞ e /etc/postgresql/8.3/main/pg_hba.conf

local all eccube_db_user trust
</pre>
<p>※ もちろん、すべてのユーザを trustしてもいいのだけど、とりあえず限定的に許可。<br />
　<br />
EC-CUBEのマニュアルに php.iniを変更しろと書いてあるけど、.htaccessに書いてあったのでやらなくてもいいみたい。<br />
　<br />
ダウンロードした tar.gz を解凍するとき、tar xpvfz として権限付きで解凍しないと、インストール時にうんざりするくらいパーミッションエラーが出て泣ける。<br />
　<br />
<a href="http://d.hatena.ne.jp/elsal/20090409/1239283108" target="_blank">phpPgAdminのインストールと設定</a>をみて、phpPgAdminをインストールしておくと便利。<br />
　</p>
<h3>アクセスするドメインを変えるとき</h3>
<p>このファイルの中を変えておく。</p>
<pre class="brush: php">
$＞ e /home/www/your-site/eccube-2.4.3/data/install.php

define (&#039;SITE_URL&#039;, &#039;http://your-url.jp/&#039;);
define (&#039;SSL_URL&#039;, &#039;http://your-ssl-url.jp/&#039;);
</pre>
<p>　</p>
<h3>参考リンク集</h3>
<ul>
<li><a href="http://www.who.ne.jp/service/shop/ec-cube.html" target="_blank">ネットショップ開業パックプラン</a></li>
<li><a href="http://www.eccube-school.jp/" target="_blank">EC-CUBEの学校</a></li>
<li><a href="http://www.tokihouse.com/ec-cube/" target="_blank">これだけやっていれば、取りあえずは開店できる！</a></li>
<li><a href="http://d.hatena.ne.jp/zan-gyo/20090602/1243923480" target="_blank">ネガティブ・コメント</a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://dev.satake7.net/blog/2010/03/09/301/feed/</wfw:commentRss>
		</item>
		<item>
		<title>宅配便料金表</title>
		<link>http://dev.satake7.net/blog/2010/03/09/299/</link>
		<comments>http://dev.satake7.net/blog/2010/03/09/299/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 20:04:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://dev.satake7.net/blog/2010/03/09/299/</guid>
		<description><![CDATA[
クロネコヤマトで宅配便を出すときの料金表（関東発）
ヤマトらくらく家財宅急便の料金表
クロネコヤマト・佐川急便・ペリカン便の荷物追跡サービスURLまとめ

　
]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://www.kuronekoyamato.co.jp/estimate/kanto.html" target="_blank">クロネコヤマトで宅配便を出すときの料金表（関東発）</a></li>
<li><a href="http://www.008008.jp/kazai/service/rate.html" target="_blank">ヤマトらくらく家財宅急便の料金表</a></li>
<li><a href="http://hoshiya.biz/2009/09/url.html" target="_blank">クロネコヤマト・佐川急便・ペリカン便の荷物追跡サービスURLまとめ</a></li>
</ul>
<p>　</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.satake7.net/blog/2010/03/09/299/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mailmanで会員リストをテキストにする方法</title>
		<link>http://dev.satake7.net/blog/2009/10/02/297/</link>
		<comments>http://dev.satake7.net/blog/2009/10/02/297/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 19:40:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[WP Tips]]></category>

		<guid isPermaLink="false">http://dev.satake7.net/blog/2009/10/02/297/</guid>
		<description><![CDATA[Mailmanの会員管理の会員リスト画面では、登録会員数が多くなるとメールアドレスの先頭1文字ごとのリスト表示になって、すべての会員を一度に見ることができなくなります。
検索を使っても、ほぼ全部が対象になるような『ne\ [...]]]></description>
			<content:encoded><![CDATA[<p>Mailmanの会員管理の会員リスト画面では、登録会員数が多くなるとメールアドレスの先頭1文字ごとのリスト表示になって、すべての会員を一度に見ることができなくなります。<br />
検索を使っても、ほぼ全部が対象になるような『ne\.jp』とかすると、やっぱり、グループ化されたリストになってしまいます。<br />
<span id="more-297"></span></p>
<div style="width:700px;">
そういうときは、サーバにログインして次のようにします。</p>
<pre class="brush: bash">
$ export LANG=C
$ sudo list_members [メーリングリスト名]
</pre>
<p>最初の LANG=C は Mailmanが EUCなので文字化けを防ぐため、英語モードにしています。<br />
list_members の実行は Mailmanのデータベースへのアクセス権があればいいです。<br />
これで、[メーリングリスト名]に所属する会員のメールアドレスが標準出力に出てきます。<br />
export LANG=ja_JP.UTF-8 で UTF-8 に戻すことを忘れずに。
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://dev.satake7.net/blog/2009/10/02/297/feed/</wfw:commentRss>
		</item>
		<item>
		<title>sshでログインできないときに疑うべき点</title>
		<link>http://dev.satake7.net/blog/2009/10/01/292/</link>
		<comments>http://dev.satake7.net/blog/2009/10/01/292/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 02:25:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://dev.satake7.net/blog/2009/10/01/292/</guid>
		<description><![CDATA[今日から急に新しい連載をすることにしました。
いつまで続くかわかりませんが、主として Ubuntu Serverでの気づきについてポイントのみ、書いていきたいと思います。（難易度：高）


クライアントで鍵を準備。
ss [...]]]></description>
			<content:encoded><![CDATA[<p>今日から急に新しい連載をすることにしました。<br />
いつまで続くかわかりませんが、主として Ubuntu Serverでの気づきについてポイントのみ、書いていきたいと思います。（難易度：高）<br />
<span id="more-292"></span></p>
<div style="width:700px;">
クライアントで鍵を準備。<br />
ssh-keygenで .ssh/id_rsaと .ssh/id_rsa.pubができるので、scpでサーバへコピーする。</p>
<pre class="brush: bash">
$ ssh-keygen -t rsa
$ scp -P 22 .ssh/id_rsa.pub Server-IP-Address:~/
</pre>
<p>　<br />
サーバ側の作業。<br />
.ssh/authorized_keysに公開鍵を追加しておく。</p>
<pre class="brush: bash">
$ cat id_rsa.pub &gt;&gt; .ssh/authorized_keys
</pre>
<p>　<br />
普通はこれでログインできるはずだが、エラーがでたときに疑うべきところ。</p>
<pre class="brush: bash">
$ ssh -p 22 user@server-name
A) ssh: connect to host server-name port 22: Connection refused
B) Permission denied (publickey).
</pre>
<p>　<br />
<span style="color:red;">A)</span>の場合</p>
<ol>
<li>クライアントの /etc/hostsを疑う。server-nameが名前解決できてないかも。</li>
<li>サーバの sshd が立ち上がっていない。</li>
<li>ルータの port forwardが正しくできていない。</li>
<li>サーバの /etc/ssh/sshd_configの ListenAddressで制限されている。</li>
<li>サーバの /etc/hosts.allowで制限されている。</li>
</ol>
<p>　<br />
<span style="color:red;">B)</span>の場合</p>
<ol>
<li>サーバの .ssh/authorized_keysが間違っている。</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://dev.satake7.net/blog/2009/10/01/292/feed/</wfw:commentRss>
		</item>
		<item>
		<title>コメント・スパム対策</title>
		<link>http://dev.satake7.net/blog/2009/05/22/283/</link>
		<comments>http://dev.satake7.net/blog/2009/05/22/283/#comments</comments>
		<pubDate>Thu, 21 May 2009 19:37:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[WP Tips]]></category>

		<category><![CDATA[サーバ管理]]></category>

		<guid isPermaLink="false">http://dev.satake7.net/blog/2009/05/22/283/</guid>
		<description><![CDATA[いままでまったくといっていいほどこなかったコメント・スパムが突然多量に、それも数百オーダーで来るようになりました。
Akismetを導入しているので、自動的にスパムフォルダへ振り分けられて実害はないのですが、毎日スパムが [...]]]></description>
			<content:encoded><![CDATA[<p>いままでまったくといっていいほどこなかったコメント・スパムが突然多量に、それも数百オーダーで来るようになりました。<br />
Akismetを導入しているので、自動的にスパムフォルダへ振り分けられて実害はないのですが、毎日スパムが数百ずつ増えるのを見るのもうんざりですし、もしこの中に間違ってスパムじゃないコメントがまぎれていたとしても、目視で確認することは事実上不可能です。<br />
<span id="more-283"></span></p>
<div style="width:700px;">
<h3>■ Comment-Policy</h3>
<p>ということで、Comment-Policyというプラグインを導入することにしました。<br />
<a href="http://www.g-loaded.eu/2006/04/02/comment-policy-wordpress-plugin/" target="_blank">Comment-Policy WordPress Plugin</a> のページなかほどの「Download」から「comment-policy.zip」を<br />
ダウンロードして、必要なところを書き換えます。変更箇所のみ抜粋。</p>
<pre class="brush: php">
$cp_form_field_name = &#039;anynamewithletters&#039;;
</pre>
<p>チェックボックスの nameをここで指定した適当な文字列に Javascriptで置き換えます。スパムボットが<br />
 HTMLを読んでチェックボックスにチェックを付けようとしても、ロード時に nameを変えているので無効になるという対策ですね。<br />
ですから、ここをデフォルトの &#8216;anynamewithletters&#8217;にしておくのは、あまりよろしくないと思いますから変えておきましょう。（スパムボットが scriptを読んで動作したら意味ないですが）<br />
　</p>
<pre class="brush: php">
&lt;div id=&quot;termsquestion&quot;&gt;
  &lt;p&gt;&lt;input type=&quot;checkbox&quot; name=&quot;comterms&quot; id=&quot;comterms&quot; value=&quot;1&quot; tabindex=&quot;6&quot; style=&quot;width:auto;&quot; /&gt;
  &lt;label for=&quot;comterms&quot;&gt;&lt;span style=&quot;font-size:80%;&quot;&gt;チェックを入れてから送信してください。&lt;/span&gt;&lt;/label&gt;&lt;/p&gt;
&lt;/div&gt;
</pre>
<p>使うテーマによって、input要素を「width:100%」にしてあることがありますので、「width:auto」に指定しなおしておきます。（そうしないとチェックボックスとラベルが改行されてしまう）<br />
ラベルのところに元々は「Comment Policy」へのリンクがあったのですが、今回はただのスパム避けなので、チェックを促す文字列にばっさり書き換えてしまっています。<br />
　</p>
<pre class="brush: php">
if ( &#039;1&#039; != $userterms ) {
//  header(&quot;HTTP/1.1 403 Forbidden&quot;);
  die( __(&#039;&lt;span style=&quot;text-align:left; color:red; font-weight:bold;&quot;&gt;チェックを入れてからコメントを投稿してください。&lt;/span&gt;&#039;) );
}
</pre>
<p>チェックボックスにチェックを入れないで送信しようとしたときのエラー表示です。こちらも大胆に書き換えました。適用させるスタイルは適当に。<br />
「header(&#8221;HTTP/1.1 403 Forbidden&#8221;);」があると、403エラーページを表示してしまうテーマがあったので、コメントアウトしてしまいました。なくても特に問題なさそうです。</p>
<h3>■ まとめ</h3>
<p>以上、換骨奪胎というか改悪に近い形での変更ですが、コメントスパム避けに特化すればということでお許しください。<br />
これを導入してからコメントスパムがぴたっとこなくなりました。すごく効果ありますよ、これ。
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://dev.satake7.net/blog/2009/05/22/283/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WordPressの Upload設定</title>
		<link>http://dev.satake7.net/blog/2009/05/21/278/</link>
		<comments>http://dev.satake7.net/blog/2009/05/21/278/#comments</comments>
		<pubDate>Wed, 20 May 2009 22:26:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[WP Tips]]></category>

		<guid isPermaLink="false">http://dev.satake7.net/?p=278</guid>
		<description><![CDATA[WordPressで大きなファイルをアップロードしようとして躓いたので（つまづくという読みに躓かないように）、対処方法をメモしておきます。


■ エラー
15MB程度のファイルをアップロードしようとすると、『このファイ [...]]]></description>
			<content:encoded><![CDATA[<p>WordPressで大きなファイルをアップロードしようとして躓いたので（<span style="font-size:80%;">つまづくという読みに躓かないように</span>）、対処方法をメモしておきます。<br />
<span id="more-278"></span></p>
<div style="width:700px;">
<h3>■ エラー</h3>
<p>15MB程度のファイルをアップロードしようとすると、『このファイルは大きすぎます。php.ini で設定されている upload_max_filesize は 2M です。』というようなエラーが出ます。<br />
サーバの /etc/apache2/php.ini の該当箇所（upload_max_filesize）を 30Mに修正して、/etc/init.d/apache2 restart で Apacheを再起動しても、やはりエラーは変わりません。<br />
Flashアップローダーのせいかなと思って、ブラウザのアップローダーを使ってみましたが、そうするとこのエラーは出ないものの、別のエラー画面が出てしまってアップロードできません。</p>
<h3>■ 対処</h3>
<p>php.iniの post_max_sizeも合わせて広げておかないといけないようです。初期設定が 8Mになっていましたので、これを 60Mにしておきました。</p>
<pre class="brush: bash">
upload_max_filesize = 30M
post_max_size = 60M
</pre>
<p>初期設定の比率でいくなら、30M → 120Mにしないといけないところですが、倍くらいとっておいたらいいんじゃないでしょうか。Apacheを再起動させてもう一度やってみるとうまくいきました。</p>
<h3>■ 参考</h3>
<p><a href="http://kato.3web.jp/modules/note1/" target="_blank">WordPressでのuploadエラー</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.satake7.net/blog/2009/05/21/278/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OP25B対策</title>
		<link>http://dev.satake7.net/blog/2009/05/21/246/</link>
		<comments>http://dev.satake7.net/blog/2009/05/21/246/#comments</comments>
		<pubDate>Wed, 20 May 2009 18:41:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[WP Tips]]></category>

		<guid isPermaLink="false">http://dev.satake7.net/?p=246</guid>
		<description><![CDATA[イー・モバイルからお知らせが来て、6/16から迷惑メール対策（Outbound Port 25 Blocking：OP25B）が始まるとのこと。いま使っているプロバイダ（ZOOT）では余計なフィルタがかからないため、SM [...]]]></description>
			<content:encoded><![CDATA[<p>イー・モバイルからお知らせが来て、6/16から迷惑メール対策（Outbound Port 25 Blocking：OP25B）が始まるとのこと。いま使っているプロバイダ（ZOOT）では余計なフィルタがかからないため、SMTPは 25を使っていたのですが、イー・モバイルで外部からメールが送れないとすると不便この上ないので、いよいよ本腰を入れて代替ポート（587）対応をしないといけません。<br />
<span id="more-246"></span></p>
<div style="width:700px;">
<h3>■ ルータ（RT-200NE）設定</h3>
<p>パケットフィルタ設定と静的IPマスカレード設定を行ないます。（画像はクリックすると大きくなります）</p>
<p><a href="http://dev.satake7.net/files/2009/05/rt-200ne-01.jpg" class="thickbox" rel="op25b">
<div class="img-shadow-right"><img src="http://dev.satake7.net/files/2009/05/rt-200ne-01.jpg" width="344" height="230"  /></div>
<p></a>１．パケットフィルタ設定で代替ポート（587）を通してやります。
<div style="clear:both; margin-bottom:10px;">&nbsp;</div>
<p><a href="http://dev.satake7.net/files/2009/05/rt-200ne-02.jpg" class="thickbox" rel="op25b">
<div class="img-shadow-right"><img src="http://dev.satake7.net/files/2009/05/rt-200ne-02.jpg" width="324" height="251" class="alignright" /></div>
<p></a>２．静的IPマスカレード設定で振分け先を設定します。
<p style="clear:both;" />
<h3>■ Postfix設定</h3>
<p>代替ポート（587）を使用するためには、SMTP-AUTH対応を行なっていなければいけないのですが、外部からの SMTP接続を許すということは、当然そういう対処は済んでいるでしょうということです。うちのサーバでも外部から接続できるようにした時点で Submissionポート（587）が使用可になっています。</p>
<div style="font-weight: bold; margin:10px 0 -10px 10px;">/etc/postfix/master.cf</div>
<pre class="brush: bash">
smtp       inet n      -       n       -       -       smtpd
submission inet n      -       n       -       -       smtpd
</pre>
<p>submission行のコメントを外します。</p>
<h3>■ まとめ</h3>
<p>ルータの段階で 587ポートを 25ポートへ変換するという手法も取れそうで、実際、静的IPマスカレード設定で何回かトライしてみたのですが、うまくいきませんでした。<br />
もしかすると、順方向（587 → 25）と合わせて、内から外の逆方向（25 → 587）も設定してやらないといけないのかもしれません。たぶん時間があっても再チャレンジはしないと思いますので、この件は以上で解決ということにしておきます。
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://dev.satake7.net/blog/2009/05/21/246/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WordPress MU 2.7.1のカテゴリースラッグ</title>
		<link>http://dev.satake7.net/blog/2009/05/20/229/</link>
		<comments>http://dev.satake7.net/blog/2009/05/20/229/#comments</comments>
		<pubDate>Wed, 20 May 2009 08:29:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[WP Tips]]></category>

		<guid isPermaLink="false">http://dev.satake7.net/?p=229</guid>
		<description><![CDATA[WordPress MU 2.7 から 2.7.1 へバージョンアップしたところ、またもやカテゴリースラッグ（slug）の変更ができなくなってしまいました。
2.7.1 ではもしかするとデフォルトで変更できるようになって [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress MU 2.7 から 2.7.1 へバージョンアップしたところ、またもやカテゴリースラッグ（slug）の変更ができなくなってしまいました。<br />
2.7.1 ではもしかするとデフォルトで変更できるようになっているかも、という淡い期待がありましたが、そんなことは露ほどもなく、2.7 より徹底的にできなくしてありました。<br />
<span id="more-229"></span></p>
<div style="width:700px;">
<h3>■ 2.7と2.7.1の違い</h3>
<p>2.7 では、カテゴリースラッグが一応クイック編集で変更できるようになっていて、それがカテゴリー名をサニタイズしたもので上書きされてしまうというものでした。<br />
2.7.1 では、クイック編集からも外されてしまっています。</p>
<h3>■ なぜ、MUだけこういうことをするのか</h3>
<p><a href="http://mu.wordpress.org/forums/topic/2662" target="_blank">WordPress MU › WordPress MU Forums » Category Slug</a> の MrBrian の回答によると、よくわかんないらしい。</p>
<blockquote><p>
My guess is it&#8217;s a security risk, but I don&#8217;t know why. There are several differences between normal Wordpress and WPMU for security reasons (such as being able to insert javascript into widgets), so it&#8217;s not always fair to compare normal wordpress to WPMU. Hope donncha can shed some light on the specifics in your trac ticket.
</p></blockquote>
<blockquote><p>
よくわかんないけど、セキュリティ絡みの問題じゃないの。ウィジェットに入った Javascript が悪さできるみたいなことが WPMUだと問題になるのかもね。詳しくは donncha に聞いてみたら？（超意訳）
</p></blockquote>
<p>TRACをざっと読んだ限りでは、donncha というコミッタがこの問題を仕切ってるみたいで、あれこれ言ってもダメらしい。</p>
<h3>■ ほんとに問題か？</h3>
<p>考えられる問題としては、パーマリンクにカテゴリースラッグを入れているような場合、カテゴリスラッグを変えるとパーマリンクが変わってしまうということ。<br />
さらに、postsテーブルの guidにパーマリンクが突っ込まれているので、カテゴリスラッグを変えるタイミングで guidも変更しておかないと（たぶん、いまは変更してないと思う）、guidを取扱うような操作で問題がでる（あるはずのレコードがないなど）ということだろう。<br />
カテゴリーの取扱い自体は、wp_*_terms、wp_*_term_relationships、wp_*_term_taxonomyテーブルの object_id、term_taxonomy_id、term_id などの主キーを使っているので、カテゴリースラッグ自体が変わっても問題ないはず。<br />
ということで、結論としては、パーマリンクにカテゴリースラッグを入れない限り、変更しても安全なんじゃないかと思います。普通、post_idを入れてもスラッグまで入れないしね。（<strong>do it at your own risk !</strong>）</p>
<h3 style="color:red;">■ 追記：問題点を確認しました。</h3>
<p>Wordpress MUの場合、カテゴリー名は wp_sitecategories というテーブルに入っているのですが、カテゴリースラッグ<span style="color:red;">とカテゴリー名を同時に</span>変えると、ここを Updateせずに、古いレコードはそのままにして、新しくレコードを Insertするようになっていました。<br />
そうすると、cat_ID が以前使っていたものと異なってしまうため、カテゴリーIDで投稿を取ってくる部分が動かなくなってしまいます。</p>
<blockquote><p>
query_posts(&#8217;&#038;cat=185&#038;showposts=5&#038;orderby=date&#8217;);
</p></blockquote>
<p>投稿記事とカテゴリーの関連などはちゃんとしていますので、こういうコードを自分で書いている人は影響範囲をしっかり確認した上で行ってください。（<strong>do it at your own risk !</strong>）</p>
<h3>■ やり方</h3>
<p>\wordpress-mu\wp-admin\includes\template.php</p>
<pre class="brush: php">
function inline_edit_term_row($type) {

	if ( ! current_user_can( &#039;manage_categories&#039; ) )
		return;

	$is_tag = $type == &#039;edit-tags&#039;;
	$columns = get_column_headers($type);
	$hidden = array_intersect( array_keys( $columns ), array_filter( get_hidden_columns($type) ) );
	$col_count = count($columns) - count($hidden);
	?&gt;

&lt;form method=&quot;get&quot; action=&quot;&quot;&gt;&lt;table style=&quot;display: none&quot;&gt;&lt;tbody id=&quot;inlineedit&quot;&gt;
	&lt;tr id=&quot;inline-edit&quot; class=&quot;inline-edit-row&quot; style=&quot;display: none&quot;&gt;&lt;td colspan=&quot;&lt;?php echo $col_count; ?&gt;&quot;&gt;

		&lt;fieldset&gt;&lt;div class=&quot;inline-edit-col&quot;&gt;
			&lt;h4&gt;&lt;?php _e( &#039;Quick Edit&#039; ); ?&gt;&lt;/h4&gt;

			&lt;label&gt;
				&lt;span class=&quot;title&quot;&gt;&lt;?php _e( &#039;Name&#039; ); ?&gt;&lt;/span&gt;
				&lt;span class=&quot;input-text-wrap&quot;&gt;&lt;input type=&quot;text&quot; name=&quot;name&quot; class=&quot;ptitle&quot; value=&quot;&quot; /&gt;&lt;/span&gt;
			&lt;/label&gt;
&lt;!-- ＃＃＃＃＃＃＃＃＃＃ ここから追加 ＃＃＃＃＃＃＃＃＃＃ --&gt;
			&lt;label&gt;
				&lt;span class=&quot;title&quot;&gt;&lt;?php _e( &#039;Slug&#039; ); ?&gt;&lt;/span&gt;
				&lt;span class=&quot;input-text-wrap&quot;&gt;&lt;input type=&quot;text&quot; name=&quot;slug&quot; class=&quot;ptitle&quot; value=&quot;&quot; /&gt;&lt;/span&gt;
			&lt;/label&gt;
&lt;!-- ＃＃＃＃＃＃＃＃＃＃ ここまで追加 ＃＃＃＃＃＃＃＃＃＃ --&gt;
&lt;?php if ( &#039;category&#039; == $type ) : ?&gt;

			&lt;label&gt;
				&lt;span class=&quot;title&quot;&gt;&lt;?php _e( &#039;Parent&#039; ); ?&gt;&lt;/span&gt;
				&lt;?php wp_dropdown_categories(array(&#039;hide_empty&#039; =&gt; 0, &#039;name&#039; =&gt; &#039;parent&#039;, &#039;orderby&#039; =&gt; &#039;name&#039;, &#039;hierarchical&#039; =&gt; 1, &#039;show_option_none&#039; =&gt; __(&#039;None&#039;))); ?&gt;
			&lt;/label&gt;

&lt;?php endif; // $type ?&gt;

		&lt;/div&gt;&lt;/fieldset&gt;
</pre>
<p>　<br />
\wordpress-mu\wp-admin\includes\mu.php</p>
<pre class="brush: php">
function sync_category_tag_slugs( $term, $taxonomy ) {
  if( $taxonomy == &#039;category&#039; || $taxonomy == &#039;post_tag&#039; ) {
    if( is_object( $term ) ) {
&lt;!-- ＃＃＃＃＃＃＃＃＃＃ ここから追加 ＃＃＃＃＃＃＃＃＃＃ --&gt;
      if (empty($term-&gt;slug))
&lt;!-- ＃＃＃＃＃＃＃＃＃＃ ここまで追加 ＃＃＃＃＃＃＃＃＃＃ --&gt;
        $term-&gt;slug = sanitize_title( $term-&gt;name );
    } else {
      $term[ &#039;slug&#039; ] = sanitize_title( $term[ &#039;name&#039; ] );
    }
  }
  return $term;
}
</pre>
<p>　<br />
以上、WordPress MU 2.7.1 のカスタマイズのお話でした。</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.satake7.net/blog/2009/05/20/229/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ImageRotate()を使えるようにする</title>
		<link>http://dev.satake7.net/blog/2009/04/23/194/</link>
		<comments>http://dev.satake7.net/blog/2009/04/23/194/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 20:13:37 +0000</pubDate>
		<dc:creator>mam</dc:creator>
		
		<category><![CDATA[WP Tips]]></category>

		<guid isPermaLink="false">http://dev.satake7.net/?p=194</guid>
		<description><![CDATA[携帯から投稿するプラグイン（Ktai Entry）を試していたところ、携帯で撮った写真をローテートする指定を付けるとサーバで受付時にエラーになることがわかりました。


■ 原因は？
どうやら、Ubuntuにもとから入っ [...]]]></description>
			<content:encoded><![CDATA[<p>携帯から投稿するプラグイン（Ktai Entry）を試していたところ、携帯で撮った写真をローテートする指定を付けるとサーバで受付時にエラーになることがわかりました。<br />
<span id="more-194"></span></p>
<div style="width:700px;">
<h3>■ 原因は？</h3>
<p>どうやら、Ubuntuにもとから入っている PHPの GDライブラリでは ImageRotate()関数が使えなくしてある模様。詳細はよくわかりませんが、ImageRotate()にセキュリティホールがあるようです。セキュリティレポート等を見ると、このようになっています。</p>
<blockquote><p>PHPをApacheモジュールで共有型ホスティングサービスを利用しているユーザに影響します。SSLを利用している場合は秘密鍵を盗まれます。</p></blockquote>
<p>Satake Studioの場合、ホスティングはしていますが、ユーザIDを出して自由に使っていただく共有型ではないので、このケースには該当しないようです。</p>
<h3>■ 対策</h3>
<p>筋がいいのは、Ubuntuにもとから入っている GDはそのままにして、使うところ（WordPressの wp-includesなど）で ImageRotate()関数だけを追加することですが、やってみたところ、関数を定義すると今度は Imagick()がないなど、なかなか一筋縄ではいかないようです。<br />
深追いしてもいいことはなさそうなので、次善の策、PHPのバンドル版のインストールをやってみます。</p>
<h3>■ PHPをソースから入れる</h3>
<p>手順は次の通りです。</p>
<pre class="brush: 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 debian/rules　　　　　　　　← ※1（--with-gdのディレクトリ指定を外す）
$ debchange -i  　　　　　　　　← なにも書かず
$ dpkg-buildpackage -rfakeroot
$ sudo dpkg -i ../*.deb
$ dpkg -l
$ s /etc/init.d/apache2 restart
</pre>
<p>注意点として、debian/rulesの configureオプションの GD関連パラメータを次のようにします。</p>
<blockquote><p>&#8211;with-gd &#8211;with-jpeg-dir &#8211;with-png-dir &#8211;with-zlib-dir &#8211;with-ttf &#8211;with-freetype-dir &#8211;enable-gd-native-ttf &#8211;enable-gd-jis-conv</p></blockquote>
<p>ディレクトリがついたままだと、バンドル版ではなく、UbuntuデフォルトのPHPと同じ構成になってしまいます。</p>
<h3>■ 確認</h3>
<p>Ubuntu 8.04にデフォルトで入っているPHP環境</p>
<blockquote><p>GD Support  enabled<br />
GD Version  2.0 or higher </p></blockquote>
<p>ソースから入れたPHP環境</p>
<blockquote><p>GD Support  enabled<br />
GD Version  bundled (2.0.34 compatible)  </p></blockquote>
<h3>■ 参考</h3>
<ul>
<li><a href="http://wppluginsj.sourceforge.jp/ktai_entry/" target="_blank">Ktai Entry (メール投稿プラグイン)</a></li>
<li><a href="http://d.hatena.ne.jp/rudeboyjet/20081007/p1" target="_blank">[ubuntu][php] Ubuntu(hardy)のphp-gdでimagerotateを使えるようにする - よしだメモ</a></li>
<li><a href="http://www.koruri.com/dielectric/archives/200610/30000585.html" target="_blank">さくらのレンタルサーバへPHP5をGDバンドル版としてインストール</a></li>
<li><a href="http://www.bnote.net/kuro_box/kuro_debian_mtdaap_dpkg.shtml" target="_blank">玄箱 DebianでiTunesサーバ(mt-daapd)のパッケージを作る - bnote</a></li>
<li><a href="http://www.gadgety.net/shin/tips/unix/php-gd.html" target="_blank">PHP でグラフを作る (gd/JpGraph編)</a></li>
<li><a href="http://www.yc.tcu.ac.jp/~yamada/doc/php/0301.html" target="_blank">３．１ PHPの動作確認</a></li>
<li><a href="http://blog.ohgaki.net/cve-2008-5498" target="_blank">現行版のPHPに任意メモリ参照バグ - 攻撃コード付き</a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://dev.satake7.net/blog/2009/04/23/194/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
