<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>キーワードマップ(ただいま準備中)-旬のキーワードを切って貼って遊ぶBy職人肌.jp</title>
        <link>http://www.syokunin-hada.org/</link>
        <description></description>
        <language>ja</language>
        <copyright>Copyright 2007</copyright>
        <lastBuildDate>Tue, 25 Sep 2007 23:29:11 +0900</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>リモートサーバへローカルの内容を同期させる - PHP~詳細</title>
            <description><![CDATA[ちこっとだけ解説。
今回の行いたいことはリモートサーバへローカルのファイルを全コンテンツ同期させる事。
これを実現するには、
<ul>
	<li>サーバ側へのSSH接続をパスワードがない方式にする。このときサーバへは、決められたユーザだけがNOPASSWORDを許されるものとする。</li>
　　　<li>PHPのサーバ権限は(nobody,apache,www...etc)なのでこれを利用することにする。（PHPのWEBアクセスでは、sudoが使えないため・・・）</li>
<li>シェルのログインユーザで生成された公開鍵など、.sshフォルダをapacheでも使えるようにコピーと移動を行う。（ドキュメントルートへは置かない。）この時.sshフォルダのコピーはログインユーザがするので、オーナーとグループの権限をPHPのサーバ権限のものと一緒にする。<br />
この時、ディレクトリ・ファイルの<strong>パーミッション</strong>は、0600にしておくことが大事です。
</li>
<li>PHPではクエリをとらず、（クエリをとっても安全のためプログラムとして走らせる部分には使わない。）シェルプログラム単体で動かす。</li>
<li>記述）
rsync -avz  --delete --exclude='除外するファイルまたはディレクトリ' -e "ssh -i <span style="color:red;">/var/DocumentRoot/hoge/.ssh/</span>" /var/DocumentRoot/ remoteuser@remoteserver:/var/www/hoge/<br />
で、コマンドラインからリモートサーバへ同期するかテスト。<br />
成功するはずです。<br />
成功せずにパスワードを聞かれてします。または<strong>PermissionDenied</strong>が表示される場合は、<strong>ssh</strong>の公開鍵のあるフォルダのowner,group,パーミッションを確認。このフォルダは、ユーザしか使えないようにしておくのを気を使いながら設定します。<br />
<strong>Permission</strong>は、0600かな。<br />
自分だけ読み書きできると・・・・<br />
</li>
<li>以上が主な流れ。次に実際PHPコードを書くことになります。</li>
<li>PHPでは、基本的にクエリは受け付けずに書いていくことにします。（セキュリティ上念のため）<br />
&lt;?<br />
$cmd = 'rsync -avz  --delete --exclude='除外するファイルまたはディレクトリ' -e "ssh -i <span style="color:red;">/var/DocumentRoot/hoge/.ssh/</span>" /var/DocumentRoot/ remoteuser@remoteserver:/var/DocumentRoot/';<br />
shell_exec($cmd);<br />
?&gt;<br />
のような形で記述すれば、動くはずです。
</li>

</ul>]]></description>
            <link>http://www.syokunin-hada.org/2007/09/-php-1.html</link>
            <guid>http://www.syokunin-hada.org/2007/09/-php-1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">職人肌</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">apache</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">PHP</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">rsync</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">ssh</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">sudo</category>
            
            <pubDate>Tue, 25 Sep 2007 23:29:11 +0900</pubDate>
        </item>
        
        <item>
            <title>リモートサーバへローカルの内容を同期させる - PHP~その後</title>
            <description><![CDATA[下の記事で少し書いていましたが・・・・
<a href="http://b.syokunin-hada.org/?eid=13">UnderConstruction</a> 
昨日が過ぎて今日<strong>PHP</strong>でリモートサーバに同期するプログラムは無事完成。。
なんとかものになった感じだったけれど、ハマリが痛かった。

これを別のサーバで行うとなると結構サーバをいじることになるので中々<strong>linux</strong>とかシステムに精通してないと・・・
プログラム的には難しくないけど・・

要するに<strong>SSH</strong>でNOPASSWORDでリモートサーバ側に接続できて、<strong>PHP</strong>のサーバ権限は、（www,nobody,apache...etc）なので、この権限のままNOPASSWORDで使うauthorized_keyを<strong>rsync</strong>の<strong>ssh</strong>のところにくっつけてあげると。

そうすると、何とかリモートサーバでの権限も保持されつつ(SSHのログインユーザでのコピー)になるようなのでひとまずは、安心。。

今日は安心だけして、まだ残された課題をクリアしてとりあえずアプリケーションとして動かすと。。

だれか、PHPのコマンド（対話形式）をAjaxとか使ってやったりしてるのかな～？
<a href="http://www.unoh.net/">ウノウ</a>の人ならきっと作ってる。ｗ

今日もまた精進ということで。。

詳しい設定なんかは、また次回に。]]></description>
            <link>http://www.syokunin-hada.org/2007/09/-php.html</link>
            <guid>http://www.syokunin-hada.org/2007/09/-php.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">職人肌</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">PHP</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">rsync</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">ssh</category>
            
            <pubDate>Thu, 20 Sep 2007 23:15:04 +0900</pubDate>
        </item>
        
        <item>
            <title>職人肌.jpへようこそ！</title>
            <description><![CDATA[職人肌では、キーワードマップを作成準備中です。<br />
キーワードマップは、現在のところ旬のキーワードを収集し、ユーザ同士がつながっていくアプリケーションを目指しています。

まだ、完成のめどは、たっていませんが、少しずつ更新していくつもりですのでよろしくお願いいたします。]]></description>
            <link>http://www.syokunin-hada.org/2007/09/movable-type-40.html</link>
            <guid>http://www.syokunin-hada.org/2007/09/movable-type-40.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">キーワードマップ</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">職人肌</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">キーワード</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">職人肌</category>
            
            <pubDate>Mon, 17 Sep 2007 23:59:24 +0900</pubDate>
        </item>
        
    </channel>
</rss>
