<?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>HattaraTecLog &#187; php</title>
	<atom:link href="http://teclog.hattara.info/?cat=8&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://teclog.hattara.info</link>
	<description>LinuxネタとかPHPネタとかの技術ログ</description>
	<lastBuildDate>Tue, 18 Nov 2014 12:15:20 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.8</generator>
	<item>
		<title>[Memo]wordpressで「現在メンテナンス中のため、しばらくの間ご利用いただけません。」</title>
		<link>http://teclog.hattara.info/?p=362</link>
		<comments>http://teclog.hattara.info/?p=362#comments</comments>
		<pubDate>Tue, 29 Jan 2013 00:01:11 +0000</pubDate>
		<dc:creator><![CDATA[hattara]]></dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[error]]></category>

		<guid isPermaLink="false">http://teclog.hattara.info/?p=362</guid>
		<description><![CDATA[久しぶりのブログ更新が、比較的どうでもいいネタで、 かつwordpressなんで、少し微妙ではありますが、メモ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>久しぶりのブログ更新が、比較的どうでもいいネタで、<br />
かつwordpressなんで、少し微妙ではありますが、メモ程度に。</p>
<p>wordpressの更新(いわゆるバージョンアップ)をしてみたら、<br />
ブログページも、管理ページも以下のエラーが表示されて、何もできなくなったというお話です。</p>
<blockquote><p>現在メンテナンス中のため、しばらくの間ご利用いただけません。</p></blockquote>
<p>結論からいうと、処理中でなく、処理完了後もこのエラーがでているようなら、<br />
SSHやFTPや、レンタルサーバならファイルマネージャみたいので、<br />
サーバ上のwordpressを置いてあるディレクトリ(フォルダ)直下に<br />
「.maintenance」ファイルができてると思うので、これを削除するか、<br />
不安だったら、「.maintenance_org」など適当な名前にリネーム(変更)したら表示されます。</p>
<hr />
<p>具体的な内容としては、まあ、既に巷に溢れてるんだろうと思いますが、<br />
共有のレンタルサーバとかでwordpressを利用している場合に、FTPのポートが開いているので、<br />
wordpressのバージョンアップを自ずとFTPで行う場面が多くなりそうですが、<br />
バージョンアップ処理を開始して、実際に新しいバージョンのファイルをコピーする前に、<br />
「wp-admin/includes/update-core.php」ファイルの「update_core関数」によって、<br />
以下のようにメンテナンスにロックファイルが作成されます。(関係ないけど直前に古いロックファイルは消してるみたい)</p>
<blockquote><p>
$maintenance_string = &#8216;<!--?php $upgrading = ' . time() . '; ?-->&#8216;;<br />
$maintenance_file = $to . &#8216;.maintenance&#8217;;<br />
$wp_filesystem-&gt;delete($maintenance_file);<br />
$wp_filesystem-&gt;put_contents($maintenance_file, $maintenance_string, FS_CHMOD_FILE);
</p></blockquote>
<p>で、ブログページ側の挙動を追っていくと、　（wordpressを置いているフォルダを起点に書きます）<br />
1. 「index.php」で「wp-blog-header.php」をrequire。</p>
<blockquote><p>require(&#8216;./wp-blog-header.php&#8217;);</p></blockquote>
<p>2. 「wp-blog-header.php」で「wp-load.php」をrequire。</p>
<blockquote><p>require_once( dirname(__FILE__) . &#8216;/wp-load.php&#8217; );</p></blockquote>
<p>3. 「wp-load.php」で、「wp-config.php」が存在すればrequire。</p>
<blockquote><p>
if ( file_exists( ABSPATH . &#8216;wp-config.php&#8217;) ) {<br />
/** The config file resides in ABSPATH */<br />
require_once( ABSPATH . &#8216;wp-config.php&#8217; );<br />
：
</p></blockquote>
<p>4. 「wp-config.php」で、「wp-settings.php」をrequire。</p>
<blockquote><p>require_once(ABSPATH . &#8216;wp-settings.php&#8217;);</p></blockquote>
<p>5. 「wp-settings.php」で、「wp_maintenance関数」を呼び出し。</p>
<blockquote><p>
// Check if we&#8217;re in maintenance mode.<br />
wp_maintenance();
</p></blockquote>
<p>6. 「wp-includes/load.php」の「wp_maintenance関数」が呼び出され、<br />
「.maintenance」ファイルがあり、かつファイル内に記載されているepoch値(エポック値)から<br />
600秒(10分)以内の場合には、「wp-content/maintenance.php」があれば、それを表示。<br />
それがなければ、「 _e( &#8216;Briefly unavailable for scheduled maintenance. Check back in a minute.&#8217; )」が<br />
表示される。</p>
<blockquote><p>
function wp_maintenance() {<br />
if ( !file_exists( ABSPATH . &#8216;.maintenance&#8217; ) || defined( &#8216;WP_INSTALLING&#8217; ) )<br />
return;</p>
<p>global $upgrading;</p>
<p>include( ABSPATH . &#8216;.maintenance&#8217; );<br />
// If the $upgrading timestamp is older than 10 minutes, don&#8217;t die.<br />
if ( ( time() &#8211; $upgrading ) &gt;= 600 )<br />
return;</p>
<p>if ( file_exists( WP_CONTENT_DIR . &#8216;/maintenance.php&#8217; ) ) {<br />
require_once( WP_CONTENT_DIR . &#8216;/maintenance.php&#8217; );<br />
die();<br />
}<br />
:</p>
<h1><?php _e( 'Briefly unavailable for scheduled maintenance. Check back in a minute.' ); ?></h1>
</blockquote>
<p>7. 日本語設定になっている場合には、「 _e( &#8216;Briefly unavailable for scheduled maintenance. Check back in a minute.&#8217; )」が<br />
「wp-content/languages/ja.po」に基づいて「現在メンテナンス中のため、しばらくの間ご利用いただけません。」が表示される。</p>
<blockquote><p>
#: wp-includes/load.php:178<br />
msgid &#8220;Briefly unavailable for scheduled maintenance. Check back in a minute.&#8221;<br />
msgstr &#8220;現在メンテナンス中のため、しばらくの間ご利用いただけません。&#8221;
</p></blockquote>
<p>そして、管理者ページ側もほとんど同じですが、<br />
「wp-admin/index.php」で</p>
<blockquote><p>require_once(&#8216;./admin.php&#8217;);</p></blockquote>
<p>「wp-admin/admin.php」</p>
<blockquote><p>require_once(dirname(dirname(__FILE__)) . &#8216;/wp-load.php&#8217;);</p></blockquote>
<p>されているので、結果、ブログページの3番以降と同じフローにのります。</p>
<p>あとは、メンテナンスページとして自分の作成した内容を表示したい場合には、<br />
「wp-content/maintenance.php」という名前のファイルを作って、表示させればいいです。</p>
<p>サンプルテキストを置くとしたら、</p>
<blockquote><p>echo &#8220;メンテナンス中です。ご迷惑をお掛けしてすいません&#8221; &gt; ./wp-content/maintenance.php</p></blockquote>
<p>簡単にメンテナンスのテストするなら、コマンドラインから以下をたたいて今のepoch値でロックファイルを作ります。<br />
（※当たり前ですが、wordpressはメンテ中になりますので、ご注意ください）</p>
<blockquote><p>php -r &#8220;echo sprintf(&#8216;<!--?php \$upgrading = %d; ?-->&#8216;, time());&#8221; &gt; .maintenance</p></blockquote>
<p>ということで、エラーがでたので、久しぶりにphpのコードを読んで、中身を追って、<br />
どこにでもありそうな処理フローの解説をするという誰得っぽい記事を書いてみました。久しぶりの更新なのに。。</p>
]]></content:encoded>
			<wfw:commentRss>http://teclog.hattara.info/?feed=rss2&#038;p=362</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>nginxでZend Framework(rewrite)を利用する</title>
		<link>http://teclog.hattara.info/?p=293</link>
		<comments>http://teclog.hattara.info/?p=293#comments</comments>
		<pubDate>Wed, 12 Jan 2011 12:46:09 +0000</pubDate>
		<dc:creator><![CDATA[hattara]]></dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[WebServer]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://teclog.hattara.info/?p=293</guid>
		<description><![CDATA[nginx + php-fpm + pecl-apcで構築されたサーバでZend Frameworkを利用する [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>nginx + php-fpm + pecl-apcで構築されたサーバでZend Frameworkを利用する際に、<br />
.htaccessが使えないことで以下のような記述ができませんでした。</p>
<blockquote><p>
## リライトエンジンを有効に。<br />
RewriteEngine On</p>
<p>## リライトの対象パスを指定<br />
RewriteBase /</p>
<p>## リライトルールを宣言（画像、CSS、Javascript）以外をindex.phpに転送する。<br />
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
</p></blockquote>
<p>通常の Apache の場合などには、.htaccessで上記のように表現できますが、<br />
nginxでは、現状各ユーザ毎のフォルダに設置して対応する方法がないようです。</p>
<p>具体的にいうと、nginx.confでincludeをサポートしているので、<br />
各ユーザ領域に設定ファイルの断片をおいて、includeさせることまではできると思われますが、<br />
そこを修正しても、読み込み直さないと反映されないので、意味がないという事になります。</p>
<p>よって、対策としては、容易に設定修正できないという難点は致し方ないとして、<br />
/etc/nginx/nginx.conf(ファイルパスは環境により異なります。)、<br />
または、includeしている　/etc/nginx/conf.d/***.confの中の該当のドメイン設定部分に<br />
以下のように追記します。</p>
<blockquote><p>
server {<br />
    listen        80;<br />
    server_name  test.example.com ;<br />
    location / {<br />
        root /home/Web;<br />
        index  index.php index.cgi index.html index.htm;<br />
        rewrite ([^(js|ico|gif|jpg|png|css)])$ index.php;<br />
    }<br />
    location ~ .php$ {<br />
        fastcgi_pass 127.0.0.1:9000;<br />
        fastcgi_index index.php;<br />
        fastcgi_param SCRIPT_FILENAME /home/Webdir/hattara.info/main/web/$fastcgi_script_name;<br />
        fastcgi_param PATH_INFO $fastcgi_script_name;<br />
        include /etc/nginx/fastcgi_params;<br />
    }<br />
}
</p></blockquote>
<p>これでとりあえず動くようになります。<br />
現状だと、逆にいえばこれしかできないような気もする。。</p>
<p>.htaccessみたいに外部で設定できるようにできたり、rewriteの設定がもう少しわかりやすいといいなぁと思うけど、<br />
これが速度とのトレードオフなのかもしれないですね。</p>
<p>ということで、rewriteとかの設定で、超はまりまくったけど、今日はこの辺で。</p>
<table cellpadding="0" cellspacing="0" border="0" style=" border:1px solid #ccc; width:170px;">
<tr style="border-style:none;">
<td style="vertical-align:top; border-style:none; padding:10px 10px 0pt;"><a href="http://px.a8.net/svt/ejp?a8mat=1NWEVP+1HL1ZU+249K+BWGDT&#038;a8ejpredirect=http%3A%2F%2Fwww.amazon.co.jp%2FNginx-Http-Server-Clement-Nedelcu%2Fdp%2F1849510865%253FSubscriptionId%253DAKIAJG4HK2PMU5Z4Q6YQ%2526tag%253Da8-affi-10084-22%2526linkCode%253Dxm2%2526camp%253D2025%2526creative%253D165953%2526creativeASIN%253D1849510865" target="_blank"><img border="0" alt="" src="http://ecx.images-amazon.com/images/I/51gax2MB8wL._SS160_.jpg" /></a></td>
</tr>
<tr style="border-style:none;">
<td style="font-size:12px; vertical-align:middle; border-style:none; padding:10px;">
<p style="padding:0; margin:0;"><a href="http://px.a8.net/svt/ejp?a8mat=1NWEVP+1HL1ZU+249K+BWGDT&#038;a8ejpredirect=http%3A%2F%2Fwww.amazon.co.jp%2FNginx-Http-Server-Clement-Nedelcu%2Fdp%2F1849510865%253FSubscriptionId%253DAKIAJG4HK2PMU5Z4Q6YQ%2526tag%253Da8-affi-10084-22%2526linkCode%253Dxm2%2526camp%253D2025%2526creative%253D165953%2526creativeASIN%253D1849510865" target="_blank">Nginx Http Server</a></p>
<p style="color:#cc0000; font-weight:bold; margin-top:10px;">新品価格<br/>￥3,964<span style="font-weight:normal;">から</span><br/><span style="font-size:10px; font-weight:normal;">(2010/12/20 19:36時点)</span></p>
</td>
</tr>
</table>
<p><img border="0" width="1" height="1" src="http://www19.a8.net/0.gif?a8mat=1NWEVP+1HL1ZU+249K+BWGDT" alt=""></p>
]]></content:encoded>
			<wfw:commentRss>http://teclog.hattara.info/?feed=rss2&#038;p=293</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx(VirtualDocumentRootもどき）でfastcgi(php-fpm)が動かない</title>
		<link>http://teclog.hattara.info/?p=287</link>
		<comments>http://teclog.hattara.info/?p=287#comments</comments>
		<pubDate>Mon, 20 Dec 2010 11:39:26 +0000</pubDate>
		<dc:creator><![CDATA[hattara]]></dc:creator>
				<category><![CDATA[Cent]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[WebServer]]></category>

		<guid isPermaLink="false">http://teclog.hattara.info/?p=287</guid>
		<description><![CDATA[現在以下のような方法で、VirtualDocumentRootもどきを実装していますが、 PHPのSCRIPT [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>現在以下のような方法で、VirtualDocumentRootもどきを実装していますが、<br />
PHPのSCRIPT_FILENAMEが正常に取得できないようなので、調査しました。</p>
<p>【変更前】</p>
<blockquote><p>
server {<br />
    listen       80;<br />
    server_name ~^(.*)\.hoge.com$;<br />
    if (!-d /home/hoge.com/$1/web) {<br />
        rewrite . http://hoge.com/ redirect;<br />
    }</p>
<p>    location / {<br />
        index  index.php;<br />
        root /home/hoge.com/$1/web;<br />
    }</p>
<p>    location ~ \.php$ {<br />
        fastcgi_pass 127.0.0.1:9000;<br />
        fastcgi_index index.php;<br />
        fastcgi_param SCRIPT_FILENAME /home/hoge.com/$1/web/$fastcgi_script_name;<br />
        fastcgi_param PATH_INFO $fastcgi_script_name;<br />
        include /etc/nginx/fastcgi_params;<br />
    }<br />
}
</p></blockquote>
<p>上記だと、正常に動きませんでした。<br />
原因としては、以下の部分の「$1」の部分に正しい値が入らないためのようでした。</p>
<blockquote><p>
        fastcgi_param SCRIPT_FILENAME /home/hoge.com/$1/web/$fastcgi_script_name;
</p></blockquote>
<p>色々試した結果、$1を別の変数として定義してあげれば動くことを確認しました。<br />
結果、以下のような内容になりました。</p>
<p>【変更後】</p>
<blockquote><p>
server {<br />
    listen       80;<br />
    server_name ~^(.*)\.hoge.com$;<br />
    set $subdomain $1;</p>
<p>    if (!-d /home/hoge.com/$subdomain/web) {<br />
        rewrite . http://hoge.com/ redirect;<br />
    }</p>
<p>    location / {<br />
        index  index.php;<br />
        root /home/hoge.com/$subdomain/web;<br />
    }</p>
<p>    location ~ \.php$ {<br />
        fastcgi_pass 127.0.0.1:9000;<br />
        fastcgi_index index.php;<br />
        fastcgi_param SCRIPT_FILENAME /home/hoge.com/$subdomain/web/$fastcgi_script_name;<br />
        fastcgi_param PATH_INFO $fastcgi_script_name;<br />
        include /etc/nginx/fastcgi_params;<br />
    }<br />
}
</p></blockquote>
<p>とりあえず上記の記述方法で正常動作しました。よかったよかった。</p>
<table cellpadding="0" cellspacing="0" border="0" style=" border:1px solid #ccc; width:170px;">
<tr style="border-style:none;">
<td style="vertical-align:top; border-style:none; padding:10px 10px 0pt;"><a href="http://px.a8.net/svt/ejp?a8mat=1NWEVP+1HL1ZU+249K+BWGDT&#038;a8ejpredirect=http%3A%2F%2Fwww.amazon.co.jp%2FNginx-Http-Server-Clement-Nedelcu%2Fdp%2F1849510865%253FSubscriptionId%253DAKIAJG4HK2PMU5Z4Q6YQ%2526tag%253Da8-affi-10084-22%2526linkCode%253Dxm2%2526camp%253D2025%2526creative%253D165953%2526creativeASIN%253D1849510865" target="_blank"><img border="0" alt="" src="http://ecx.images-amazon.com/images/I/51gax2MB8wL._SS160_.jpg" /></a></td>
</tr>
<tr style="border-style:none;">
<td style="font-size:12px; vertical-align:middle; border-style:none; padding:10px;">
<p style="padding:0; margin:0;"><a href="http://px.a8.net/svt/ejp?a8mat=1NWEVP+1HL1ZU+249K+BWGDT&#038;a8ejpredirect=http%3A%2F%2Fwww.amazon.co.jp%2FNginx-Http-Server-Clement-Nedelcu%2Fdp%2F1849510865%253FSubscriptionId%253DAKIAJG4HK2PMU5Z4Q6YQ%2526tag%253Da8-affi-10084-22%2526linkCode%253Dxm2%2526camp%253D2025%2526creative%253D165953%2526creativeASIN%253D1849510865" target="_blank">Nginx Http Server</a></p>
<p style="color:#cc0000; font-weight:bold; margin-top:10px;">新品価格<br/>￥3,964<span style="font-weight:normal;">から</span><br/><span style="font-size:10px; font-weight:normal;">(2010/12/20 19:36時点)</span></p>
</td>
</tr>
</table>
<p><img border="0" width="1" height="1" src="http://www19.a8.net/0.gif?a8mat=1NWEVP+1HL1ZU+249K+BWGDT" alt=""></p>
]]></content:encoded>
			<wfw:commentRss>http://teclog.hattara.info/?feed=rss2&#038;p=287</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx(virtualhost)+php-fpmでPHPが動作しない（凡ミス編）</title>
		<link>http://teclog.hattara.info/?p=284</link>
		<comments>http://teclog.hattara.info/?p=284#comments</comments>
		<pubDate>Mon, 20 Dec 2010 10:39:17 +0000</pubDate>
		<dc:creator><![CDATA[hattara]]></dc:creator>
				<category><![CDATA[Cent]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[WebServer]]></category>

		<guid isPermaLink="false">http://teclog.hattara.info/?p=284</guid>
		<description><![CDATA[Nginxでvirtualhostを切ってる状態でphp-fpmを動かそうと頑張っていたんですが、 何故か動か [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Nginxでvirtualhostを切ってる状態でphp-fpmを動かそうと頑張っていたんですが、<br />
何故か動かない。<br />
あちこちのサイトで説明されてる内容をそのままやって動かない。</p>
<p>一番下にある洋書のNginxの書籍に書いてある例をやっても動かない。<br />
なんでか悩んでいたんですが、平凡なミスであることがわかりました。</p>
<p>元々の手順としては、nginxが導入されている環境に、</p>
<p>1.PHPとPHP-FPMをyumで簡易インストールする。</p>
<blockquote><p>
yum &#8211;enablerepo=remi install php php-fpm
</p></blockquote>
<p>2.一応nginxのメインの設定にphpの設定を書いておく</p>
<blockquote><p>
vi /etc/nginx/nginx.conf</p>
<p>        # Add<br />
        location ~ .php$ {<br />
            fastcgi_pass 127.0.0.1:9000;<br />
            fastcgi_index index.php;<br />
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;<br />
            include /etc/nginx/fastcgi_params;<br />
        }
</p></blockquote>
<p>3.自分が作成したVirtualHost用の設定ファイル(/etc/nginx/conf.d/aaa.conf)にも追加する</p>
<blockquote><p>
vi /etc/nginx/conf.d/aaa.conf</p>
<p>server {<br />
    listen       80;<br />
    server_name  test.hoge.com;</p>
<p>    location / {<br />
        root   /home/test.hoge.com/web;<br />
        index  index.php;<br />
    }<br />
    location ~ .php$ {<br />
        fastcgi_pass 127.0.0.1:9000;<br />
        fastcgi_index index.php;<br />
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;<br />
        include /etc/nginx/fastcgi_params;<br />
    }<br />
}
</p></blockquote>
<p>4.php-fpmの起動ユーザーをnginxユーザにしてみる　（※必要に応じて変更するかも）</p>
<blockquote><p>
vi /etc/php-fpm.d/www.conf<br />
        user = nginx<br />
        group = nginx
</p></blockquote>
<p>5．サーバ起動時に自動起動するように起動ファイルのリンク作成</p>
<blockquote><p>
ln -s /etc/rc.d/init.d/php-fpm /etc/rc.d/rc3.d/S87php-fpm
</p></blockquote>
<p>6．サーバ起動させてみる。</p>
<blockquote><p>
/etc/rc.d/init.d/php-fpm start
</p></blockquote>
<p>という手順をしたんですが、htmlファイルは問題なく動作するのですが、phpファイルがうごかない。<br />
真っ白になったり、ダウンロードになったり・・意味がわからない。</p>
<p>結論からいうと、ドキュメントルートの設定がおかしくて、表示したいファイルに到達していなかったという事だった。<br />
どこがダメかというと、上記の「3」に問題があったようだ。</p>
<p>具体的には、</p>
<blockquote><p>
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
</p></blockquote>
<p>ここが問題で、document_root変数の下のfastcgi_script_name変数のファイルをkickするわけだが、<br />
$document_root変数の値が、どうも正しく入っていないようだ。<br />
たぶん、メインの/etc/nginx/nginx.confのrootの値を持ってたりするんじゃなかろうかと思うわけだ。</p>
<p>ということで、以下のように変更して、復旧しました。</p>
<blockquote><p>
        fastcgi_param SCRIPT_FILENAME /home/test.hoge.com/web/$fastcgi_script_name;
</p></blockquote>
<table cellpadding="0" cellspacing="0" border="0" style=" border:1px solid #ccc; width:170px;">
<tr style="border-style:none;">
<td style="vertical-align:top; border-style:none; padding:10px 10px 0pt;"><a href="http://px.a8.net/svt/ejp?a8mat=1NWEVP+1HL1ZU+249K+BWGDT&#038;a8ejpredirect=http%3A%2F%2Fwww.amazon.co.jp%2FNginx-Http-Server-Clement-Nedelcu%2Fdp%2F1849510865%253FSubscriptionId%253DAKIAJG4HK2PMU5Z4Q6YQ%2526tag%253Da8-affi-10084-22%2526linkCode%253Dxm2%2526camp%253D2025%2526creative%253D165953%2526creativeASIN%253D1849510865" target="_blank"><img border="0" alt="" src="http://ecx.images-amazon.com/images/I/51gax2MB8wL._SS160_.jpg" /></a></td>
</tr>
<tr style="border-style:none;">
<td style="font-size:12px; vertical-align:middle; border-style:none; padding:10px;">
<p style="padding:0; margin:0;"><a href="http://px.a8.net/svt/ejp?a8mat=1NWEVP+1HL1ZU+249K+BWGDT&#038;a8ejpredirect=http%3A%2F%2Fwww.amazon.co.jp%2FNginx-Http-Server-Clement-Nedelcu%2Fdp%2F1849510865%253FSubscriptionId%253DAKIAJG4HK2PMU5Z4Q6YQ%2526tag%253Da8-affi-10084-22%2526linkCode%253Dxm2%2526camp%253D2025%2526creative%253D165953%2526creativeASIN%253D1849510865" target="_blank">Nginx Http Server</a></p>
<p style="color:#cc0000; font-weight:bold; margin-top:10px;">新品価格<br/>￥3,964<span style="font-weight:normal;">から</span><br/><span style="font-size:10px; font-weight:normal;">(2010/12/20 19:36時点)</span></p>
</td>
</tr>
</table>
<p><img border="0" width="1" height="1" src="http://www19.a8.net/0.gif?a8mat=1NWEVP+1HL1ZU+249K+BWGDT" alt=""></p>
]]></content:encoded>
			<wfw:commentRss>http://teclog.hattara.info/?feed=rss2&#038;p=284</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Fatal error:  Class &#8216;DOMDocument&#8217; not foundに悩まされ</title>
		<link>http://teclog.hattara.info/?p=177</link>
		<comments>http://teclog.hattara.info/?p=177#comments</comments>
		<pubDate>Thu, 26 Aug 2010 05:01:30 +0000</pubDate>
		<dc:creator><![CDATA[hattara]]></dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://teclog.hattara.info/?p=177</guid>
		<description><![CDATA[昨日から以下のようなエラーに頭を抱えていました。 PHP Warning: Zend_Loader::incl [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>昨日から以下のようなエラーに頭を抱えていました。</p>
<blockquote><p>
PHP Warning:  Zend_Loader::include_once(DOMDocument.php) [<a href='function.Zend-Loader-include-once'>function.Zend-Loader-include-once</a>]: failed to open stream: No such file or directory in /home/&#8230;./ZendFramework/library/Zend/Loader.php on line 146</p>
<p>PHP Warning:  Zend_Loader::include_once() [<a href='function.include'>function.include</a>]: Failed opening &#8216;DOMDocument.php&#8217; for inclusion (include_path=&#8217;../app/framework/ZendFramework/library:../app/modules/default/models:.:/usr/share/pear:/usr/share/php&#8217;) in /home/&#8230;./ZendFramework/library/Zend/Loader.php on line 146</p>
<p>PHP Fatal error:  Class &#8216;DOMDocument&#8217; not found in /home/&#8230;./ZendFramework/library/Zend/Feed.php on line 195
</p></blockquote>
<p>Zend_Loader（Zend_Loader.php）というかZend_Loader_Autoloader（Zend/Loader/Autoloader.php）の問題かと思っていたが、<br />
全然関係ないところでエラーになっているのがわかりました。</p>
<p>ただただ、Zend_FeedとかZend_Feed_RssとかでFeed処理をしたかっただけなのだが、これがでてた。</p>
<p>原因としては、至極簡単で、php自体をrpmというかyumで入れたわけですが、<br />
xmlというかdomというかを扱うためのパッケージが足りなかったという事です。</p>
<p>以下の手順で復旧（利用できるように）できました。</p>
<blockquote><p>
※XML用のモジュールをインストールする<br />
yum install php-xml</p>
<p>※読み込み元のApacheを再起動する。<br />
/etc/rc.d/init.d/httpd stop<br />
/etc/rc.d/init.d/httpd start
</p></blockquote>
<p>ということでした。<br />
tar.gzのアーカイブからコンパイルとかしてる人は、<br />
たぶん　&#8211;with-dom とかでいけるんじゃないですかね。</p>
<p><a href="http://px.a8.net/svt/ejp?a8mat=U70LG+CVSQKI+5WS+BWVTD&#038;a8ejpredirect=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2FZend-Framework%25E5%25BE%25B9%25E5%25BA%2595%25E5%2585%25A5%25E9%2596%2580-%25E5%25B1%25B1%25E7%2594%25B0%25E7%25A5%25A5%25E5%25AF%259B-9784798117126%2Fitem%2F5852116%2F" target="_blank"></p>
<p style="text-align:center">ZendFrameworkのおすすめ書籍</p>
<p><img border="0" alt="" src="http://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/7981/79811712.jpg?_ex=200x200&#038;s=2&#038;r=1"></a><br />
<img border="0" width="1" height="1" src="http://www10.a8.net/0.gif?a8mat=U70LG+CVSQKI+5WS+BWVTD" alt=""></p>
]]></content:encoded>
			<wfw:commentRss>http://teclog.hattara.info/?feed=rss2&#038;p=177</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend_Loader::registerAutoloadは賞味期限切れ</title>
		<link>http://teclog.hattara.info/?p=175</link>
		<comments>http://teclog.hattara.info/?p=175#comments</comments>
		<pubDate>Wed, 25 Aug 2010 12:55:43 +0000</pubDate>
		<dc:creator><![CDATA[hattara]]></dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://teclog.hattara.info/?p=175</guid>
		<description><![CDATA[今Zend_Frameworkの1.10.2を利用しているわけですが、 Zend_Loader::regist [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>今Zend_Frameworkの1.10.2を利用しているわけですが、<br />
Zend_Loader::registerAutoload使ってたら、<br />
以下のようなNoticeなるエラーというかアナウンスというか警告というか出たわけです。</p>
<blockquote><p>
PHP Notice:  Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead in /home/Userdir/hattara.info/sub/api/app/framework/ZendFramework/library/Zend/Loader.php on line 258
</p></blockquote>
<p>ようするに何がいいたいかというと、Versionが2.0.0になったら消すから、<br />
Zend_Loader::registerAutoload　はやめて、<br />
Zend_Loader_Autoloader　を使ってねとおっしゃってるようだ。</p>
<p>なので、以下にのせかえてみた。</p>
<blockquote><p>
    require_once &#8216;Zend/Loader.php&#8217;;<br />
    Zend_Loader::registerAutoload();<br />
    ↓<br />
    require_once &#8216;Zend/Loader/Autoloader.php&#8217;;<br />
    $autoloader = Zend_Loader_Autoloader::getInstance();<br />
    $autoloader->setFallbackAutoloader(true);
</p></blockquote>
<p>とりあえずこれで、エラーはでなくなりましたとさ。</p>
<p><a href="http://px.a8.net/svt/ejp?a8mat=U70LG+CVSQKI+5WS+BWVTD&#038;a8ejpredirect=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2FZend-Framework%25E5%25BE%25B9%25E5%25BA%2595%25E5%2585%25A5%25E9%2596%2580-%25E5%25B1%25B1%25E7%2594%25B0%25E7%25A5%25A5%25E5%25AF%259B-9784798117126%2Fitem%2F5852116%2F" target="_blank"></p>
<p style="text-align:center">ZendFrameworkのおすすめ書籍</p>
<p><img border="0" alt="" src="http://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/7981/79811712.jpg?_ex=200x200&#038;s=2&#038;r=1"></a><br />
<img border="0" width="1" height="1" src="http://www10.a8.net/0.gif?a8mat=U70LG+CVSQKI+5WS+BWVTD" alt=""></p>
]]></content:encoded>
			<wfw:commentRss>http://teclog.hattara.info/?feed=rss2&#038;p=175</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend_Config_Iniで画面が真っ白に。</title>
		<link>http://teclog.hattara.info/?p=170</link>
		<comments>http://teclog.hattara.info/?p=170#comments</comments>
		<pubDate>Wed, 25 Aug 2010 10:25:20 +0000</pubDate>
		<dc:creator><![CDATA[hattara]]></dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://teclog.hattara.info/?p=170</guid>
		<description><![CDATA[初歩的なことなんだと思うんですが、 Zend_Config_Iniでiniを読み込ませたときに、画面が真っ白（ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>初歩的なことなんだと思うんですが、<br />
Zend_Config_Iniでiniを読み込ませたときに、画面が真っ白（ホワイトアウト？）に<br />
なっちゃったわけですよ。</p>
<p>色々テストしてみた結果、読み込み側じゃなく、<br />
読み込まれるIniファイルに問題があったわけですよ。</p>
<p>【誤】</p>
<blockquote><p>test = &#8216;test&#8217;</p></blockquote>
<p>【正】</p>
<blockquote><p>test = &#8220;test&#8221;</p></blockquote>
<p>ようするにシングルクウォート（シングルコート）ではダメで、<br />
ダブルクウォート（ダブルコート）では大丈夫ということです。</p>
<p>本当にそういうことなのかどうかはわからんが、parse_ini_fileの説明に<br />
「ini ファイル上の値に英数字ではないものがある場合、 ダブルクォート(&#8220;)で囲う必要があります。 」<br />
とあるので、ダブルコートのみOKなんでしょうね。</p>
<p>そうなんでしょうね。</p>
<p>最近こんなんばっかりです。</p>
<p><a href="http://px.a8.net/svt/ejp?a8mat=U70LG+CVSQKI+5WS+BWVTD&#038;a8ejpredirect=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2FZend-Framework%25E5%25BE%25B9%25E5%25BA%2595%25E5%2585%25A5%25E9%2596%2580-%25E5%25B1%25B1%25E7%2594%25B0%25E7%25A5%25A5%25E5%25AF%259B-9784798117126%2Fitem%2F5852116%2F" target="_blank"></p>
<p style="text-align:center">ZendFrameworkのおすすめ書籍</p>
<p><img border="0" alt="" src="http://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/7981/79811712.jpg?_ex=200x200&#038;s=2&#038;r=1"></a><br />
<img border="0" width="1" height="1" src="http://www10.a8.net/0.gif?a8mat=U70LG+CVSQKI+5WS+BWVTD" alt=""></p>
]]></content:encoded>
			<wfw:commentRss>http://teclog.hattara.info/?feed=rss2&#038;p=170</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpの連想配列をXMLに落とし込む</title>
		<link>http://teclog.hattara.info/?p=127</link>
		<comments>http://teclog.hattara.info/?p=127#comments</comments>
		<pubDate>Tue, 02 Feb 2010 10:55:34 +0000</pubDate>
		<dc:creator><![CDATA[hattara]]></dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://teclog.hattara.info/?p=127</guid>
		<description><![CDATA[phpで作った連想配列をXML形式で吐き出したい場合の例を作ってみました。 &#60;?php require_ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>phpで作った連想配列をXML形式で吐き出したい場合の例を作ってみました。</p>
<blockquote><p>&lt;?php</p>
<p>require_once(&#8220;XML/Serializer.php&#8221;);</p>
<p>$aaa = array(</p>
<p>&#8216;bbb&#8217; =&gt; &#8216;ccc&#8217;,</p>
<p>&#8216;ddd&#8217; =&gt; &#8216;eee&#8217;,</p>
<p>&#8216;fff&#8217; =&gt; &#8216;ggg&#8217;,</p>
<p>);</p>
<p>$options = array(</p>
<p>&#8216;encoding&#8217;        =&gt; &#8216;UTF-8&#8242;,　// ヘッダー情報で指定するエンコード</p>
<p>&#8216;addDecl&#8217;         =&gt; true,　// ヘッダー情報を表示する</p>
<p>&#8216;rootName&#8217;        =&gt; &#8216;result&#8217;,</p>
<p>);</p>
<p>$obj = new XML_Serializer($options);</p>
<p>$obj-&gt;serialize($aaa);</p>
<p>$xml = $obj-&gt;getSerializedData();</p>
<p>echo $xml;</p>
<p>?&gt;</p></blockquote>
<p>上記で実行したものの結果が以下のようにでてきます。</p>
<blockquote><p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;</p></blockquote>
<blockquote><p>&lt;response&gt;</p>
<p>&lt;bbb&gt;ccc&lt;/bbb&gt;</p>
<p>&lt;ddd&gt;eee&lt;/ddd&gt;</p>
<p>&lt;fff&gt;ggg&lt;/fff&gt;</p>
<p>&lt;/response&gt;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://teclog.hattara.info/?feed=rss2&#038;p=127</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XMLを表示できない。</title>
		<link>http://teclog.hattara.info/?p=82</link>
		<comments>http://teclog.hattara.info/?p=82#comments</comments>
		<pubDate>Mon, 27 Apr 2009 11:16:21 +0000</pubDate>
		<dc:creator><![CDATA[hattara]]></dc:creator>
				<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[ZendFramework]]></category>
		<category><![CDATA[ZF]]></category>

		<guid isPermaLink="false">http://teclog.hattara.info/?p=82</guid>
		<description><![CDATA[ZendFrameworkの勉強と称して、PHPからXMLを表示しようとしてたわけですが、 XML表示ができず [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>ZendFrameworkの勉強と称して、PHPからXMLを表示しようとしてたわけですが、<br />
XML表示ができずに、以下のようなエラーが出てました。</p>
<blockquote><p>
XML パースエラー: タグの対応が間違っています。終了タグが必要です: </br><br />
URL: http://zend.hattara.info/Response/<br />
行番号: 11, 列番号: 3:<br />
</body><br />
&#8211;^
</p></blockquote>
<p>色々周りの方に確認してもらったりしたら、間違いがボロボロと。。。</p>
<ul type="square">
<li>ZendFrameworkでは、Controller部分には、phpの閉じかっこ「 ?> 」は記載しないらしい</li>
<li>XMLを表示する際には、タグの中はシングルクォートではなく、ダブルクォートを利用するらしい</li>
<li>「<?xml ～ ?>」は「<? ～ ?>」と競合するので、short_open_tagはOffにする必要があるらしい</li>
<li>charsetをUTF-8にしてるのに、ソースをEUCで記載してたので出たらしい</li>
</ul>
<p>というあたりがありました。<br />
なので、.htaccessで以下を追加したり各内容を修正したりしました。</p>
<blockquote><p>
php_value short_open_tag &#8220;Off&#8221;
</p></blockquote>
<p>この辺を全部対応して、どうにか動くようになりました。</p>
]]></content:encoded>
			<wfw:commentRss>http://teclog.hattara.info/?feed=rss2&#038;p=82</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DB Error: mismatchがでたぞ!!</title>
		<link>http://teclog.hattara.info/?p=73</link>
		<comments>http://teclog.hattara.info/?p=73#comments</comments>
		<pubDate>Thu, 02 Apr 2009 09:17:38 +0000</pubDate>
		<dc:creator><![CDATA[hattara]]></dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[エラー]]></category>
		<category><![CDATA[プレースホルダ]]></category>

		<guid isPermaLink="false">http://teclog.hattara.info/?p=73</guid>
		<description><![CDATA[php経由でMysqlに接続して処理してたときに なんでか理由がわからないけどエラーがでた。 DB Error [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>php経由でMysqlに接続して処理してたときに<br />
なんでか理由がわからないけどエラーがでた。</p>
<blockquote><p>DB Error: mismatch</p></blockquote>
<p>試した感じからすると、where句の内容に問題があるようだ。</p>
<p>【エラーが出る例】</p>
<blockquote><p>select * from table where column != ? ;</p></blockquote>
<p>　  ※「?」はプレースホルダしてるから。<br />
　　　ちなみにSSH経由でmysqlコマンドで接続して実行するとエラーにならない。</p>
<p>【エラーが出ない例】</p>
<blockquote><p>　select * from table where column <> ? ;</p></blockquote>
<p>　  ※これだとエラーにならないわけです。</p>
<p>なんでですかね？<br />
　phpとの相性？<br />
　プレースホルダ絡み？<br />
　phpの書き方に問題があった？</p>
<p>ちょっとわからないけど、備忘録として残しておきます。<br />
知ってる人いたら、コメントください。</p>
]]></content:encoded>
			<wfw:commentRss>http://teclog.hattara.info/?feed=rss2&#038;p=73</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
