<?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>JiroBlog &#187; pear</title>
	<atom:link href="http://www.jirosoft.com/wordpress/tag/pear/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jirosoft.com/wordpress</link>
	<description>ただのオヤジプログラマのブログ</description>
	<lastBuildDate>Sat, 07 May 2011 12:50:23 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>cakePHP1.3再入門#2 pear</title>
		<link>http://www.jirosoft.com/wordpress/2010-06-01-178/</link>
		<comments>http://www.jirosoft.com/wordpress/2010-06-01-178/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 08:08:49 +0000</pubDate>
		<dc:creator>Jiro</dc:creator>
				<category><![CDATA[cakePHP]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.jirosoft.com/wordpress/?p=178</guid>
		<description><![CDATA[前回までで、とりあえずトップページが表示されました。 このあとMVCにしたがってデータベースとその表示、更新などのページを作っていくわけですが、今回はちょっと横道にそれてPHPの便利な道具としてpearを導入することにし [...]]]></description>
			<content:encoded><![CDATA[<p>前回までで、とりあえずトップページが表示されました。<br />
このあとMVCにしたがってデータベースとその表示、更新などのページを作っていくわけですが、今回はちょっと横道にそれてPHPの便利な道具としてpearを導入することにしました。</p>
<p>恥ずかしい話ですが実はpearって何。それっておいしいの?状態でした。</p>
<p>携帯用のwebを作成するためにアクセスしてきた対象が携帯かPCかを振り分ける方法を探していてnet_userAgent_mobileというライブラリを見つけまして、どうもこれがpearというもののひとつであると言うことがわかりました。</p>
<p>pearはPHPの機能を拡張するライブラリということまでわかりました。ww</p>
<p>さて、ローカルのテスト環境にはXAMPPを導入した際にpearは入っているようです。<br />
その環境でNet_userAgent_mobileのインストールに取り掛かります。<br />
pearと言うコマンドでインストールできると言うことまでわかったのでコマンドプロンプトを開いて</p>
<p>C:\xampp/phpに移動します。(xamppのインストール方法によって変わります。)<br />
このディレクトリにpearコマンドがありますので<br />
pear install net_useragent_mobile<br />
とタイプすればダウンロードとインストールを勝手にやってくれます。</p>
<p>これでテストできそうなので以下のようなテストphpを書いてみました。<br />
mobiletest.php</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
require_once('Net/UserAgent/Mobile.php'); 

$agent = Net_UserAgent_Mobile::singleton(); 

if($agent-&gt;isDoCoMo()){
    echo &quot;docomo&quot; . &quot;&lt;br&gt;&quot;;
    echo $agent-&gt;getModel().&quot;&lt;br&gt;&quot;;
    echo $agent-&gt;getSerialNumber().&quot;&lt;br&gt;&quot;;
}elseif($agent-&gt;isSoftbank()){
  echo &quot;Softbank&quot;;
}elseif($agent-&gt;isEZweb()){
  echo &quot;au&quot;;
}elseif($agent-&gt;isWillcom()){
  echo &quot;WILLCOM&quot;;
}else{
  echo &quot;PC&quot;;
}
?&gt;
</pre>
<p>この状態でxamppのapacheを起動させてブラウザからhttp://localhost/mobiletest.phpを呼び出すと<br />
「PC」と表示されました。無事動いているようです。次にiモード HTMLシュミレータ2を起動して同様のURLにアクセスすると<br />
<a href="http://www.jirosoft.com/wordpress/wp-content/uploads/2010/06/cakephp1_3_03.jpg"><img src="http://www.jirosoft.com/wordpress/wp-content/uploads/2010/06/cakephp1_3_03-198x300.jpg" alt="iモード　HTML シュミレータ" title="cakephp1_3_03" width="198" height="300" class="alignleft size-medium wp-image-181" /></a></p>
<p>このように表示されました。ユーザーエージェントなどの判別もうまくいっているようです。<br />
ただシリアル番号は取れていないようですが、この部分は後で要検討です。</p>
<p>auやsoftbankもシュミレータでテストするべきですが、とりあえず実機でテストしてみたいのでレンタルサーバーにuploadする方法を検討します。</p>
<p>今回はお名前ドットコムのSD共用サーバーを借りています。<br />
説明を見るとpearはインストールされていないようなので手動でセットしないといけません。</p>
<p>いろいろ調べてみるとpear.phpとNet_UserAgent_Mobileの必要なファイルだけアップロードしても出来るようですが他の機能も必要になりそうなのですべてあげておくことにします。</p>
<p>ブラウザからインストールする方法としてgo-pear.phpと言うソースをアップロードしてインストールする方法がありましたので<br />
テストしてみましたがどうもうまくいきません?</p>
<p>SD共用サーバーはSSHやTelnetが使えないのでFTPに頼るわけですが、アップロード先がドメインを複数含むので以下のようになっています。<br />
analyze<br />
backup<br />
files<br />
hoge.com<br />
hogehoge.com<br />
ブラウザからアクセスできるのはhoge.comとhogehoge.com以下ですのでpearはfiles以下のブラウザでアクセスできない領域におくことにします。<br />
hoge.comの直下にgo-pear.phpをアップロードしてブラウザでhttp://hoge.com/go-pear.phpを叩くとインストール画面が出てきます。<br />
(go-pear.phpはぐぐるとソースが入手できます。)<br />
ここでInstallation prefixのところに何を入れるかで悩みました。<br />
/home/アカウント名/pearなどと解説してるところもあるのですが、SD共用サーバーではどうすればよいか。</p>
<p>仕方ないのでpearをインストールする前に先ほどのmobiletest.phpをアップしてエラー吐かせて見ました。<br />
すると<br />
/export/sdxx/www/jp/r/e/gmoserver/n/m/サーバーアカウントID/hoge.com/mobiletest.php<br />
にエラーがあるとでました。(一部伏字にしてますので、ご自分の環境で確認してください)<br />
これで参照位置がわかりました。ただしgo-pearでインストールする際には/files/hoge/以下にしようと思うのでパーミッションを777にしておかないといけないようです。</p>
<p>面倒になってきたのでWindows環境でインストールしているディレクトリを/files/hoge/PEARにすべてアップロードしました。<br />
さて、pearへのパスが通っていないので、このままでは先ほどのmobiletest.phpは動きません。<br />
include_pathと言う奴を指定しなくちゃいけません。<br />
.htaccessでパスを通す方法が書いてあったので設置して<br />
    php_value include_path &#8220;.:/export/sdxx/www/jp/r/e/gmoserver/m/n/サーバーアカウントID/files/hoge/PEAR&#8221;<br />
としてみましたが、動きません。.htaccessでは動かないこともあるとのこと。サーバー側の仕様でしょうね。</p>
<p>仕方ないのでmobiletest.phpに一行加えました。</p>
<pre class="brush: php; title: ; notranslate">
    ini_set('include_path', &quot;.://export/sdxx/www/jp/r/e/gmoserver/m/n/サーバーアカウントID/files/hoge/PEAR&quot;);
</pre>
<p>これをrequire_onceの前に加えたら、なんとか無事動作しました。</p>
<p>結構面倒でしたが、これでpear持つ変えるようになりました。</p>
<p>つぎは振り分けを行うためにcakePHPのルーティングについて、勉強しなおします。<br />
これも結構ややこしやーーーー。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jirosoft.com/wordpress/2010-06-01-178/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

