<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DASALOG -ださろぐ</title>
	<atom:link href="http://dasalog.eg2mix.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dasalog.eg2mix.com</link>
	<description>システム開発者からコーヒー屋への道。</description>
	<lastBuildDate>Thu, 09 Feb 2012 08:28:25 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>muninのapache関連のデータ取得で忘れがちな点</title>
		<link>http://dasalog.eg2mix.com/munin%e3%81%aeapache%e9%96%a2%e9%80%a3%e3%81%ae%e3%83%87%e3%83%bc%e3%82%bf%e5%8f%96%e5%be%97%e3%81%a7%e5%bf%98%e3%82%8c%e3%81%8c%e3%81%a1%e3%81%aa%e7%82%b9/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=munin%25e3%2581%25aeapache%25e9%2596%25a2%25e9%2580%25a3%25e3%2581%25ae%25e3%2583%2587%25e3%2583%25bc%25e3%2582%25bf%25e5%258f%2596%25e5%25be%2597%25e3%2581%25a7%25e5%25bf%2598%25e3%2582%258c%25e3%2581%258c%25e3%2581%25a1%25e3%2581%25aa%25e7%2582%25b9</link>
		<comments>http://dasalog.eg2mix.com/munin%e3%81%aeapache%e9%96%a2%e9%80%a3%e3%81%ae%e3%83%87%e3%83%bc%e3%82%bf%e5%8f%96%e5%be%97%e3%81%a7%e5%bf%98%e3%82%8c%e3%81%8c%e3%81%a1%e3%81%aa%e7%82%b9/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 08:28:25 +0000</pubDate>
		<dc:creator>eg</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[munin]]></category>
		<category><![CDATA[インフラ]]></category>

		<guid isPermaLink="false">http://dasalog.eg2mix.com/?p=248</guid>
		<description><![CDATA[メモエントリーです。 シンボリックリンクを追加 httpd.confに以下を追加（これよく忘れる・・） locationで設定出来ないケースもあるのでバーチャルホストで定義してしまう curlなどで叩いてみる 問題なけれ [...]]]></description>
			<content:encoded><![CDATA[<p>メモエントリーです。</p>
<p>シンボリックリンクを追加</p>
<pre class="brush: bash; title: ; notranslate">
ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses
ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes
ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume
</pre>
<p>httpd.confに以下を追加（これよく忘れる・・）</p>
<pre class="brush: plain; title: ; notranslate">
ExtendedStatus On
</pre>
<p>locationで設定出来ないケースもあるのでバーチャルホストで定義してしまう</p>
<pre class="brush: plain; title: ; notranslate">
#status
&lt;VirtualHost *:80&gt;
    ServerName 127.0.0.1
    &lt;Location /server-status&gt;
      SetHandler server-status
      Order deny,allow
      Deny from all
      allow from 127.0.0.1
    &lt;/Location&gt;
&lt;/VirtualHost&gt;
</pre>
<p>curlなどで叩いてみる</p>
<pre class="brush: bash; title: ; notranslate">
curl http://127.0.0.1/server-status
</pre>
<p>問題なければmunin-nodeをrestart</p>
]]></content:encoded>
			<wfw:commentRss>http://dasalog.eg2mix.com/munin%e3%81%aeapache%e9%96%a2%e9%80%a3%e3%81%ae%e3%83%87%e3%83%bc%e3%82%bf%e5%8f%96%e5%be%97%e3%81%a7%e5%bf%98%e3%82%8c%e3%81%8c%e3%81%a1%e3%81%aa%e7%82%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows+Eclipseで（ゴテゴテした）快適なCake開発環境を作る（CakePHP Advent Calendar 2011 11日目）</title>
		<link>http://dasalog.eg2mix.com/advent-201111/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=advent-201111</link>
		<comments>http://dasalog.eg2mix.com/advent-201111/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 18:53:10 +0000</pubDate>
		<dc:creator>eg</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[環境]]></category>
		<category><![CDATA[cakephp]]></category>

		<guid isPermaLink="false">http://dasalog.eg2mix.com/?p=165</guid>
		<description><![CDATA[@mon_satさんからバトンを受け取ってのAdvent Calendar2011 11日目担当EG（@EGMC）です。 初参加で地味ネタですが、開発環境の話ってあまり聞かないのでとりあえず自分なりに育てた開発環境の話を [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/#!/mon_sat" target="_blank">@mon_sat</a>さんからバトンを受け取ってのAdvent Calendar2011 11日目担当EG（<a href="http://twitter.com/#%21/EGMC" target="_blank">@EGMC</a>）です。<br />
初参加で地味ネタですが、開発環境の話ってあまり聞かないのでとりあえず自分なりに育てた開発環境の話をしてみます。</p>
<p><em><span style="color: #000000;">※注　この前置きは長いのでさっさと本題に入りたい方は「開発環境構築編（ここから本編）」へどうぞ</span></em></p>
<p>ネタはWindows+EclipsePDT+その他tools。<br />
昨今、勉強会に行くと皆MacBook Airなどを片手に、華麗にターミナルを開いてVimやEmacsで優雅にコーディングしている光景を目に致します。<br />
そんな光景を横目に見つつ、しかしThinkpadでWindowsを起動してEclipseでもっさり開発している人たちも一定数いるはずだ！と信じてこのエントリーを書く次第です。いるかなあ。いるといいなあ。<br />
前提として環境は</p>
<p><em>・開発サーバー（物理でもVPSでも）を外部（VMとかではなく）立てていて、DBは同サーバー（または同一ネットワーク内）にある</em><br />
<em> ・ローカル環境はWindows+EclipsePDTで構築しており、プロジェクトは作成済み</em><br />
<em> ・ソース編集はローカルで行うが、DBの操作やデバッグ（ログのtailとか）はリモートで行う<br />
・ローカルのWindows環境にもphpがインストールされてる（bake用）<br />
</em></p>
<p>とします。<br />
それ以前の情報は検索すればすぐ当たると思うので他に譲ります。<br />
なお、cake1.3系で書きますが2.0系でも基本的に同じような事が出来ます。<br />
環境設定上examle.netとかにしている部分は適宜ご自分の環境に置き換えてくださいませ。</p>
<h2>なぜWindowsなのか？</h2>
<p>・プラットフォームに依存したエディタとか、使い慣れたツールがたくさんあるからです。例えば私はHTMLエディタにCrecsent EVEを使ってます。</p>
<h2>なぜEclipseなのか？</h2>
<p>・元々自分がJava開発をメインでやってたのでその流れて使い始め、慣れていたというのが大きい<br />
・起動の重さとかは色々あるものの、強力な補完機能（コード、Docコメント）、コードへのジャンプ、バージョン管理連携、プラグイン拡張など現実的な機能が多い<br />
・最悪外部エディタが起動出来たり結構なんとかなる<br />
・他の環境（Andoroid開発環境とか）と同居出来る<br />
・起動の遅さについては<a href="http://dasalog.eg2mix.com/vsuite-ramdisk-free-editionを使ってeclipse高速化/">RAMDISKなどを使って</a>ある程度は改善出来る</p>
<h2>なぜ外にサーバーを立てるのか？</h2>
<p>・自分の場合、会社と家で使うPCが違ったりするのでローカルに環境作ると何かと面倒くさい<br />
・外部から叩かれる（例えばFacebookのプラグイン入れたりとか）ような機能を追加したりする<br />
・他の人と環境を共有したりする<br />
・↑みたいなことが無ければ全然VMでいいかなーと思ってます</p>
<h2>使うツール群</h2>
<p>・<a href="http://mergedoc.sourceforge.jp/" target="_blank">Eclipse PDT（IDE） </a><br />
・<a href="http://winscp.net/eng/docs/lang:jp" target="_blank">WinSCP（ファイル転送） </a><br />
・<a href="http://toh.fuji-climb.org/pf/JP/" target="_blank">PortFowarder（ポート転送） </a></p>
<h2><span style="color: #000000;">開発環境構築編（ここから本編）</span></h2>
<h3>１）ファイルの自動転送</h3>
<p>今回の構成では開発環境はリモートにあるのですが、ソースの反映は書き換えたらリアルタイムで行いたいですよね。<br />
というわけで変更を即座に反映するよう自動転送します。<br />
WinSCPの同期機能を使います。</p>
<p><a href="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/winscp_01.jpg"><img class="alignnone size-medium wp-image-185" title="winscp_01" src="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/winscp_01-300x263.jpg" alt="" width="300" height="263" /></a></p>
<p>ローカルはEclipseのプロジェクトフォルダを指定してパスを合わせます。<br />
これで監視下のフォルダで変更があると即座にリモートへ転送してくれます。<br />
無視したいファイル（.svnなど）はこんな感じで除外リストに入れておきましょう。</p>
<p><a href="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/winscp_02.jpg"><img class="alignnone size-medium wp-image-192" title="winscp_02" src="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/winscp_02-300x222.jpg" alt="" width="300" height="222" /></a></p>
<p>この状態でセッション保存しておけば、起動→接続→CTRL+Uですぐ同期をスタート出来ます。</p>
<h3>２）Eclipseの自動補完を効かせる</h3>
<p>なぜEclipseなのか？の所で補完機能を使いたいからだよ！と書きましたが、フレームワーク故にというかCakeはあまりモデルそのものをnewしたりしないので、そのままではほとんど補完が効きません（モデル、コンポーネント、etc・・）。<br />
というわけで補完を効かせるようにコードをいじります。<br />
正直、IDEの補完機能のために不要なコードを足すのはどうなの？という思いもありますが開発効率や動作速度を天秤にかけてこの方法を採用しています。</p>
<p>app_controller.phpに</p>
<pre class="brush: php; title: ; notranslate">
/**
* Userモデル
*
* @var User
*/
var $User;

/**
* セッションコンポーネント
*
* @var SessionComponent
*/
var $Session;

/**
* authコンポーネント
*
* @var AuthComponent
*/
var $Auth;

/**
* セキュリティコンポーネント
*
* @var AuthComponent
*/
var $Security;
</pre>
<p>のように書いてどのクラスかを教えてあげます。</p>
<p>これで補完が効くようになります。</p>
<p><a href="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/eclipse_hokan_02.jpg"><img class="alignnone size-full wp-image-220" title="eclipse_hokan_02" src="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/eclipse_hokan_02.jpg" alt="" width="715" height="351" /></a></p>
<h3>３）ローカルからbakeを使う</h3>
<p>cakeといえばbakeですよね。<br />
モデルやコントローラの生成が楽に行えますが、リモートで生成したファイルをいちいち持ってくるのは面倒です。<br />
ローカルで（かつIDE内で）作ります。</p>
<p>bakeは当然phpが必要なのでローカルのWindowsマシンにphpを入れます。<br />
bake.batはphpにパスが通ってる前提なのでパスを通します。</p>
<p><a href="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/env_setting.jpg"><img class="alignnone size-full wp-image-204" title="env_setting" src="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/env_setting.jpg" alt="" width="403" height="140" /></a></p>
<p>さて、これでbakeは実行出来るのですが、モデルの情報を取得するのにDBに接続しなければなりません。<br />
ローカルにDB作るという方法もありますが、いちいち二重化させるのは面倒なのでリモートのDBに繋ぎたいです。<br />
ポート転送を使いましょう。<br />
Teratermのポート転送機能などもありますが、今回はPortForwarderを使います。</p>
<p><a href="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/portfowarder_02.jpg"><img class="alignnone size-full wp-image-215" title="portfowarder_02" src="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/portfowarder_02.jpg" alt="" width="326" height="239" /></a></p>
<p>config.txtはこんな感じで</p>
<pre class="brush: bash; title: ; notranslate">
Host dev.example.net
HostName dev.example.net
# hostname or IP address

User hoge
# username on server. NEEDED

LocalForward 13306 localhost:3306
# localforward info1

Compression yes
# if you need compression

IdentityFile dev.example.net-key.rsa
</pre>
<p>13306ポートをリモートサーバーの3306に転送してます。<br />
これでPortForwarderを立ち上げてDBの接続先を13306にすれば繋がります。<br />
開発環境と、ローカルで接続情報が異なる場合は実行パスの判定などを行って接続先を切り替えます。</p>
<p>core.phpで切り替える場合は例えばこんな感じで</p>
<pre class="brush: php; title: ; notranslate">
if (__FILE__ === 'C:\path_to_workspace\project\app\core.php') {
// ローカルでbakeするための設定
    define( '_DB_HOST' , '127.0.0.1:13306' );
    define( '_DB_NAME' , 'projectname' );
    define( '_DB_USER' , 'user' );
    define( '_DB_PASS' , 'pass' );
} else {
    // サーバーで動かすための設定
    define( '_DB_HOST' , '127.0.0.1:3306' );
    define( '_DB_NAME' , 'projectname' );
    define( '_DB_USER' , 'user' );
    define( '_DB_PASS' , 'pass' );
}
</pre>
<p>※ちなみにCake2.x系の場合はPORTは別指定になりますね</p>
<p>bake用の実行構成を実行→外部ツールから作成します。</p>
<p><a href="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/bake_setting.jpg"><img class="alignnone size-full wp-image-212" title="bake_setting" src="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/bake_setting.jpg" alt="" width="448" height="588" /></a></p>
<p>これでIDEからbakeが実行出来ます。</p>
<p><a href="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/bake_console1.jpg"><img class="alignnone size-large wp-image-211" title="bake_console" src="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/bake_console1-800x189.jpg" alt="" width="800" height="189" /></a></p>
<p>ファイルの生成を行った後、F5でファイルのリフレッシュを行うと反映されますね。</p>
<p>ここまでやると晴れて快適に補完も効き、bakeも使え、ソースも同期される開発環境が構築出来ます。</p>
<p>ちなみにここまでの設定をすべて行って必要な諸々を起動すると画面はこんな感じになります。</p>
<p><a href="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/dev_ss_02.jpg"><img class="alignnone size-large wp-image-236" title="dev_ss_02" src="http://dasalog.eg2mix.com/wp-content/uploads/2011/12/dev_ss_02-800x500.jpg" alt="" width="800" height="500" /></a></p>
<p>・・・・まあ非常にWindowsらしい感じですね、うんうん。<br />
立ち上げているものも多く、そもそもサーバー側で作業すれば楽なことも多々ありますが、まあこれはこれで慣れればいいものですよー。<br />
Windowsで開発をされている方のお役に立てれば幸いです。<br />
あと、こんな面倒なことしなくてもこんなんありまっせ！みたいな情報もあれば是非twitterなどで突っ込んで頂ければと思います。</p>
<p>そんなこんなで初参加の<a href="http://atnd.org/events/22721">CakePHP Advent Calendar 2011でした。</a>明日は<a href="http://twitter.com/#!/slumbers99" target="_blank">@slumbers99</a>さんです！</p>
]]></content:encoded>
			<wfw:commentRss>http://dasalog.eg2mix.com/advent-201111/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CakePHPのShell内部でemailビューをレンダリングしてQdmailでメールを送る</title>
		<link>http://dasalog.eg2mix.com/cakephp-shell-qdmail/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cakephp-shell-qdmail</link>
		<comments>http://dasalog.eg2mix.com/cakephp-shell-qdmail/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 06:59:02 +0000</pubDate>
		<dc:creator>eg</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[qdmail]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://dasalog.eg2mix.com/?p=156</guid>
		<description><![CDATA[タイトルまま。 我ながらこれは悪手だと思うがとりあえずこの方法で実現は出来ましたので公開。 こんなやり方もあるよ！とかあれば是非twitterなどでツッコミくださいませ。 ちなみにビューはSmartyプラグインを使ってい [...]]]></description>
			<content:encoded><![CDATA[<p>タイトルまま。<br />
我ながらこれは悪手だと思うがとりあえずこの方法で実現は出来ましたので公開。<br />
こんなやり方もあるよ！とかあれば是非twitterなどでツッコミくださいませ。<br />
ちなみにビューはSmartyプラグインを使っていますがこの場合基本ビューはなんでもよく、ヘルパーも普通に使えると思います（多分）＿。</p>
<h4>環境</h4>
<p>PHP5.3.6<br />
CakePHP1.3系<br />
Qdmail1.2.6b</p>
<h4>そもそもの問題点</h4>
<p>cakeのというか、Qdmailの仕様で、ビューのemailエレメントを使ってメール本文を構築する際に、コントローラーに値をセットして渡す必要がある。<br />
コントローラーからメール送信する場合はそれでよいが、シェルなどから（例えばユーザーに対しての一斉送信などで）メールを送る場合はコントローラーが存在しないため値の受け渡しが出来ないので考えた結果コントローラをでっちあげる事にしたという話。</p>
<h4>サンプル</h4>
<pre class="brush: php; title: ; notranslate">
&lt;?php

App::import('Core', 'Controller');
App::import('Component', 'Qdmail');
App::import('Core', 'Router');

class HogeShell extends Shell {

    var $uses = array('User');

    function startup() {

    }

    function main() {

        // qdmail
        $this-&gt;Qdmail = new QdmailComponent();
        // テンプレートに入れ込むためのデータ
        $userdata = $this-&gt;User-&gt;read(null, 100);

        // Qdmailコンポーネントに食わせるためのダミーコントローラーを生成
        App::import(&quot;Controller&quot;, &quot;App&quot;);
        $dummycontroller = new AppController();
        // 値をセット
        $dummycontroller-&gt;set(&quot;user&quot;, $userdata);
        // startupを自分で呼んでダミーコントローラーを渡す
        $this-&gt;Qdmail-&gt;startup($dummycontroller);

        $this-&gt;Qdmail-&gt;to($userdata['User']['email']);
        $this-&gt;Qdmail-&gt;subject('シェルからのメール送信');
        $this-&gt;Qdmail-&gt;from('test@example.com');
        // emailエレメント使う
        $this-&gt;Qdmail-&gt;cakeText( null ,'users.notice');
        $this-&gt;Qdmail-&gt;send();
    }
}
</pre>
<p>これで生成したAppコントローラーを経由して値の受け渡しが出来、送信時にviews以下のテンプレートを使用することが出来る。<br />
コントローラーはもちろんダミーで無駄な生成コストがかかってるがとりあえずやりたい内容は実現出来た。</p>
<h4>そもそもの話というか不満点</h4>
<p>emailの送信はコントローラーだけでなく色々なレイヤーで行われるので、コントローラーに依存したくない。画面出力に使わない値をメール送信のためだけのコントローラーにバインドするというのもちょっと気持ち悪い。<br />
（まとめて配列でパラメータを渡すとかでいいと思う）</p>
<p>いずれにせよこれはあまり筋の良い解決法とは思われないので、何か良い方法を考えたい・・。</p>
]]></content:encoded>
			<wfw:commentRss>http://dasalog.eg2mix.com/cakephp-shell-qdmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP2.0.2で意地でもTwigを使ってみる</title>
		<link>http://dasalog.eg2mix.com/cakephp2-0-2-twig/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cakephp2-0-2-twig</link>
		<comments>http://dasalog.eg2mix.com/cakephp2-0-2-twig/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 14:46:52 +0000</pubDate>
		<dc:creator>eg</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[twig]]></category>

		<guid isPermaLink="false">http://dasalog.eg2mix.com/?p=124</guid>
		<description><![CDATA[CakePHPの2.0系が最近安定版リリースされましたね。 まだまだ情報は少ないですが、折角なので新規の開発は1.3系ではなく2系でやりたい！と思うこの頃です。 さて、CakeといえばテンプレートエンジンはSmartyを [...]]]></description>
			<content:encoded><![CDATA[<p>CakePHPの2.0系が最近安定版リリースされましたね。<br />
まだまだ情報は少ないですが、折角なので新規の開発は1.3系ではなく2系でやりたい！と思うこの頃です。</p>
<p>さて、CakeといえばテンプレートエンジンはSmartyを使う人が多い印象ですが私は圧倒的にTwigが好きです。然り、Twigが好きなわけです。</p>
<p>CakeでTwigを利用するプラグインは<a href="https://github.com/m3nt0r/cakephp-twig-view">こんな感じで</a>Kjell Bublitz氏が作成されているわけですが、<a href="http://cakealot.com/2011/05/twig-for-cakephp-updates/">早くも2系に実験的ながら対応しました</a>的なことが書いてあるのでこれは！ということで導入してみました。<br />
2系の仕様がよくわかってなかったりドキュメントがまだアレだったりと色々ありましたがとりあえず動かせてます。</p>
<p>環境：<br />
CakePHP2.0.2<br />
Twig1.3.0(stable)<br />
cakephp-twig-view(commit a5fc2e6291)</p>
<p>導入：<br />
１）基本的にInstallationに書いてある通りのフォルダ階層で突っ込みます。</p>
<p><img class="alignnone size-full wp-image-151" title="フォルダ体系２" src="http://dasalog.eg2mix.com/wp-content/uploads/2011/11/22247a771f7b162e92df5affd39f7547.jpg" alt="" width="298" height="408" /></p>
<p>こんな感じで、Plugin直下にtwig_viewを配置。<br />
Twig本体はvendorsの下に配置。</p>
<p>２）初期設定諸々</p>
<p>app/Config/bootstrap.phpあたりに下記コードを追加してプラグイン有効化</p>
<pre class="brush: php; title: ; notranslate">
CakePlugin::load('TwigView');
</pre>
<p>app/Controller/AppController.phpにてviewClassの変更<br />
(2系は$viewではないっぽい)</p>
<pre class="brush: php; title: ; notranslate">
class AppController extends Controller {

    public $viewClass = &quot;TwigView.Twig&quot;;
}
</pre>
<p>３）app/Plugin/views/twig.phpの編集<br />
そのままだと動かなかったのでパスまわりの修正をする。<br />
・Twigオートローダーの読み込み</p>
<pre class="brush: php; title: ; notranslate">
// Load Twig Lib and start auto loader
App::import('Vendor', 'TwigView.TwigAutoloader', array(
'file' =&gt; 'Twig'.DS.'lib'.DS.'Twig'.DS.'Autoloader.php'
));
include_once __DIR__ . '/../vendors/' . 'Twig'.DS.'lib'.DS.'Twig'.DS.'Autoloader.php';
</pre>
<p>・・App::importがなぜかうまく読み込めてなかったので無理矢理include・・App::importの仕様がようわからんです。</p>
<p>・2系用にパス周りの修正とautoescape<br />
まとめてこんな感じに書き換えちゃいました。<br />
autoescapeは後述しますがちょっと問題があるのでお好みで。私はonにしました。</p>
<pre class="brush: php; title: ; notranslate">
    function __construct(&amp;$controller, $register = true) {

        parent::__construct($controller, $register);

        if($this-&gt;isCake2()) {

            // just collecting for str_replace
            $this-&gt;templatePaths = array(
                APP.'View',
                ROOT.DS.'cake'.DS.'Lib'.DS.'View'
            );
            $loader = new Twig_Loader_Filesystem(APP.'View');
        } else {
            $this-&gt;templatePaths = array(
                APP.'views',
                ROOT.DS.'cake'.DS.'libs'.DS.'view'
            );

            // we always look in APP, this includes error templates.
            $loader = new Twig_Loader_Filesystem(APP.'views');
        }
        // setup twig and go.
        $this-&gt;Twig = new Twig_Environment($loader, array(
            'cache' =&gt; TWIG_VIEW_CACHE,
            'charset' =&gt; strtolower(Configure::read('App.encoding')),
            'auto_reload' =&gt; (bool) Configure::read('debug'),
            //'autoescape' =&gt; false
            'autoescape' =&gt; true
        ));;

        // overwrite some stuff
        $this-&gt;Twig-&gt;addExtension(new CoreExtension);

        // activate |trans filter
        $this-&gt;Twig-&gt;addExtension(new Twig_Extension_I18n);

        // activate |ago filter
        $this-&gt;Twig-&gt;addExtension(new Twig_Extension_TimeAgo);

        // activate basic filter
        $this-&gt;Twig-&gt;addExtension(new Twig_Extension_Basic);

        // activate number filters
        $this-&gt;Twig-&gt;addExtension(new Twig_Extension_Number);

        if (isset($controller-&gt;theme))
            $this-&gt;theme =&amp; $controller-&gt;theme;

        $this-&gt;ext = '.tpl';
    }

}
</pre>
<p>$this-&gt;isCake2()を使ってざっくりパスの切替をしています。<br />
$this-&gt;isCake2は親で設定されるプロパティを使って判定しているので、親のコンストラクタの後に諸々の処理を移動しています。</p>
<p>４）使ってみる</p>
<p>コントローラーでこんな値を設定してみて</p>
<pre class="brush: php; title: ; notranslate">

public function index() {

    $array_vars = array(&quot;foo&quot; =&gt; &quot;&lt;bar&gt;&quot;,&quot;hoge&quot; =&gt; &quot;&lt;hogehoge&gt;&quot; );

    $this-&gt;set(&quot;hello&quot;, &quot;&lt;hello! It's a beautiful Twig World!!&gt;&quot;);
    $this-&gt;set(&quot;array_vars&quot;, $array_vars);

}
</pre>
<p>出力してみます。ビューファイルの拡張子は.tplで（変更可能）</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div&gt;
変数：
     {{hello}}
&lt;/div&gt;
&lt;div&gt;
連想配列：
&lt;ul id=&quot;sortable_list&quot;&gt;
{% for k,v in array_vars %}
    &lt;li&gt; {{ k }} , {{ v }}&lt;/li&gt;
{% endfor %}
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
ヘルパー：
    {{form.create()|raw}}
    {{form.input('input')|raw}}
    {{
    form.input('email', {
        'label': 'Your E-Mail Address'| trans
        })
    |raw}}
    {{form.end()|raw}}
&lt;/div&gt;
</pre>
<p>こんな感じに出力されます</p>
<p><img class="alignnone size-full wp-image-152" title="twig_screen" src="http://dasalog.eg2mix.com/wp-content/uploads/2011/11/twig_screen.jpg" alt="" width="669" height="395" /></p>
<p>&lt;や&#8217;もエスケープされてますね。<br />
オートエスケープをオンにするとヘルパーで生成したコードもエスケープされてしまうので|rawで出力しています。<br />
ここらへんを考慮してデフォルトオフにしているんでしょうが、出来ればヘルパーで生成した場合は自動で生出力とかにしたい・・。</p>
<h3>ざっくりまとめ</h3>
<p>2.0対応の部分についてはまだドキュメントなども追いついてない部分がありますがとりあえず動かすことは出来ました。<br />
ソースはすべてgithubで公開されているので自分もフィードバック送ったりしたいところですがgitの使い方がようわからん・・。使わないとなあ。</p>
<p>また、2系の仕様がイマイチよくわかってないのでTwigの読み込みがApp::importになってたりアヤシイ感じなのでここはこうじゃないだろ！というツッコミお待ちしております。</p>
]]></content:encoded>
			<wfw:commentRss>http://dasalog.eg2mix.com/cakephp2-0-2-twig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>第57回PHP勉強会@東京で濃ゆい話を聞いてきた</title>
		<link>http://dasalog.eg2mix.com/phpstudy_108/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=phpstudy_108</link>
		<comments>http://dasalog.eg2mix.com/phpstudy_108/#comments</comments>
		<pubDate>Sat, 12 Nov 2011 13:50:03 +0000</pubDate>
		<dc:creator>eg</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[イベント]]></category>

		<guid isPermaLink="false">http://dasalog.eg2mix.com/?p=106</guid>
		<description><![CDATA[初心者向け負荷軽減のはなし（taka0024/60分/php中級者～Webプロデューサーを目指す人へ） @taka0024さん ・初心者向け負荷低減 ・負荷軽減はお金になるよ！ 最初にアンケート １）立場は？ →プログラ [...]]]></description>
			<content:encoded><![CDATA[<p><strong>初心者向け負荷軽減のはなし（taka0024/60分/php中級者～Webプロデューサーを目指す人へ）</strong></p>
<p>@taka0024さん</p>
<p>・初心者向け負荷低減<br />
・負荷軽減はお金になるよ！</p>
<p>最初にアンケート<br />
１）立場は？<br />
→プログラマーが多数</p>
<p>２）何やってる？<br />
→自社サービスが多数</p>
<p>３）負荷軽減やってる？<br />
→結構やってるが多数</p>
<p>ある日突然負荷軽減して欲しいといわれたら？<br />
携帯SNS→プログラム作り直せば？→いやそりゃ無理っしょ→で、実際に負荷低減した話。<br />
初心者向け、と銘打ってましたがDBの水平、垂直分割が出てきたり結構色々。</p>
<p>tips）<br />
materはブラックホールエンジンを使ってレプリケーションさせる<br />
クエリアナライザを使う<br />
普通のクエリログもみる<br />
MySQLのバージョンは新しいのを使おう。</p>
<p>気になったけど聞きそびれた点・・・）<br />
具体的にどの程度の効果があったのか、ざっくりの数値かグラフレベルでみたいなあ。<br />
インフラのコスト面での話。</p>
<p><strong>触れてはいけないほうの闇の話（sasezaki/10分/PHP初級者）ykll</strong></p>
<p>@sasezakiさん</p>
<div id="__ss_10131007" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="PHP 触れてはいけないほうの闇の話" href="http://www.slideshare.net/sasezaki/php-10131007" target="_blank">PHP 触れてはいけないほうの闇の話</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/10131007" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="425" height="355"></iframe></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/sasezaki" target="_blank">sasezaki</a></div>
</div>
<p>・コードは書いたとおりに動く<br />
・個々一番氏へのお礼がありました</p>
<p>どこまで書いていいかわからないが<br />
・メンテナは大変・・・<br />
・テストコードがis_array</p>
<p>雑感）<br />
・なにそれこわい<br />
・テストコードのパッチ・・は・・面倒・・なのかな？</p>
<p><strong>PHP がいっぱい（@yuya_takeyama/10分/PHP のバイナリを日常的にビルドする人向け）</strong></p>
<p>@yuya_takeyamaさん</p>
<div id="__ss_10126898" style="width: 425px;">
<p><strong style="display: block; margin: 12px 0 4px;"><a title="Building Development Environment with php-build and phpenv" href="http://www.slideshare.net/taketyan/building-development-environment-with-phpbuild-and-phpenv" target="_blank">Building Development Environment with php-build and phpenv</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/10126898" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="425" height="355"></iframe></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/taketyan" target="_blank">Yuya Takeyama</a></div>
</div>
<p>node.js / Socket.io → リアルタイムwebapp<br />
→node楽しいよnode</p>
<p>phpenv →バージョンの切替、pearとかも<br />
php-build→こっちはビルドツール</p>
<p>php-build<br />
・ビルドらくちん<br />
・依存パッケージは自分でいれる<br />
・依存関係でこけてる場合はtmpの中にログがはかれるのでみてね</p>
<p>phpenv globalでバージョン切替<br />
phpenv-v each で各バージョンで実行出来る</p>
<p>php-buildのconfigureオプションは？<br />
→定義ファイルでいじればいいよ。マルチバイトとかね。</p>
<p><strong>pure PHPでのバイナリ処理（yoya/20分/PHPでのWebプログラミングに飽きてきた人）</strong></p>
<p>@yoyaさん<br />
<a href="http://d.hatena.ne.jp/yoya/20111111/php">スライド</a></p>
<p>・purephp→標準関数を使う<br />
・2進数大好き</p>
<p>jpg、png、gifなど、仕様を知っていれば画像サイズとかはさくっと取れる</p>
<div>openpear/IO_Bit<br />
・byte/bit処理するのに便利<br />
・応用例→IO_SWF</div>
<div>
</div>
<p><strong>PHP用回帰テストツール-PROVE（@yohgaki/10分～30分）</strong></p>
<p>@yohgakiさん</p>
<p>・realip<br />
→プロキシとか挟んだ場合にリモートアドレス取るの面倒だよね<br />
→まあmod_rpafとか色々あるけど、ロジック側でさくっと何かするには便利かも</p>
<p>PROVE<br />
・個人利用は無償<br />
・PROVEは内部動作を場合によってはオーバーライドすることで環境に依存しないテストを実行</p>
<p><a href="http://www.provephp.com/ja/start">これ</a></p>
<p><strong>perl Regexp::Assemble を php に移植する話（rti/25分/他の言語も気になる人）</strong></p>
<p>@super_rtiさん<br />
<a href="http://prezi.com/q0vfeok0qu9u/regexpassemble-for-php/">スライド</a></p>
<p>・多分今回一番盛り上がったスライド。懇親会の中だったのでツッコミ多数。<br />
・perlの正規表現自動生成エンジン（って言い方あってるかな・・）perl Regexp::Assemble をPHPに移植する話<br />
・一行ごとにPHPコードに置き換え。言語仕様の壁を結構無茶な方法で乗り越え・・。<br />
・実行速度は（perl5.8.8とのPHP5.4の比較では）高速。十分実用ですね。<br />
・メンテナ募集、githubにあります。<br />
・<a href="http://rtilabs.net/files/2011_11_02/">テストサイト</a>。落ちるとくじらが飛ぶそうです。皆さん頑張ってくじらを出しましょう！</p>
<p>・・・この後の<a href="http://prezi.com/mqpbsfzawlnj/presentation/">家電の話</a>も相当面白かったんですが力尽きたので割愛。</p>
<p>総じて（事前にアジェンダみてわかってはいましたが）濃ゆい発表で非常に面白かったです！<br />
あとハイパーのエンジニアとしてお声がけくださった皆様ありがとうございました。cakeの愚痴ばっかですいません。</p>
<p>最後に、会場提供してくださった<a href="http://voyagegroup.com/">VOYAGE GROUP</a>さんありがとうございました。<br />
<a title="第57回PHP勉強会@東京" href="http://events.php.gr.jp/events/show/108">第57回PHP勉強会@東京</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dasalog.eg2mix.com/phpstudy_108/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHPで直前のクエリをチェック</title>
		<link>http://dasalog.eg2mix.com/cakephp%e3%81%a7%e7%9b%b4%e5%89%8d%e3%81%ae%e3%82%af%e3%82%a8%e3%83%aa%e3%82%92%e3%83%81%e3%82%a7%e3%83%83%e3%82%af/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cakephp%25e3%2581%25a7%25e7%259b%25b4%25e5%2589%258d%25e3%2581%25ae%25e3%2582%25af%25e3%2582%25a8%25e3%2583%25aa%25e3%2582%2592%25e3%2583%2581%25e3%2582%25a7%25e3%2583%2583%25e3%2582%25af</link>
		<comments>http://dasalog.eg2mix.com/cakephp%e3%81%a7%e7%9b%b4%e5%89%8d%e3%81%ae%e3%82%af%e3%82%a8%e3%83%aa%e3%82%92%e3%83%81%e3%82%a7%e3%83%83%e3%82%af/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 04:16:14 +0000</pubDate>
		<dc:creator>eg</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[cakephp]]></category>

		<guid isPermaLink="false">http://dasalogwp.eg2mix.com/?p=93</guid>
		<description><![CDATA[こんな感じで。 thanks →@deeeki]]></description>
			<content:encoded><![CDATA[<pre class="brush: php; title: ; notranslate">
App::import('Model', 'ConnectionManager');
$db = ConnectionManager::getDataSource('default');
$this-&gt;log($db-&gt;getLog(), LOG_DEBUG);
</pre>
<p>こんな感じで。</p>
<p>thanks →<a href="http://twitter.com/#!/deeeki">@deeeki</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dasalog.eg2mix.com/cakephp%e3%81%a7%e7%9b%b4%e5%89%8d%e3%81%ae%e3%82%af%e3%82%a8%e3%83%aa%e3%82%92%e3%83%81%e3%82%a7%e3%83%83%e3%82%af/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Titanium環境構築メモ</title>
		<link>http://dasalog.eg2mix.com/titanium%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89%e3%83%a1%e3%83%a2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=titanium%25e7%2592%25b0%25e5%25a2%2583%25e6%25a7%258b%25e7%25af%2589%25e3%2583%25a1%25e3%2583%25a2</link>
		<comments>http://dasalog.eg2mix.com/titanium%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89%e3%83%a1%e3%83%a2/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 03:39:12 +0000</pubDate>
		<dc:creator>eg</dc:creator>
				<category><![CDATA[環境]]></category>

		<guid isPermaLink="false">http://dasalogwp.eg2mix.com/?p=87</guid>
		<description><![CDATA[昨日のWEBサービス開発者のはじめてのTitanium勉強会で諸々開発についていい話を聞いたのだけど、環境構築がすこぶる面倒だったので今のうちにメモしておく。 開始前に気づいて事前準備としてTitanium Studio [...]]]></description>
			<content:encoded><![CDATA[<p>昨日の<a href="http://atnd.org/events/17048">WEBサービス開発者のはじめてのTitanium勉強会</a>で諸々開発についていい話を聞いたのだけど、環境構築がすこぶる面倒だったので今のうちにメモしておく。</p>
<p>開始前に気づいて事前準備としてTitanium StudioとKichenSinkプロジェクトのダウンロードはやっておいたのだけど、進めていくうちにこれも足りねーってことになったので・・。</p>
<p>環境：Windows7（Home Premium） SP1</p>
<p>最終的に入れたもの</p>
<ul>
<li>Titanium Studio</li>
</ul>
<p><a href="http://www.appcelerator.com/">http://www.appcelerator.com/</a>（要登録、Community）</p>
<ul>
<li>JDK 1.6.0_26</li>
</ul>
<p><a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html">http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html</a></p>
<ul>
<li>Andoroid SDK</li>
</ul>
<p>（これいれないとプロジェクトが作れない）</p>
<p>このうち足りなかったのはJDKとAndoroid SDK。</p>
<p>JREだと動かないので注意（javacとか使うので・・そりゃそうだ）。</p>
<p>パスを通すもの（環境変数）</p>
<ul>
<li>JAVA_HOMEのパス（C:\Program Files\Java\jdk1.6.0_26）など</li>
<li>（多分）PATH（%JAVA_HOME%\bin）も通しておく</li>
</ul>
<p>JDK、Andoroid SDK、Titanium Studioは結構ダウンロードに時間がかかるので気長にやりましょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://dasalog.eg2mix.com/titanium%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89%e3%83%a1%e3%83%a2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP5.3にXHProf導入メモ</title>
		<link>http://dasalog.eg2mix.com/php5-3%e3%81%abxhprof%e5%b0%8e%e5%85%a5%e3%83%a1%e3%83%a2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=php5-3%25e3%2581%25abxhprof%25e5%25b0%258e%25e5%2585%25a5%25e3%2583%25a1%25e3%2583%25a2</link>
		<comments>http://dasalog.eg2mix.com/php5-3%e3%81%abxhprof%e5%b0%8e%e5%85%a5%e3%83%a1%e3%83%a2/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 03:29:55 +0000</pubDate>
		<dc:creator>eg</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[環境]]></category>

		<guid isPermaLink="false">http://dasalogwp.eg2mix.com/?p=82</guid>
		<description><![CDATA[環境 CentOS5.5(x86_64) php5.3.3 xhprof-0.9.2 普通にpeclで入れられるっぽいが今回はパスまわりで怒られたので、ソースから。 xhprof-0.9.2のソースフォルダからexten [...]]]></description>
			<content:encoded><![CDATA[<p>環境 CentOS5.5(x86_64) php5.3.3 xhprof-0.9.2 普通にpeclで入れられるっぽいが今回はパスまわりで怒られたので、ソースから。 xhprof-0.9.2のソースフォルダからextensionに移動して</p>
<pre class="brush: bash; title: ; notranslate">
phpize
./configure
make
make install
</pre>
<p>→xhprof.soをphp.iniに追加</p>
<pre class="brush: php; title: ; notranslate">
extension=xhprof.so
</pre>
<p>ソースフォルダ直下の xhprof_html xhprof_lib をアクセス可能な場所に移動。 今回は適当なバーチャルホストを切ってxhprof_html配置フォルダをドキュメントルートにしてみた。 試しにプロファイルを取ってみたが、ダイアグラム表示の画像が出ずにエラーとなってしまった。 公式ドキュメントをみると、</p>
<blockquote><p>dot (image generation utility): The callgraph image visualization ([View Callgraph]) feature relies on the presence of Graphviz &#8220;dot&#8221; utility in your path. &#8220;dot&#8221; is a utility to draw/generate an image for a directed graph.</p></blockquote>
<p>と書いてあるので、以下yumで。</p>
<pre class="brush: bash; title: ; notranslate">
yum install 'graphviz*' --skip-broken
</pre>
<p>これで画像が出るようになった。 （追記） そういえばプロファイルデータはどこに出来るのだろう、と思い探してみた。 どうやらデフォルトで/tmpに出来るらしい。 明示する方法がうえちょこさんのブログ記事にあったのでphp.iniに追記した</p>
<pre class="brush: php; title: ; notranslate">
xhprof.output_dir=/var/log/xhprof
</pre>
<p>こんな感じ。 プロファイルデータの中身は単純にserializeしたオブジェクトだが配列だかっぽい。</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://dasalog.eg2mix.com/php5-3%e3%81%abxhprof%e5%b0%8e%e5%85%a5%e3%83%a1%e3%83%a2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP5.3.3をコンパイルした時のconfigureメモ（mysqlndで）</title>
		<link>http://dasalog.eg2mix.com/php5-3-3%e3%82%92%e3%82%b3%e3%83%b3%e3%83%91%e3%82%a4%e3%83%ab%e3%81%97%e3%81%9f%e6%99%82%e3%81%aeconfigure%e3%83%a1%e3%83%a2%ef%bc%88mysqlnd%e3%81%a7%ef%bc%89/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=php5-3-3%25e3%2582%2592%25e3%2582%25b3%25e3%2583%25b3%25e3%2583%2591%25e3%2582%25a4%25e3%2583%25ab%25e3%2581%2597%25e3%2581%259f%25e6%2599%2582%25e3%2581%25aeconfigure%25e3%2583%25a1%25e3%2583%25a2%25ef%25bc%2588mysqlnd%25e3%2581%25a7%25ef%25bc%2589</link>
		<comments>http://dasalog.eg2mix.com/php5-3-3%e3%82%92%e3%82%b3%e3%83%b3%e3%83%91%e3%82%a4%e3%83%ab%e3%81%97%e3%81%9f%e6%99%82%e3%81%aeconfigure%e3%83%a1%e3%83%a2%ef%bc%88mysqlnd%e3%81%a7%ef%bc%89/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 00:53:17 +0000</pubDate>
		<dc:creator>eg</dc:creator>
				<category><![CDATA[環境]]></category>

		<guid isPermaLink="false">http://dasalogwp.eg2mix.com/?p=45</guid>
		<description><![CDATA[ドライバーの指定をそれぞれmysqlndにしておく。 まあ、mysqliは使わないわけですが、一応。]]></description>
			<content:encoded><![CDATA[<pre class="brush: bash; title: ; notranslate">
./configure \
--prefix=/usr/local/php5.3 \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--with-apxs2=/usr/local/httpd/bin/apxs \
--enable-mbstring \
--enable-mbregex \
--with-pcre-regex \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-mcrypt \
--with-curl \
--with-iconv \
--enable-exif \
--enable-sockets \
--without-sqlite \
--with-gd \
--with-openssl \
--with-png-dir=/usr/lib \
--with-jpeg-dir=/usr/lib \
--with-pdo-mysql=mysqlnd \
--with-zlib \
--enable-zip \
</pre>
<p>ドライバーの指定をそれぞれmysqlndにしておく。<br />
まあ、mysqliは使わないわけですが、一応。</p>
]]></content:encoded>
			<wfw:commentRss>http://dasalog.eg2mix.com/php5-3-3%e3%82%92%e3%82%b3%e3%83%b3%e3%83%91%e3%82%a4%e3%83%ab%e3%81%97%e3%81%9f%e6%99%82%e3%81%aeconfigure%e3%83%a1%e3%83%a2%ef%bc%88mysqlnd%e3%81%a7%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MyDNS-NGのインストール</title>
		<link>http://dasalog.eg2mix.com/mydns-ng%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mydns-ng%25e3%2581%25ae%25e3%2582%25a4%25e3%2583%25b3%25e3%2582%25b9%25e3%2583%2588%25e3%2583%25bc%25e3%2583%25ab</link>
		<comments>http://dasalog.eg2mix.com/mydns-ng%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 01:32:49 +0000</pubDate>
		<dc:creator>eg</dc:creator>
				<category><![CDATA[環境]]></category>

		<guid isPermaLink="false">http://dasalogwp.eg2mix.com/?p=52</guid>
		<description><![CDATA[MyDyNS-NGのインストール 環境：CentOS、MySQLはソースビルドで標準インストール confを作る テーブルを作る。この辺は前回もやってたので中身を比較、特に変わってなさそう。 一応これ   でSQLが標準 [...]]]></description>
			<content:encoded><![CDATA[<pre>MyDyNS-NGのインストール
環境：CentOS、MySQLはソースビルドで標準インストール
<pre class="brush: bash; title: ; notranslate">
./configure --prefix=/usr/local/mydns --with-mysql-lib=/usr/local/mysql/lib/mysql --with-mysql-include=/usr/local/mysql/include/mysql  --without-pgsql
</pre>
<p>confを作る</p>
<pre class="brush: bash; title: ; notranslate">
mydns --dump-config &gt; /etc/mydns.conf
</pre>
<p>テーブルを作る。この辺は前回もやってたので中身を比較、特に変わってなさそう。</p>
<pre class="brush: sql; title: ; notranslate">
CREATE TABLE IF NOT EXISTS soa (
  id         INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  origin     CHAR(255) NOT NULL,
  ns         CHAR(255) NOT NULL,
  mbox       CHAR(255) NOT NULL,
  serial     INT UNSIGNED NOT NULL default '1',
  refresh    INT UNSIGNED NOT NULL default '28800',
  retry      INT UNSIGNED NOT NULL default '7200',
  expire     INT UNSIGNED NOT NULL default '604800',
  minimum    INT UNSIGNED NOT NULL default '86400',
  ttl        INT UNSIGNED NOT NULL default '86400',
  UNIQUE KEY (origin)
) Engine=MyISAM;

--
--  Table structure for table 'rr' (resource records)
--
CREATE TABLE IF NOT EXISTS rr (
  id         INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  zone       INT UNSIGNED NOT NULL,
  name       CHAR(64) NOT NULL,
  data       VARBINARY(128) NOT NULL,
  aux        INT UNSIGNED NOT NULL,
  ttl        INT UNSIGNED NOT NULL default '86400',
  type       ENUM('A','AAAA','CNAME','HINFO','MX','NAPTR','NS','PTR','RP','SRV','TXT'),
  UNIQUE KEY rr (zone,name,type,data)
) Engine=MyISAM;
</pre>
<p>一応これ</p>
<pre class="brush: bash; title: ; notranslate">
mydns --create-tables
</pre>
<p> <br />
でSQLが標準出力されるので流し込めばよい。<br />
次、ユーザーの作成も前回やってるので割愛。<br />
confをいじる。<br />
→とりあえずDB接続を設定。なんかエンジンタイプの指定があったのでinnoDBとかにしてもいいのかも。</pre>
<p>シンボリックリンクを作成</p>
<pre class="brush: bash; title: ; notranslate">
/usr/local/mydns/bin/mydns-conf
/usr/local/mydns/bin/mydnscheck
/usr/local/mydns/bin/mydnsexport
/usr/local/mydns/bin/mydnsimport
/usr/local/mydns/bin/mydnsptrconvert
</pre>
]]></content:encoded>
			<wfw:commentRss>http://dasalog.eg2mix.com/mydns-ng%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

