<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0" xml:base="http://10share.com">
<channel>
 <title>トシャレコム　エルエルシー</title>
 <link>http://10share.com</link>
 <description />
 <language>ja</language>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/tosharecomu" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="tosharecomu" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
 <title>事務所移転しました。</title>
 <link>http://10share.com/blog/2010-04-01.html</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;2010年4月2日に、事務所移転しました。新しい事務所の住所は下記の通りです。&lt;/p&gt;&lt;p&gt;〒107-0052&lt;br&gt;東京都港区赤坂4-1-1 SHIMA赤坂ビル&lt;/p&gt;&lt;p&gt;今後とも、よろしくお願い申し上げます。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://10share.com/blog/2010-04-01.html" dc:identifier="http://10share.com/blog/2010-04-01.html" dc:title="事務所移転しました。" trackback:ping="http://10share.com/trackback/64" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tcJeivOc24taC20KjCp1wdWEJ44/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tcJeivOc24taC20KjCp1wdWEJ44/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tcJeivOc24taC20KjCp1wdWEJ44/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tcJeivOc24taC20KjCp1wdWEJ44/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=Q15uux8CNXk:cKA595pn0dU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=Q15uux8CNXk:cKA595pn0dU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=Q15uux8CNXk:cKA595pn0dU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=Q15uux8CNXk:cKA595pn0dU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=Q15uux8CNXk:cKA595pn0dU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=Q15uux8CNXk:cKA595pn0dU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=Q15uux8CNXk:cKA595pn0dU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <comments>http://10share.com/blog/2010-04-01.html#comments</comments>
 <category domain="http://10share.com/taxonomy/term/1">お知らせ</category>
 <pubDate>Thu, 01 Apr 2010 23:20:37 +0000</pubDate>
 <dc:creator>yuki</dc:creator>
 <guid isPermaLink="false">64 at http://10share.com</guid>
</item>
<item>
 <title>Drupal 6.16がリリースされました</title>
 <link>http://10share.com/blog/2010-03-08.html</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;本当は、&lt;a href="http://10share.com/blog/2010-03-03.html"&gt;tips&lt;/a&gt;の続きでサブテーマについて実験してみようと思っていたのですが、さる2010年3月4日（日本時間）に6.16がリリースされたのでそちらのアップデートの確認作業に時間がとられてしまったので、Fusionを遊んでみるのは少し延期になりました。&lt;/p&gt;&lt;p&gt;さて、この6.16は重大なセキュリティフィックスがあるとのことで、早めに対応した方が良いでしょう。&lt;/p&gt;&lt;h3&gt;セキュリティフィックス&lt;/h3&gt;&lt;p&gt;一つはインストール時にクロスサイト・スクリプティングの危険があります。これはインストールされていないサイトでのみ影響がある問題です。次にdrupal_goto()のフィッシング・アタックに使わえる可能性があるというもので、これはサイト運営者にとってはかなり頭の痛い問題です。次にLocaleモジュールのクロスサイト・スクリプティングの問題です。大抵の日本のサイトは使っていると思いますので、影響必至です。最後にブロックされた状態のユーザのセッションを復活できるという問題です。セッションを閉じた状態でユーザをブロックした場合に発生するそうです。&lt;/p&gt;&lt;h3&gt;その他重要な変更点&lt;/h3&gt;&lt;p&gt;lock.incという新しいロック機能サブシステムがサポートになりました。これは新しいテーブル「semaphore」が必要になるため、update.phpを実行しないと「テーブルが存在しない」というエラーが発生し続けることになります。※新規インストールの場合は、関係ありません。&lt;/p&gt;&lt;p&gt;あと、.htaccessが修正されました。パッケージ化インストールプロファイル用の.make ファイルを隠すための修正なので、.htaccessを修正して使っている場合は置き換えでなく該当行を修正する方が安全でしょう（修正は1行だけです）。&lt;/p&gt;&lt;p&gt;新しいlock.incの導入は少々怖いと思う方は、セキュリティ対応だけでも急いだ方が良いでしょう→&lt;a href="http://drupal.org/files/sa-core-2010-001/SA-CORE-2010-001-6.15.patch"&gt;6用のパッチ&lt;/a&gt;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://10share.com/blog/2010-03-08.html" dc:identifier="http://10share.com/blog/2010-03-08.html" dc:title="Drupal 6.16がリリースされました" trackback:ping="http://10share.com/trackback/63" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/s2zGSYHfOb7rXC6u4NgVOg2jq_Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s2zGSYHfOb7rXC6u4NgVOg2jq_Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/s2zGSYHfOb7rXC6u4NgVOg2jq_Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s2zGSYHfOb7rXC6u4NgVOg2jq_Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=hsYZtqPqpvI:UQV3QYZACLA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=hsYZtqPqpvI:UQV3QYZACLA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=hsYZtqPqpvI:UQV3QYZACLA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=hsYZtqPqpvI:UQV3QYZACLA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=hsYZtqPqpvI:UQV3QYZACLA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=hsYZtqPqpvI:UQV3QYZACLA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=hsYZtqPqpvI:UQV3QYZACLA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <comments>http://10share.com/blog/2010-03-08.html#comments</comments>
 <category domain="http://10share.com/category/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA/drupal-cms">Drupal CMS</category>
 <pubDate>Tue, 09 Mar 2010 00:40:36 +0000</pubDate>
 <dc:creator>yuki</dc:creator>
 <guid isPermaLink="false">63 at http://10share.com</guid>
</item>
<item>
 <title>Drupalのtipsを少し紹介</title>
 <link>http://10share.com/blog/2010-03-03.html</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;いくつかのDrupalサイトを運用してみるとわかるのですが、「コンテンツ毎にちょっと違うレイアウト」を試したいという要望が結構あります。でも、テーマの骨格となるブロック設計というのはテーマをインストールした時に決まってしまいます。UIだけでは、このブロックを変更できません。&lt;/p&gt;&lt;p&gt;今日は、これを解決する方法をいくつかご紹介します。&lt;/p&gt;&lt;h3&gt;Panelsモジュール&lt;/h3&gt;&lt;p&gt;Drupal のブロックレイアウトをCSSやテーマファイルを変更せずに、レイアウトを自由に作り替えられる優れたモジュールです。非常に強力です。&lt;/p&gt;&lt;h3&gt;Skinrモジュール&lt;/h3&gt;&lt;p&gt;リンクカラーやちょっとしたレイアウト修正を行うのにわざわざテーマのCSSを修正したりするの面倒ですよね。このモジュールをそれをUIから定義できるようになります。先のPanelsモジュールやViewsにも使えるので、これ便利かも！って感じです。&lt;/p&gt;&lt;h3&gt;Fusion&lt;/h3&gt;&lt;p&gt;これまだ発展途上なんですけど、Drupal UIからレイアウトを調整できるようなベース・テーマを開発するっていうプロジェクトなんです。私もこれに参加してみましたので、また進捗あったらブログに書きますね。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://10share.com/blog/2010-03-03.html" dc:identifier="http://10share.com/blog/2010-03-03.html" dc:title="Drupalのtipsを少し紹介" trackback:ping="http://10share.com/trackback/62" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4sg4N373-l6gu7zmIq-VhWibwp0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4sg4N373-l6gu7zmIq-VhWibwp0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4sg4N373-l6gu7zmIq-VhWibwp0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4sg4N373-l6gu7zmIq-VhWibwp0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=wE06iEf5Emk:1vw2ManYiS4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=wE06iEf5Emk:1vw2ManYiS4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=wE06iEf5Emk:1vw2ManYiS4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=wE06iEf5Emk:1vw2ManYiS4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=wE06iEf5Emk:1vw2ManYiS4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=wE06iEf5Emk:1vw2ManYiS4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=wE06iEf5Emk:1vw2ManYiS4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <comments>http://10share.com/blog/2010-03-03.html#comments</comments>
 <category domain="http://10share.com/taxonomy/term/4">Drupal</category>
 <category domain="http://10share.com/taxonomy/term/8">Drupal Module</category>
 <category domain="http://10share.com/category/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA/%E3%83%86%E3%83%BC%E3%83%9E">テーマ</category>
 <pubDate>Thu, 04 Mar 2010 05:39:57 +0000</pubDate>
 <dc:creator>yuki</dc:creator>
 <guid isPermaLink="false">62 at http://10share.com</guid>
</item>
<item>
 <title>Amazon S3 を使いたい</title>
 <link>http://10share.com/blog/2010-02-18.html</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Amazon S3について少し研究したいと思います。昨年からAmazonのウェブサービスについて、EC2やRDSといった機能については、ちょくちょく調べているのですが、今回はAmazon S3です。じゃ、S3とは何かというと、Amazon Web Services LLC(以下、AWS)が提供しているインターネット上で使えるストレージ・ウェブサービスの事です。と書くと、既にApple社のmobileMeのiDiskと比較してしまうと思います。iDiskとの違いは、iDiskはWebDAVという共通技術を元に作られているいわば「ファイル共有サービス」です。S3はITサービス開発者の視点からみると、もうちょっと面白くて、「ファイル共有を実現するための機能サービス」といったところでしょうか？&lt;/p&gt;&lt;p&gt;なので、AWSそのものが、iDiskのような洗練したインタフェイスを提供していません（コマンドラインはあります）。ではどういった機能が提供されているのでしょうか？&lt;/p&gt;&lt;ol&gt;&lt;li&gt;1バイトから5ギガバイトまでのデータを含んだオブジェクトの書・読込や削除が行える。&lt;strong&gt;オブジェクトは制限なしに保存できる。&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;それぞれのオブジェクトは、&lt;strong&gt;バケット&lt;/strong&gt;として保存され、独自に開発者が割りあてたキーを使って取り出せる。&lt;/li&gt;&lt;li&gt;バケットは、複数のリージョン中の一つに保存できる。送信遅延やコスト最小、アドレス規制の必要性によって最適なリージョンを選ぶことできる。&lt;/li&gt;&lt;li&gt;一度あるリージョン上に保存されたオブジェクトは、自分で移動させない限りそのリージョンから&lt;strong&gt;絶対に出て行くことはありません&lt;/strong&gt;。&lt;/li&gt;&lt;li&gt;認証メカニズムによって認証無しアクセスからデータの安全性を守るために提供されている。オブジェクトは、保護か公開のどちらかで作られ、権限は特定のユーザのみ持つようにできる。&lt;/li&gt;&lt;li&gt;インターネット上の開発キットとの互換性を持った標準ベースRESTとSOAPインタフェースが使える。&lt;/li&gt;&lt;li&gt;プロトコルや機能的なレイヤーが簡単に追加できるように柔軟な設計になっている。標準のダウンロードプロトコルは、HTTPである。BitTorrent™ プロトコルのインタフェースが、大きな規模のディストリビューション向け低コストに提供できる。 将来的にはもっとインタフェースが追加される。&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;と、どちらかというとインフラ系のエンジニアより開発系エンジニアに向けて様々な機能が提供されているといっても良いでしょう。まず、1番目の「&lt;strong&gt;オブジェクトは制限なしに保存できる&lt;/strong&gt;」は、サーバストレージは常に最も大きな問題であるので、まずこれを真っ先に解決してくれるのはありがたいです。次にセキュリティ面ですが、5番目の認証メカニズムがあるため、アップロード制限だけでなく取り出し制限も簡単に行えます。また、「公開」機能もあるので一般向けサービス用にも使えるようです。&lt;/p&gt;&lt;p&gt;3や4番目のリージョン問題はまだ日本に拠点が無いので、何とも言えませんが、いずれ日本にも拠点ができるでしょう。&lt;/p&gt;&lt;p&gt;6や7番目を見てもらえばわかるのですが、取り出しや再利用が簡単なんです！WebDAVしか使えないiDiskと違って、ウェブアプリケーションには非常に柔軟に対応してくれるのです。&lt;/p&gt;&lt;p&gt;実際に使ってみないとよくわからないと思うので、次回はこのAS3を使ってアップロード、ダウンロードをやってみようと思います。&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://10share.com/blog/2010-02-18.html" dc:identifier="http://10share.com/blog/2010-02-18.html" dc:title="Amazon S3 を使いたい" trackback:ping="http://10share.com/trackback/61" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/s4PJziYq02aXsmPm3-83EKdVtiU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s4PJziYq02aXsmPm3-83EKdVtiU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/s4PJziYq02aXsmPm3-83EKdVtiU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s4PJziYq02aXsmPm3-83EKdVtiU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=mElf5I4jgtQ:crqM3MYdUls:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=mElf5I4jgtQ:crqM3MYdUls:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=mElf5I4jgtQ:crqM3MYdUls:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=mElf5I4jgtQ:crqM3MYdUls:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=mElf5I4jgtQ:crqM3MYdUls:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=mElf5I4jgtQ:crqM3MYdUls:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=mElf5I4jgtQ:crqM3MYdUls:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <comments>http://10share.com/blog/2010-02-18.html#comments</comments>
 <category domain="http://10share.com/category/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA/amazon-s3">Amazon S3</category>
 <category domain="http://10share.com/category/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA/%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0">クラウドコンピューティング</category>
 <pubDate>Thu, 18 Feb 2010 08:04:32 +0000</pubDate>
 <dc:creator>yuki</dc:creator>
 <guid isPermaLink="false">61 at http://10share.com</guid>
</item>
<item><title>Links for 2010-02-17 [del.icio.us]</title><link>http://del.icio.us/tosharecomu#2010-02-17</link><pubDate>Thu, 18 Feb 2010 00:00:00 PST</pubDate><guid isPermaLink="true">http://del.icio.us/tosharecomu#2010-02-17</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.itmedia.co.jp/enterprise/articles/1002/09/news004.html"&gt;&amp;#19990;&amp;#30028;&amp;#12391;&amp;#21213;&amp;#12388; &amp;#24375;&amp;#12356;&amp;#26085;&amp;#26412;&amp;#20225;&amp;#26989;&amp;#12398;&amp;#12388;&amp;#12367;&amp;#12426;&amp;#26041;&amp;#65306;&amp;#21033;&amp;#29992;&amp;#22865;&amp;#32004;&amp;#12398;&amp;#26908;&amp;#35342;&amp;mdash;&amp;mdash;&amp;#12464;&amp;#12525;&amp;#12540;&amp;#12496;&amp;#12523;&amp;#12463;&amp;#12521;&amp;#12454;&amp;#12489;&amp;#12391;&amp;#22833;&amp;#25943;&amp;#12375;&amp;#12394;&amp;#12356;&amp;#12383;&amp;#12417;&amp;#12395;&amp;#65288;&amp;#21069;&amp;#32232;&amp;#65289; (1/2) - ITmedia &amp;#12456;&amp;#12531;&amp;#12479;&amp;#12540;&amp;#12503;&amp;#12521;&amp;#12452;&amp;#12474;&lt;/a&gt;&lt;br/&gt;
前々から気になっていたので、勉強しよう&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.itmedia.co.jp/enterprise/articles/1002/18/news009.html"&gt;&amp;#19990;&amp;#30028;&amp;#12391;&amp;#21213;&amp;#12388; &amp;#24375;&amp;#12356;&amp;#26085;&amp;#26412;&amp;#20225;&amp;#26989;&amp;#12398;&amp;#12388;&amp;#12367;&amp;#12426;&amp;#26041;&amp;#65306;&amp;#36234;&amp;#22659;&amp;#12377;&amp;#12427;&amp;#12487;&amp;#12540;&amp;#12479;&amp;#12398;&amp;#31649;&amp;#29702;&amp;mdash;&amp;mdash;&amp;#12464;&amp;#12525;&amp;#12540;&amp;#12496;&amp;#12523;&amp;#12463;&amp;#12521;&amp;#12454;&amp;#12489;&amp;#12391;&amp;#22833;&amp;#25943;&amp;#12375;&amp;#12394;&amp;#12356;&amp;#12383;&amp;#12417;&amp;#12395;&amp;#65288;&amp;#24460;&amp;#32232;&amp;#65289; (1/2) - ITmedia &amp;#12456;&amp;#12531;&amp;#12479;&amp;#12540;&amp;#12503;&amp;#12521;&amp;#12452;&amp;#12474;&lt;/a&gt;&lt;br/&gt;
しっかり、情報を集めておこう&lt;/li&gt;
&lt;/ul&gt;</description></item><item>
 <title>Amazon RDS を使ってDrupal を動かそう！！</title>
 <link>http://10share.com/blog/2010-02-15.html</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;AWSのMySQLベースのリレーショナル・データベースを使ってDrupalをインストールしてみました。&lt;/p&gt;&lt;p&gt;AWS RDSのサービス申込をしてから、Javaベースのコマンドを用意します。&lt;a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2928" target="_blank"&gt;こちら&lt;/a&gt;からダウンロードできます。これを端末にインストールします。インストールは&lt;a href="http://docs.amazonwebservices.com/AmazonRDS/latest/GettingStartedGuide/"&gt;ここ&lt;/a&gt;にある通りやれば簡単に動作させることができます。このコマンドはEC2のコマンドツール同様にEC2のインスタンスマシンにインストールする必要はありません。手元のWinやMacOSでもまったく構いません。コマンド・ツールのインストールと設定については&lt;a href="http://docs.amazonwebservices.com/AmazonRDS/latest/GettingStartedGuide/"&gt;ここ&lt;/a&gt;に詳しいので、ここではデータベースの作成方法とアクセスするまでについてメモしておきます。&lt;/p&gt;&lt;h3&gt;データベースインスタンスの作成&lt;/h3&gt;&lt;p&gt;次にDB専用のインスタンスを立ち上げるのですが、このコマンドが&lt;/p&gt;&lt;div&gt;&lt;code&gt;#rds-create-db-instance tosharecomudb --allocated-storage 20 --db-instance-class db.m1.small --engine MySQL5.1 --master-username tosharecomu --master-user-password tosharecomu --db-name tosharecomu001 --headers&lt;/code&gt;&lt;/div&gt;&lt;p&gt;これで簡単に、20GBのtosharecomudbという名前のMySQL5.1ベースのデータベース・インスタンスがスモール（Small DB Instance: 1.7 GB memory, 1 &lt;span&gt;ECU&lt;/span&gt; (1 virtual core with 1 &lt;span&gt;ECU&lt;/span&gt;), 64-bit platform）をベースに作られます。さらに、データベースにアクセスするためのユーザとパスワード'tosharecomu'とデータベース'tosharecomu001'が作られます。&lt;/p&gt;&lt;p&gt;作成に成功すると次のような応答があります。&lt;/p&gt;&lt;div&gt;&lt;code&gt;DBINSTANCE&amp;nbsp; DBInstanceId&amp;nbsp;&amp;nbsp; Class&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Engine&amp;nbsp;&amp;nbsp;&amp;nbsp; Storage&amp;nbsp; Master Username&amp;nbsp; Status&amp;nbsp;&amp;nbsp;&amp;nbsp; Backup Retention&amp;nbsp; PendingCredentials&lt;br&gt;DBINSTANCE&amp;nbsp; tosharecomudb&amp;nbsp; db.m1.small&amp;nbsp; mysql5.1&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tosharecomu&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;creating&amp;nbsp;&lt;/strong&gt; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ****&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SECGROUP&amp;nbsp; Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SECGROUP&amp;nbsp; default&amp;nbsp; active&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PARAMGRP&amp;nbsp; Group Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apply Status&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PARAMGRP&amp;nbsp; default.mysql5.1&amp;nbsp; in-sync&lt;/code&gt;&lt;/div&gt;&lt;p&gt;まだ、作成中(creating)のステータスなのでどこにアクセスしたら良いかわかりません。しばらくして、&lt;/p&gt;&lt;div&gt;&lt;code&gt;#rds-describe-db-instances --headers&lt;/code&gt;&lt;/div&gt;&lt;p&gt;を実行して状態を確認します。&lt;/p&gt;&lt;div&gt;&lt;code&gt;DBINSTANCE&amp;nbsp; DBInstanceId&amp;nbsp;&amp;nbsp; Created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Class&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Engine&amp;nbsp;&amp;nbsp;&amp;nbsp; Storage&amp;nbsp; Master Username&amp;nbsp; Status&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Endpoint Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Port&amp;nbsp; AZ&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Backup Retention&lt;br&gt;DBINSTANCE&amp;nbsp; tosharecomudb&amp;nbsp; 2010-02-15T06:44:20.788Z&amp;nbsp; db.m1.small&amp;nbsp; mysql5.1&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tosharecomu&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;available&lt;/strong&gt;&amp;nbsp; &lt;span style="text-decoration: underline;"&gt;tosharecomudb.cdsfas9rufpivtr.us-east-1.rds.amazonaws.com&lt;/span&gt;&amp;nbsp; 3306&amp;nbsp; us-east-1b&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SECGROUP&amp;nbsp; Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SECGROUP&amp;nbsp; default&amp;nbsp; active&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PARAMGRP&amp;nbsp; Group Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apply Status&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PARAMGRP&amp;nbsp; default.mysql5.1&amp;nbsp; in-sync&lt;/code&gt;&lt;/div&gt;&lt;p&gt;ここに利用状態が可能(available)に変わっています。これでデータベースにアクセス出来る状態になります。これでひとまず準備完了です。接続セキュリティを以下の方法で設定します。&lt;/p&gt;&lt;div&gt;&lt;code&gt; rds-authorize-db-security-group-ingress default --cidr-ip 0.0.0.0/0 --headers &lt;/code&gt;&lt;/div&gt;&lt;p&gt;これで全てのIPアドレスからアクセスできるようになります。本番で使うのであれば、CIDRの部分をサーバのIPアドレスに変えて下さい。このコマンドも即時適用ができないので、暫く待ちます。※確認する方法は、rds-describe-db-security-groups default --headers を使います。&lt;/p&gt;&lt;p&gt;ここまで来たらあとは、通常のMySQLと同じ方法で接続してユーザ追加、テーブル作成が可能です。&lt;/p&gt;&lt;div&gt;&lt;code&gt;mysql -h &lt;span style="text-decoration: underline;"&gt;tosharecomudb.cdsfas9rufpivtr.us-east-1.rds.amazonaws.com&lt;/span&gt; -u tosharecomu -p&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;h3&gt;実際にDrupalに使ってみた&lt;/h3&gt;&lt;p&gt;今回はレイテンシの少ないWest(カリフォルニア)に立ち上げたEC2のインスタンスから接続してみましたが、スモールサイズのDBではやはり少し重く感じます。memcacheの利用で閲覧速度には多少改善できますが、実用に耐えるレベルでは無いようです。mysqlコマンドレベルではそれ程速度の違いは感じられないのですが、実際にDrupalと連動させてみると使えるレベルにはならないようです。あと、現在、EC2のインスタンスと違いEast/Westの選択ができないので恐らくEastしか使えないのかと思います。&lt;/p&gt;&lt;p&gt;まだ1GB以上使っているような大規模なDrupal運用は当分なさそうなので、コンテンツ配信に利用できそうなS3の方をもう少し研究いこうかと思います。&lt;/p&gt;&lt;p&gt;2010-02-16追記：先にDBを作って、RDSと同じゾーン（二回とも東）にEC2インスタンスを作って接続したら、ちゃんと内部接続になってレイテンシーの問題が解決されました。&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://10share.com/blog/2010-02-15.html" dc:identifier="http://10share.com/blog/2010-02-15.html" dc:title="Amazon RDS を使ってDrupal を動かそう！！" trackback:ping="http://10share.com/trackback/60" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FLDPWRKqu3ZvhahcNUXD8ve9jk8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FLDPWRKqu3ZvhahcNUXD8ve9jk8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FLDPWRKqu3ZvhahcNUXD8ve9jk8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FLDPWRKqu3ZvhahcNUXD8ve9jk8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=_uLXK6CbJ6c:JPKtpir5VCs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=_uLXK6CbJ6c:JPKtpir5VCs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=_uLXK6CbJ6c:JPKtpir5VCs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=_uLXK6CbJ6c:JPKtpir5VCs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=_uLXK6CbJ6c:JPKtpir5VCs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=_uLXK6CbJ6c:JPKtpir5VCs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=_uLXK6CbJ6c:JPKtpir5VCs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <comments>http://10share.com/blog/2010-02-15.html#comments</comments>
 <category domain="http://10share.com/category/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA/aws">AWS</category>
 <category domain="http://10share.com/category/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA/drupal-cms">Drupal CMS</category>
 <category domain="http://10share.com/category/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA/rds">RDS</category>
 <pubDate>Mon, 15 Feb 2010 08:07:14 +0000</pubDate>
 <dc:creator>yuki</dc:creator>
 <guid isPermaLink="false">60 at http://10share.com</guid>
</item>
<item>
 <title>Drupalの利点</title>
 <link>http://10share.com/blog/2010-02-10.html</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;今年は少しずつブログを書いていくつもりでしたが、やはり2週間以上間が空いてしまいました。弊社が管理運営をお手伝いしている&lt;a href="http://walnuts.jp" target="_blank"&gt;ウォルナッツさんのブログはほぼ週に5本以上のブログ&lt;/a&gt;を書いています。これって本当に凄いことなんですね。&lt;/p&gt;&lt;p&gt;さて、今年の初めに「&lt;a href="/blog/2010-01-15.html"&gt;Drupalってここが嫌&lt;/a&gt;」は書いたのですが、あんまりDrupalの利点を書いていなかったと思いますので、今日は少しDrupalの利点について書いてみたいと思います。&lt;/p&gt;&lt;h3&gt;単純な構造で強力なツール&lt;/h3&gt;&lt;p&gt;Drupalのコアそのものは、非常に単純な構造をしていてます。コード的には他のCMSと比べると非常に小さいと思います。しかし、構造が単純なだけに一度拡張をするぞ！ってなるとかなり柔軟なツールになるのです。なぜなら、Drupalのコアを突き詰めるとノードというウェブページを抽象化したデータ構造しか無いといっても過言がないぐらいミニマムな作りなのです。この単純さが多くのモジュールを生む結果になっていると思います。また、タイトルと本文だけという形に、究極までウェブを抽象化しているので複雑なコンテンツを作ろうとしたときに障害が逆に少ないんですね。これが私がDrupalを選択した第一の理由です。&lt;/p&gt;&lt;h3&gt;複数言語での利用&lt;/h3&gt;&lt;p&gt;マルチリンガルなサイトを作るときにも簡単なんです。全てではないですが、「&lt;a href="/blog/2010-01-15.html"&gt;動物かんきょう会議&lt;/a&gt;」では日本語で作ったコンテンツをボタン一つで英語に切り替える機能を提供しています。静的なコンテンツでちょっとやれば作れることなので、見る側からすると何が便利なのかわからないかと思いますが、実はこれ編集側の話です。通常の編集ボタンの横に「翻訳」ってあるので、それを押すと英語や他の言語に翻訳がその場で行えるのです。しかも、使っている画像やレイアウトはそのままにです。メニューも多言語に対応した形で複数設定できるのです。実はこの機能は、実際にお客様からの要望で気がついたのですが、意外と使えるなと思う機能です。&lt;/p&gt;&lt;h3&gt;拡張モジュールの豊富さ&lt;/h3&gt;&lt;p&gt;これは本当にすごいです。お客様から要望を頂いて、「これ作らなきゃなぁ」って思って検索かけるとだいたいあるんです。なので、あまりカスタムなモジュールを作る必要が生じないのも素晴らしいところです。プログラムが好きな人に少し寂しいですけど、急なプロジェクトが多い場合は本当に重宝しています。&lt;/p&gt;&lt;h3&gt;セキュリティへの対応&lt;/h3&gt;&lt;p&gt;これも2ヶ月に1回程度のペースでセキュリティアップデートが提供されていて、その修正箇所や説明も詳しくて安心です。しっかりとしたセキュリティ検証が行われているのも魅力の一つです。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://10share.com/blog/2010-02-10.html" dc:identifier="http://10share.com/blog/2010-02-10.html" dc:title="Drupalの利点" trackback:ping="http://10share.com/trackback/59" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fvyrp6Fa_nc8Yf6lxvnSJ_m8GR8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fvyrp6Fa_nc8Yf6lxvnSJ_m8GR8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fvyrp6Fa_nc8Yf6lxvnSJ_m8GR8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fvyrp6Fa_nc8Yf6lxvnSJ_m8GR8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=u3jLO-axpOo:Wrl3Eg1Ob6Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=u3jLO-axpOo:Wrl3Eg1Ob6Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=u3jLO-axpOo:Wrl3Eg1Ob6Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=u3jLO-axpOo:Wrl3Eg1Ob6Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=u3jLO-axpOo:Wrl3Eg1Ob6Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=u3jLO-axpOo:Wrl3Eg1Ob6Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=u3jLO-axpOo:Wrl3Eg1Ob6Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <comments>http://10share.com/blog/2010-02-10.html#comments</comments>
 <category domain="http://10share.com/category/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA/drupal-cms">Drupal CMS</category>
 <pubDate>Wed, 10 Feb 2010 08:38:54 +0000</pubDate>
 <dc:creator>yuki</dc:creator>
 <guid isPermaLink="false">59 at http://10share.com</guid>
</item>
<item>
 <title>Drupal 6のセッション管理（３）</title>
 <link>http://10share.com/blog/2010-01-20.html</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;検討の結果、携帯電話端末のセッション管理をセッションIDをURLに埋め込むという方向で行こうと決定しました。ただ、デフォルトでの設定で動作しているDrupalのURLを見ると、PHPSESSION等というものが見あたらないと思います。Cookieでセッション管理を行うのがデフォルトだからです。まずは、セッションIDをURLに入れるところから始めましょう。&lt;/p&gt;&lt;p&gt;Drupal のテーマを作ったことあるなら、すぐにリンクタグ（&amp;lt;a&amp;gt;）を作る場合、主に使う関数 l() を修正する必要があると考えると思います。しかし、前回のブログでも見たとおり、セッション・ハンドラーは独自に作り直していますが、セッション管理機構はPHPのものを使っていますので、これにそった形で修正を進めるのが良いと思います。&lt;/p&gt;&lt;p&gt;まず、URLにセッションIDが付加されるようにしましょう。このセッションIDを「透過的なセッションID」といいます。PHPの方で自動的にリンクタグ等にもセッションIDが入らなくては使い物になりませんが、この辺もPHPが勝手にやってくれます。このオプションを設定するには、settings.php の&lt;em&gt;&lt;tt&gt;session.use_trans_sid &lt;/tt&gt;&lt;/em&gt;の設定を'1'にしてやる必要があります。今回はCookieをまったく使わないでやってみるというのが目的ですので、settings.phpを以下のように設定しました。&lt;/p&gt;&lt;blockquote&gt;&lt;code&gt;ini_set(&lt;span style="color: rgb(153, 204, 0);"&gt;'session.use_cookies'&lt;/span&gt;,      0);&lt;br&gt; ini_set(&lt;span style="color: rgb(153, 204, 0);"&gt;'session.use_only_cookies'&lt;/span&gt;, 0);&lt;br&gt; ini_set(&lt;span style="color: rgb(153, 204, 0);"&gt;'session.use_trans_sid'&lt;/span&gt;,    1);&lt;/code&gt;&lt;/blockquote&gt; &lt;p&gt;簡単に設定できました。しかし、これだけではリンクタグとかに透過的なセッションIDを付加したURLが生成されませんので、その近くにあるリライト規則を追加します。&lt;/p&gt;&lt;blockquote&gt;&lt;code&gt;settings.php:ini_set(&lt;span style="color: rgb(153, 204, 0);"&gt;'url_rewriter.tags'&lt;/span&gt;,        &lt;span style="color: rgb(153, 204, 0);"&gt;'a=href,area=href,frame=src,input=src,fieldset='&lt;/span&gt;);&lt;/code&gt;&lt;/blockquote&gt;&lt;p&gt;これでセッションIDがURLに付加されるようになったと思います。&lt;/p&gt;&lt;p&gt;しかし、まだログインができません。何故でしょう？それの答えは&lt;a href="http://drupal.org/node/58019" target="_blank"&gt;ここ&lt;/a&gt;にありました。要約するとdrupal_goto()が、この透過セッションIDに対応しなくなったからなのです。セッション・フィクセーションの事を考えると当然の対応です。&lt;/p&gt;&lt;p&gt;仕方ないので drupal_goto()関数を書き換えて対応するしかなさそうです。drupal_goto()は、includes/common.incにあります。該当する行を見ると確かにURLに新しくログイン後に発行されたセッションIDを付与するところがありません。&lt;/p&gt;&lt;pre class="php"&gt;&lt;code&gt;&lt;span class="php-boundry"&gt;&lt;span class="php-keyword"&gt;function&lt;/span&gt; &lt;span class="php-function-or-constant"&gt;&lt;a href="/api/function/drupal_goto/6" title="Send the user to a different Drupal page." class="local active"&gt;drupal_goto&lt;/a&gt;&lt;/span&gt;(&lt;span class="php-variable"&gt;$path&lt;/span&gt; = &lt;span class="php-string"&gt;''&lt;/span&gt;, &lt;span class="php-variable"&gt;$query&lt;/span&gt; = &lt;span class="php-function-or-constant"&gt;NULL&lt;/span&gt;, &lt;span class="php-variable"&gt;$fragment&lt;/span&gt; = &lt;span class="php-function-or-constant"&gt;NULL&lt;/span&gt;, &lt;span class="php-variable"&gt;$http_response_code&lt;/span&gt; = &lt;span class="php-constant"&gt;302&lt;/span&gt;) {&lt;br&gt;&lt;br&gt;  &lt;span class="php-keyword"&gt;if&lt;/span&gt; (&lt;span class="php-keyword"&gt;isset&lt;/span&gt;(&lt;span class="php-variable"&gt;$_REQUEST&lt;/span&gt;[&lt;span class="php-string"&gt;'destination'&lt;/span&gt;])) {&lt;br&gt;    &lt;span class="php-function-or-constant"&gt;extract&lt;/span&gt;(&lt;span class="php-function-or-constant"&gt;parse_url&lt;/span&gt;(&lt;span class="php-function-or-constant"&gt;urldecode&lt;/span&gt;(&lt;span class="php-variable"&gt;$_REQUEST&lt;/span&gt;[&lt;span class="php-string"&gt;'destination'&lt;/span&gt;])));&lt;br&gt;  }&lt;br&gt;  &lt;span class="php-keyword"&gt;else&lt;/span&gt; &lt;span class="php-keyword"&gt;if&lt;/span&gt; (&lt;span class="php-keyword"&gt;isset&lt;/span&gt;(&lt;span class="php-variable"&gt;$_REQUEST&lt;/span&gt;[&lt;span class="php-string"&gt;'edit'&lt;/span&gt;][&lt;span class="php-string"&gt;'destination'&lt;/span&gt;])) {&lt;br&gt;    &lt;span class="php-function-or-constant"&gt;extract&lt;/span&gt;(&lt;span class="php-function-or-constant"&gt;parse_url&lt;/span&gt;(&lt;span class="php-function-or-constant"&gt;urldecode&lt;/span&gt;(&lt;span class="php-variable"&gt;$_REQUEST&lt;/span&gt;[&lt;span class="php-string"&gt;'edit'&lt;/span&gt;][&lt;span class="php-string"&gt;'destination'&lt;/span&gt;])));&lt;br&gt;  }&lt;br&gt;&lt;br&gt;  &lt;span class="php-variable"&gt;$url&lt;/span&gt; = &lt;span class="php-function-or-constant"&gt;&lt;a href="/api/function/url/6" title="Generate a URL from a Drupal menu path. Will also pass-through existing URLs." class="local"&gt;url&lt;/a&gt;&lt;/span&gt;(&lt;span class="php-variable"&gt;$path&lt;/span&gt;, &lt;span class="php-keyword"&gt;array&lt;/span&gt;(&lt;span class="php-string"&gt;'query'&lt;/span&gt; =&amp;gt; &lt;span class="php-variable"&gt;$query&lt;/span&gt;, &lt;span class="php-string"&gt;'fragment'&lt;/span&gt; =&amp;gt; &lt;span class="php-variable"&gt;$fragment&lt;/span&gt;, &lt;span class="php-string"&gt;'absolute'&lt;/span&gt; =&amp;gt; &lt;span class="php-function-or-constant"&gt;TRUE&lt;/span&gt;));&lt;br&gt;  &lt;span class="php-comment"&gt;// Remove newlines from the URL to avoid header injection attacks.&lt;br&gt;&lt;/span&gt;  &lt;span class="php-variable"&gt;$url&lt;/span&gt; = &lt;span class="php-function-or-constant"&gt;str_replace&lt;/span&gt;(&lt;span class="php-keyword"&gt;array&lt;/span&gt;(&lt;span class="php-string"&gt;"\n"&lt;/span&gt;, &lt;span class="php-string"&gt;"\r"&lt;/span&gt;), &lt;span class="php-string"&gt;''&lt;/span&gt;, &lt;span class="php-variable"&gt;$url&lt;/span&gt;);&lt;br&gt;　&lt;span style="color: rgb(255, 0, 0);"&gt;// この辺に入れたらよいような・・・&lt;/span&gt;&lt;br&gt;  &lt;span class="php-comment"&gt;// Allow modules to react to the end of the page request before redirecting.&lt;br&gt;&lt;/span&gt;  &lt;span class="php-comment"&gt;// We do not want this while running update.php.&lt;br&gt;&lt;/span&gt;  &lt;span class="php-keyword"&gt;if&lt;/span&gt; (!&lt;span class="php-function-or-constant"&gt;defined&lt;/span&gt;(&lt;span class="php-string"&gt;'MAINTENANCE_MODE'&lt;/span&gt;) || &lt;a href="/api/constant/MAINTENANCE_MODE/6" title="Global flag to identify update.php run, and so avoid various unwanted
operations, such as hook_init() and hook_exit() invokes, css/js preprocessing
and translation, and solve some theming issues. This flag is checked on several
places in Drupal code..." class="local"&gt;MAINTENANCE_MODE&lt;/a&gt; != &lt;span class="php-string"&gt;'update'&lt;/span&gt;) {&lt;br&gt;    &lt;span class="php-function-or-constant"&gt;&lt;a href="/api/function/module_invoke_all/6" title="Invoke a hook in all enabled modules that implement it." class="local"&gt;module_invoke_all&lt;/a&gt;&lt;/span&gt;(&lt;span class="php-string"&gt;'exit'&lt;/span&gt;, &lt;span class="php-variable"&gt;$url&lt;/span&gt;);&lt;br&gt;  }&lt;br&gt;&lt;br&gt;  &lt;span class="php-comment"&gt;// Even though session_write_close() is registered as a shutdown function, we&lt;br&gt;&lt;/span&gt;  &lt;span class="php-comment"&gt;// need all session data written to the database before redirecting.&lt;br&gt;&lt;/span&gt;  &lt;span class="php-function-or-constant"&gt;session_write_close&lt;/span&gt;();&lt;br&gt;&lt;br&gt;  &lt;span class="php-function-or-constant"&gt;header&lt;/span&gt;(&lt;span class="php-string"&gt;'Location: '&lt;/span&gt;. &lt;span class="php-variable"&gt;$url&lt;/span&gt;, &lt;span class="php-function-or-constant"&gt;TRUE&lt;/span&gt;, &lt;span class="php-variable"&gt;$http_response_code&lt;/span&gt;);&lt;br&gt;&lt;br&gt;  &lt;span class="php-comment"&gt;// The "Location" header sends a redirect status code to the HTTP daemon. In&lt;br&gt;&lt;/span&gt;  &lt;span class="php-comment"&gt;// some cases this can be wrong, so we make sure none of the code below the&lt;br&gt;&lt;/span&gt;  &lt;span class="php-comment"&gt;// drupal_goto() call gets executed upon redirection.&lt;br&gt;&lt;/span&gt;  &lt;span class="php-keyword"&gt;exit&lt;/span&gt;();&lt;br&gt;}&lt;span class="php-boundry"&gt;&lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;セッションIDを付加していないと言うことだけなら、単純にセッションIDを付加して、リダイレクトするだけで可能なのではということになります。その通りなんですが、その&lt;a href="http://drupal.org/files/issues/phpsess_without_c.patch.txt"&gt;パッチ&lt;/a&gt;（注意：古いのでそのままは使えません）はあります。何か、スマートじゃないですね。でも、 セッションIDを$urlに追加する文を上の&lt;span style="color: rgb(255, 0, 0);"&gt;赤字の箇所&lt;/span&gt;に加えると、確かにセッションIDを引継ぎながら移動できるので、ログイン問題は解決されます。&lt;/p&gt;&lt;pre&gt;if (ini_get('session.use_trans_sid') &amp;amp;&amp;amp; session_id() &amp;amp;&amp;amp; !strstr($url, session_id()) &amp;amp;&amp;amp; !$_COOKIE[session_name()]) {&lt;br&gt;    $sid = session_name() . '=' . session_id();&lt;br&gt;&lt;br&gt;    if (strstr($url, '?') &amp;amp;&amp;amp; !strstr($url, $sid)) {&lt;br&gt;      $url = $url .'&amp;amp;'. $sid;&lt;br&gt;    }&lt;br&gt;    else {&lt;br&gt;      $url = $url .'?'. $sid;&lt;br&gt;    }&lt;br&gt; }&lt;br&gt;&lt;/pre&gt;&lt;p&gt;注意：Drupal のセッション管理がどの程度セッション・フィクセーションに強いか確認してから実際に実装してくださいね。まだ、そこまでコードを追いきれていないので。&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://10share.com/blog/2010-01-20.html" dc:identifier="http://10share.com/blog/2010-01-20.html" dc:title="Drupal 6のセッション管理（３）" trackback:ping="http://10share.com/trackback/58" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZPSN0xd1onOFlSQseq5aQaXMkdw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZPSN0xd1onOFlSQseq5aQaXMkdw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZPSN0xd1onOFlSQseq5aQaXMkdw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZPSN0xd1onOFlSQseq5aQaXMkdw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=HBrsRthhPxY:m9vmy_7lGSo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=HBrsRthhPxY:m9vmy_7lGSo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=HBrsRthhPxY:m9vmy_7lGSo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=HBrsRthhPxY:m9vmy_7lGSo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=HBrsRthhPxY:m9vmy_7lGSo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=HBrsRthhPxY:m9vmy_7lGSo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=HBrsRthhPxY:m9vmy_7lGSo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <comments>http://10share.com/blog/2010-01-20.html#comments</comments>
 <category domain="http://10share.com/category/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA/drupal-%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E7%AE%A1%E7%90%86">Drupal セッション管理</category>
 <pubDate>Wed, 20 Jan 2010 07:54:23 +0000</pubDate>
 <dc:creator>yuki</dc:creator>
 <guid isPermaLink="false">58 at http://10share.com</guid>
</item>
<item>
 <title>Drupal 6のセッション管理（２）</title>
 <link>http://10share.com/blog/2010-01-18.html-0</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&lt;a href="/blog/2010-01-18.html"&gt;先日&lt;/a&gt;は、Drupalのセッション管理がどのタイミングで行われ、置き換えられそうだというところまでわかりました。今回は、携帯向けセッション管理を行うためにまず携帯のセッションってどうしているんだろうという事を知る必要があります。&lt;/p&gt;&lt;p&gt;昔、少し調べた（Webアプリじゃなくて、ロードバランサー側の設計を担当しているときなんですが）時に「こんなんでセッション管理って言えるの？」って感じの仕様だったことを思い出して、色々とウェブサイトを漁ってみました。&lt;a href="http://d.hatena.ne.jp/ockeghem/20090714/p1"&gt;ここ&lt;/a&gt;のドキュメントが詳しく解説していましたので、少しこの辺りの話は省きます。&lt;/p&gt;&lt;p&gt;個体識別番号とかを使うと、キャリア毎にも若干違ったり、やはりPCサイトとの互換性やiPhone等のスマートフォンの台頭を考慮するとこの手法を使って一生懸命実装するのも、ばからしいと思うわけです。&lt;/p&gt;&lt;p&gt;やはり、ここはURLにセッションを埋め込む方法を使いましょう。ということで、今日までに簡単に方針を決めて、明日から実際にコーディングに入っていきたいと思います。&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://10share.com/blog/2010-01-18.html-0" dc:identifier="http://10share.com/blog/2010-01-18.html-0" dc:title="Drupal 6のセッション管理（２）" trackback:ping="http://10share.com/trackback/57" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SPf4k-CnSZYOg7rHDAZ_TmgehXc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SPf4k-CnSZYOg7rHDAZ_TmgehXc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SPf4k-CnSZYOg7rHDAZ_TmgehXc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SPf4k-CnSZYOg7rHDAZ_TmgehXc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=265vXBq7bxM:hjs0rc8DS6I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=265vXBq7bxM:hjs0rc8DS6I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=265vXBq7bxM:hjs0rc8DS6I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=265vXBq7bxM:hjs0rc8DS6I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=265vXBq7bxM:hjs0rc8DS6I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=265vXBq7bxM:hjs0rc8DS6I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=265vXBq7bxM:hjs0rc8DS6I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <comments>http://10share.com/blog/2010-01-18.html-0#comments</comments>
 <category domain="http://10share.com/taxonomy/term/4">Drupal</category>
 <category domain="http://10share.com/category/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA/%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E7%AE%A1%E7%90%86">セッション管理</category>
 <pubDate>Tue, 19 Jan 2010 04:32:31 +0000</pubDate>
 <dc:creator>yuki</dc:creator>
 <guid isPermaLink="false">57 at http://10share.com</guid>
</item>
<item>
 <title>Drupal 6のセッション管理（１）</title>
 <link>http://10share.com/blog/2010-01-18.html</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;&lt;a href="/blog/2010-01-15.html"&gt;先日のブログ&lt;/a&gt;でも少し書いたけど、日本の携帯電話でDrupalは本当に使いにくい。閲覧だけなら、何とかなるのですが、やっぱり編集もしたいという要望も実際にあります。電子メールを使ったブログ投稿ならすぐにできそうですが、将来的にeコマースなどを実現しようと思うと、セッション管理周りはできるように拡張した方がやりやすい。そこでまずDrupalのセッションの管理方法についてコードハックしていきたいと思います。&lt;/p&gt;&lt;p&gt;まず、Drupalのページがどうやって作られるか調べておく必要がありますね。bootstrap.inc を見ればわかるんだけど、&lt;/p&gt;&lt;ol&gt;&lt;li&gt;設定の初期化&lt;/li&gt;&lt;li&gt;データベース以外のキャッシュを取得&lt;/li&gt;&lt;li&gt;データベース・レイヤーの初期化&lt;/li&gt;&lt;li&gt;アクセスが禁止されているホストの判定と拒否&lt;/li&gt;&lt;li&gt;&lt;strong&gt;セッション・ハンドリングを初期化&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;bootstrap.inc と module.inc を読込み、複数のシステムを開始し、キャッシュからページを提供できるか試します。&lt;/li&gt;&lt;li&gt;ページの言語を決定&lt;/li&gt;&lt;li&gt;$_GET['q']に、リクエストのDrupal パスを設定&lt;/li&gt;&lt;li&gt;Drupalを読込完了。&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;という順番で実行されます。セッションのハンドリングは5番目なんですね。では、そのセッション・ハンドリングの生成って何しているのかっていうと、以下の通りです。&lt;/p&gt;&lt;blockquote&gt;&lt;code&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;require_once&lt;/span&gt; variable_get('&lt;span style="color: rgb(153, 204, 0);"&gt;session_inc&lt;/span&gt;', '&lt;span style="color: rgb(153, 204, 0);"&gt;./includes/session.inc&lt;/span&gt;');&lt;br&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;session_set_save_handler&lt;/span&gt;('&lt;span style="color: rgb(153, 204, 0);"&gt;sess_open&lt;/span&gt;', '&lt;span style="color: rgb(153, 204, 0);"&gt;sess_close&lt;/span&gt;', '&lt;span style="color: rgb(153, 204, 0);"&gt;sess_read&lt;/span&gt;', '&lt;span style="color: rgb(153, 204, 0);"&gt;sess_write&lt;/span&gt;', '&lt;span style="color: rgb(153, 204, 0);"&gt;sess_destroy_sid&lt;/span&gt;', '&lt;span style="color: rgb(153, 204, 0);"&gt;sess_gc&lt;/span&gt;');&lt;br&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;session_start&lt;/span&gt;();&lt;/code&gt;&lt;/blockquote&gt; &lt;p&gt;つまり、セッション関連の関数を読み込んで、ハンドラーを定義登録して、セッションIDを生成しているだけなんですね。じゃ、このハンドラーを携帯用に作り替えれば済むんじゃないだろうかという発想ができるわけです。さらに、session.incを読み込むところに、わざわざvariable_getを使って独自に設定出来る余地を残しています。ということは、「1.設定の初期化」の時点で上書きしてしまえば、良いわけですから、Drupalコアをほぼ修正せずに何らかの新しいセッション維持方法を制作できそうですね。&lt;/p&gt;&lt;p&gt;次回は、携帯電話のセッション管理に研究して、まとめてみます。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;!-- google_ad_section_end --&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://10share.com/blog/2010-01-18.html" dc:identifier="http://10share.com/blog/2010-01-18.html" dc:title="Drupal 6のセッション管理（１）" trackback:ping="http://10share.com/trackback/56" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cGIQOUN_jMJRKvrSJz8ufyjc2Uw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cGIQOUN_jMJRKvrSJz8ufyjc2Uw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cGIQOUN_jMJRKvrSJz8ufyjc2Uw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cGIQOUN_jMJRKvrSJz8ufyjc2Uw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=Oa-6S8I9Vzg:EocmkGFssY4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=Oa-6S8I9Vzg:EocmkGFssY4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=Oa-6S8I9Vzg:EocmkGFssY4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=Oa-6S8I9Vzg:EocmkGFssY4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=Oa-6S8I9Vzg:EocmkGFssY4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=Oa-6S8I9Vzg:EocmkGFssY4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=Oa-6S8I9Vzg:EocmkGFssY4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <comments>http://10share.com/blog/2010-01-18.html#comments</comments>
 <category domain="http://10share.com/taxonomy/term/4">Drupal</category>
 <pubDate>Mon, 18 Jan 2010 04:14:21 +0000</pubDate>
 <dc:creator>yuki</dc:creator>
 <guid isPermaLink="false">56 at http://10share.com</guid>
</item>
<item>
 <title>Drupal ってここが嫌</title>
 <link>http://10share.com/blog/2010-01-15.html</link>
 <description>&lt;!-- google_ad_section_start --&gt;&lt;p&gt;Drupal をまるまる1年じっくり使いサービスを提供してみると、色々と弱点も見えてきます。ここのブログでは、弊社でサービスを提供しているのだから強みを中心に説明していくところなんでしょうが、やっぱりあまり過大評価しすぎるのもどうかと思うので客観的に評価してみることにしました。&lt;/p&gt;&lt;p&gt;&lt;!--break--&gt;&lt;/p&gt;&lt;h3&gt;日本の携帯電話への対応&lt;/h3&gt;&lt;p&gt;悩ましい点は、やはり日本の携帯サイトへの対応の難しさでしょうか。海外では自動変換サービス等でDrupal から直接変換してくれるモジュールがあったりしますが、日本国内の「独自仕様向け」には使えません。Pdathemeなる自動テーマ変換ツールを使って簡単な携帯サイトを構築しましたが、ちょっと満足いくできにはいっていません。もっと細かいことをすると、やはり他の国産に比べるとコストがかかりそうです。&lt;/p&gt;&lt;p&gt;殆どがテーマで解決するのですが、今度はログインセッションをCookieでしか扱っていないので、日本の携帯電話で使われている UserAgentや個体識別番号でセッションを維持する仕組みを作らなくてはなりません（たぶん、それ程難しい拡張では無いけど・・・）。&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;nbsp;&lt;/span&gt;今年の研究テーマになりそうですね。&lt;/p&gt;&lt;h3&gt;英語が苦手な人には・・・&lt;/h3&gt;&lt;p&gt;Drupalは、全世界で使われていますが、主な言語は「英語」です。スペイン語やドイツ語のインタフェイスは比較的すぐに作られますが、「日本語」はまだまだ少ないです。なので、英語が苦手な人にはとっつきにくいかもしれませんね。&lt;/p&gt;&lt;h3&gt;日本語情報が少ない&lt;/h3&gt;&lt;p&gt;同じオープンソースのWordpressに比べると日本語情報が充実していないように思います。Joomla、Zen-Cartを使った時もそうでしたが、日本ではこの手のCMS関連の情報は本家で英語で得るのが一番っていう状況なようです。&lt;/p&gt;&lt;p&gt;特に、ヨーロッパ語圏と日本語圏の発想の違いか、提案したお客様からはよく「mixiみたいなGUIが欲しい」っていわれるとつらいです。mixiのインタフェイスは日本ではデファクトスタンダードなので、致し方ないってところですが、毎回ちょっと軽いショックを受けます。意外と多いですよ、そういう依頼がくるのは・・・&lt;/p&gt;&lt;p&gt;特にDrupalだけでなく、phpBB等のフォーラム形式もよくお客様から使い方が分からないと言われました。やっぱり、日本だと2chを代表する「掲示板」形式が一般的なので取っつきにくいのかもしれませんね。&lt;/p&gt;&lt;h3&gt;拡張モジュールは、たくさんありますが・・・&lt;/h3&gt;&lt;p&gt;Drupal最大の特徴であり、強みであるサードパーティ・モジュールですが、これにも困った事があります。ある程度の基準や設定・コードの記述の仕方まで決まっているのですが、インストール方法から設定が作者でバラバラなんです。それと、使い方があまり詳しく記載されていなかったり、デモが無いものが多いです。最終的にはコードを解析して、使い方を習得しているんですが、少々効率が悪いです。&lt;/p&gt;&lt;h3&gt;最後に&lt;/h3&gt;&lt;p&gt;と、まだまだ改善していきたい部分はありますが、CMSとしては非常に強力で、沢山の可能性を秘めていると信じています。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;&lt;/h3&gt;&lt;!-- google_ad_section_end --&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://10share.com/blog/2010-01-15.html" dc:identifier="http://10share.com/blog/2010-01-15.html" dc:title="Drupal ってここが嫌" trackback:ping="http://10share.com/trackback/55" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xzDTwJDBIHCvrB5fWVTmdyDryYo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xzDTwJDBIHCvrB5fWVTmdyDryYo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xzDTwJDBIHCvrB5fWVTmdyDryYo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xzDTwJDBIHCvrB5fWVTmdyDryYo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=7WR2RmBGSlc:KgU7gAYNOgI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=7WR2RmBGSlc:KgU7gAYNOgI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=7WR2RmBGSlc:KgU7gAYNOgI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=7WR2RmBGSlc:KgU7gAYNOgI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?i=7WR2RmBGSlc:KgU7gAYNOgI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=7WR2RmBGSlc:KgU7gAYNOgI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/tosharecomu?a=7WR2RmBGSlc:KgU7gAYNOgI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/tosharecomu?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
 <comments>http://10share.com/blog/2010-01-15.html#comments</comments>
 <category domain="http://10share.com/category/%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA/drupal-cms">Drupal CMS</category>
 <pubDate>Fri, 15 Jan 2010 06:10:56 +0000</pubDate>
 <dc:creator>yuki</dc:creator>
 <guid isPermaLink="false">55 at http://10share.com</guid>
</item>
<item><title>Links for 2009-11-24 [del.icio.us]</title><link>http://del.icio.us/tosharecomu#2009-11-24</link><pubDate>Wed, 25 Nov 2009 00:00:00 PST</pubDate><guid isPermaLink="true">http://del.icio.us/tosharecomu#2009-11-24</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.webdesignclip.com/"&gt;Web Design Clip [WEB&amp;#12487;&amp;#12470;&amp;#12452;&amp;#12531;&amp;#12398;&amp;#12463;&amp;#12522;&amp;#12483;&amp;#12503;&amp;#12539;&amp;#12522;&amp;#12531;&amp;#12463;&amp;#38598;]&lt;/a&gt;&lt;br/&gt;
参考になるサイトが一杯あるね。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Links for 2009-11-19 [del.icio.us]</title><link>http://del.icio.us/tosharecomu#2009-11-19</link><pubDate>Fri, 20 Nov 2009 00:00:00 PST</pubDate><guid isPermaLink="true">http://del.icio.us/tosharecomu#2009-11-19</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://vpslife.blogspot.com/2009/09/nginx-php-cgi-spawn-fci-ftp-vhosts.html"&gt;Virtual Private Server Life: NGINX, PHP-CGI, SPAWN-FCI, FTP, VHOSTS, MYSQL | centos-fedora-redhat&lt;/a&gt;&lt;br/&gt;
Nginx setup for centos...&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Links for 2009-11-12 [del.icio.us]</title><link>http://del.icio.us/tosharecomu#2009-11-12</link><pubDate>Fri, 13 Nov 2009 00:00:00 PST</pubDate><guid isPermaLink="true">http://del.icio.us/tosharecomu#2009-11-12</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://e-words.jp/p/r-htmlentity.html"&gt;HTML&amp;#12398;&amp;#29305;&amp;#27530;&amp;#25991;&amp;#23383; &amp;#65306; IT&amp;#29992;&amp;#35486;&amp;#36766;&amp;#20856;&lt;/a&gt;&lt;br/&gt;
時々必要になるからな。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Links for 2009-10-13 [del.icio.us]</title><link>http://del.icio.us/tosharecomu#2009-10-13</link><pubDate>Wed, 14 Oct 2009 00:00:00 PDT</pubDate><guid isPermaLink="true">http://del.icio.us/tosharecomu#2009-10-13</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.ifixit.com/"&gt;iFixit: Apple Mac, MacBook, iPod, and iPhone Repair Parts&lt;/a&gt;&lt;br/&gt;
My MacBook Pro&amp;#039;s fan made noisy so I ordered it&lt;/li&gt;
&lt;li&gt;&lt;a href="http://css.studiomohawk.com/23/ie-double-margin-bug-fix/"&gt;IE &amp;#12480;&amp;#12502;&amp;#12523;&amp;#12510;&amp;#12540;&amp;#12472;&amp;#12531;&amp;#12501;&amp;#12525;&amp;#12540;&amp;#12488;&amp;#12496;&amp;#12464;&amp;#12434;Fix | CSS Radar&lt;/a&gt;&lt;br/&gt;
IE bugs memo&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Links for 2009-09-29 [del.icio.us]</title><link>http://del.icio.us/tosharecomu#2009-09-29</link><pubDate>Wed, 30 Sep 2009 00:00:00 PDT</pubDate><guid isPermaLink="true">http://del.icio.us/tosharecomu#2009-09-29</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://76design.com/shiftcontrol/index.php/2006/08/22/dynamic-page-flip-v2/"&gt;&amp;raquo; Dynamic Page Flip v2 from shift+control&lt;/a&gt;&lt;br/&gt;
finaly find this&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Links for 2009-09-06 [del.icio.us]</title><link>http://del.icio.us/tosharecomu#2009-09-06</link><pubDate>Mon, 07 Sep 2009 00:00:00 PDT</pubDate><guid isPermaLink="true">http://del.icio.us/tosharecomu#2009-09-06</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.fashion-j.com/index.html"&gt;&amp;#36913;&amp;#21002;&amp;#12501;&amp;#12449;&amp;#12483;&amp;#12471;&amp;#12519;&amp;#12531;&amp;#24773;&amp;#22577;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.tsushin.tv/links/"&gt;&amp;#12501;&amp;#12449;&amp;#12483;&amp;#12471;&amp;#12519;&amp;#12531;&amp;#12522;&amp;#12531;&amp;#12463;&amp;#38598;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fashion.aladdin-help.jp/touroku.html"&gt;&amp;#12499;&amp;#12472;&amp;#12493;&amp;#12473;&amp;#12510;&amp;#12483;&amp;#12481;&amp;#12531;&amp;#12464;&amp;#12289;&amp;#12499;&amp;#12472;&amp;#12493;&amp;#12473;&amp;#25903;&amp;#25588;&amp;#12394;&amp;#12425;&amp;#12289;&amp;#12501;&amp;#12449;&amp;#12483;&amp;#12471;&amp;#12519;&amp;#12531;&amp;#26989;&amp;#30028;&amp;#24773;&amp;#22577;&amp;#12522;&amp;#12531;&amp;#12463;&amp;#38598;&amp;#12300;FashionLink&amp;#12301;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.shop-bell.com/menscasual/"&gt;&amp;#12513;&amp;#12531;&amp;#12474;&amp;#12459;&amp;#12472;&amp;#12517;&amp;#12450;&amp;#12523;&amp;#12501;&amp;#12449;&amp;#12483;&amp;#12471;&amp;#12519;&amp;#12531;&amp;#36890;&amp;#36009;&amp;#12521;&amp;#12531;&amp;#12461;&amp;#12531;&amp;#12464;&amp;#12289;&amp;#12513;&amp;#12531;&amp;#12474;&amp;#12459;&amp;#12472;&amp;#12517;&amp;#12450;&amp;#12523;&amp;#12501;&amp;#12449;&amp;#12483;&amp;#12471;&amp;#12519;&amp;#12531;&amp;#36009;&amp;#22770;&amp;#12471;&amp;#12519;&amp;#12483;&amp;#12503;&amp;#12522;&amp;#12531;&amp;#12463;&amp;#38598;&amp;#12304;&amp;#12471;&amp;#12519;&amp;#12483;&amp;#12503;&amp;#12505;&amp;#12523;&amp;#12305;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel>
</rss>
