人気コンテンツ今日: |
SolarisでrsyncをPHPから実行するSubmitted by sasaki on 月曜, 2007-05-28 17:19.
「社内サーバ」で制作したコンテンツを「本番サーバ」にrsyncでアップする。 これは本来、毎回ターミナルを立ち上げて作業しないといけないので管理者しか作業できない。Webの画面からrsyncを起動できたら、管理者でなくとも操作できる。やり方によっては携帯電話(iモード)からも操作可能になる。
■基本戦略を考えるタイプA コンテンツの移動: 社内サーバ → 本番サーバ PHP+RSYNCの実行: 社内サーバ メリット: ファイアウォール等を考慮しないで済む場合が多いので楽。
タイプB コンテンツの移動: 社内サーバ → 本番サーバ PHP+RSYNCの実行: 本番サーバ メリット: 本番サーバは外からアクセスできるので、携帯電話等からも実行できる。 デメリット: 誰でも実行できてしまうので、.htaccessによるアクセス制限が必要。
今回は、タイプAの「社内サーバで、PHP+RSYNCを実行する」を採用した。
■社内サーバの下準備社内サーバのApacheの実行ユーザがwebservdの場合、以下の下準備を行う。 社内サーバのApache実行ユーザwebservdに必要なもの ホームディレクトリ: /export/home/webservd (711か755) .sshの公開鍵: /export/home/webservd/.ssh/id_rsa.pub シェル環境: /bin/sh (sshやrsyncを実行するために必要)
PHPからRSYNCを実行する。つまりwebservdというユーザがRSYNCを実行できないといけない。よって、/etc/passwdのwebservdを以下のように変更した。 webservd:x:80:80:WebServer Reserved UID:/export/home/webservd:/bin/sh
webservdユーザが、パスワード無しで本番サーバへsshログインするための下準備をしておく。 # su - webservd
■本番サーバ下準備社内サーバのwebservdユーザーがパスワード入力無しで本番サーバにログインできるようにする。 本番サーバ ホームディレクトリ: /export/home/www (711か755) Webディレクトリ: /export/home/www/public_html/ (777) .sshのディレクトリ: /export/home/www/.ssh/
「社内サーバのwebservdユーザーの公開鍵」を「本番サーバのauthorized_keys」に追加しておく。 $ su - www
参考ページ Solarisにsshの自動ログインでパスワードを入力しないを参照
■社内サーバからsshログインを確認する社内サーバから本番サーバへ、パスワード無しでログインできることを確認しておく。 # su - webservd(webservdユーザにパスワードを設定していないのでルートからsuする)
■社内サーバにphpファイルを作成するrsyncを動かすためのphpファイルを作る。 社内サーバ ホームディレクトリ: /export/home/intra (711か755) Webディレクトリ: /export/home/intra/public_html/ (webservdが読めるように755)
/export/home/intra/public_html/rsync.php <html> $output = `コマンド` ; は一行で入力する。
ブラウザからアクセスして、実行結果を確認する。 http://社内サーバ/rsync.php
■rsyncの進行状況を確認するphp/export/home/intra/public_html/rsync_ps.php <html>
■上手くいかないときのチェック◎手動で試す。社内サーバで以下を実行する。 # su - webservd (webservdユーザにパスワードを設定していないのでルートからsuする) rsyncコマンドはフルパス指定する。 --rsync-pathに、本番サーバ上のrsyncをフルパス指定する。/opt/sfw/bin/rsyncの場合もある。 www.honban.co.jpの代わりにIPアドレスで指定してみる。
◎本番サーバのpublic_htmlディレクトリが777になっていること。webservdユーザが書き込むため。
◎社内サーバのApacheを停止、起動する。Apacheの実行ユーザwebservdに関する情報を変更した場合に行う。再起動ではなく、停止させてから、起動する。 # svcadm disable apache2
|
Solarisamazon広告英語お勧め教材! 英語の学校でも使っているのですが、1つのストーリーを3分で読めて、内容も面白く、もっと早く出会いたかった本です。 Apple好きで英語も勉強したいならこの一冊! ブログパーツ |