<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>キーワードマップ(ただいま準備中)-旬のキーワードを切って貼って遊ぶBy職人肌.jp</title>
    <link rel="alternate" type="text/html" href="http://www.syokunin-hada.org/" />
    <link rel="self" type="application/atom+xml" href="http://www.syokunin-hada.org/atom.xml" />
    <id>tag:www.syokunin-hada.org,2007-09-17://1</id>
    <updated>2007-12-05T10:20:26Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Publishing Platform 4.0</generator>

<entry>
    <title>リモートサーバへローカルの内容を同期させる - PHP~詳細</title>
    <link rel="alternate" type="text/html" href="http://www.syokunin-hada.org/2007/09/-php-1.html" />
    <id>tag:www.syokunin-hada.org,2007://1.3</id>

    <published>2007-09-25T14:29:11Z</published>
    <updated>2007-12-05T10:20:26Z</updated>

    <summary>ちこっとだけ解説。 今回の行いたいことはリモートサーバへローカルのファイルを全コ...</summary>
    <author>
        <name>職人肌.jp</name>
        
    </author>
    
        <category term="職人肌" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="apache" label="apache" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="php" label="PHP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rsync" label="rsync" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ssh" label="ssh" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sudo" label="sudo" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.syokunin-hada.org/">
        <![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>]]>
        
    </content>
</entry>

<entry>
    <title>リモートサーバへローカルの内容を同期させる - PHP~その後</title>
    <link rel="alternate" type="text/html" href="http://www.syokunin-hada.org/2007/09/-php.html" />
    <id>tag:www.syokunin-hada.org,2007://1.2</id>

    <published>2007-09-20T14:15:04Z</published>
    <updated>2007-12-03T05:39:24Z</updated>

    <summary>下の記事で少し書いていましたが・・・・ UnderConstruction  昨...</summary>
    <author>
        <name>職人肌.jp</name>
        
    </author>
    
        <category term="職人肌" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="php" label="PHP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rsync" label="rsync" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ssh" label="ssh" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.syokunin-hada.org/">
        <![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>の人ならきっと作ってる。ｗ

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

詳しい設定なんかは、また次回に。]]>
        
    </content>
</entry>

<entry>
    <title>職人肌.jpへようこそ！</title>
    <link rel="alternate" type="text/html" href="http://www.syokunin-hada.org/2007/09/movable-type-40.html" />
    <id>tag:www.syokunin-hada.org,2007://1.1</id>

    <published>2007-09-17T14:59:24Z</published>
    <updated>2007-09-17T15:45:24Z</updated>

    <summary>職人肌では、キーワードマップを作成準備中です。 キーワードマップは、現在のところ...</summary>
    <author>
        <name>職人肌.jp</name>
        
    </author>
    
        <category term="キーワードマップ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="職人肌" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="キーワード" label="キーワード" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="職人肌" label="職人肌" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.syokunin-hada.org/">
        <![CDATA[職人肌では、キーワードマップを作成準備中です。<br />
キーワードマップは、現在のところ旬のキーワードを収集し、ユーザ同士がつながっていくアプリケーションを目指しています。

まだ、完成のめどは、たっていませんが、少しずつ更新していくつもりですのでよろしくお願いいたします。]]>
        
    </content>
</entry>

</feed>
