人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP。サーバー間のディスクI/Oについて
PHPが動いているサーバと別のサーバのファイルをプログラムから読み込んだり書き込んだりするには一般的にどのような方法があるのでしょうか。
読み書きしたいサーバにはふだんSSHクライアントなどからアクセスしてファイル内容を参照したりしています。その際パスフレーズなどが求められますが、プログラムから(そのサーバの)ファイルを参照したり書き込んだりする場合にもSSH経由での認証が必要だったりするのでしょうか。

●質問者: tiritomato
●カテゴリ:コンピュータ インターネット
✍キーワード:I/O PHP SSH アクセス クライアント
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● 牛乳先生(tukihatu)
●27ポイント

まず後ろの方から。

書き込むときは、SSH経由での認証(またはその他プロトコルでの認証ログイン)が必要です。

パスワードなしで誰でもサーバに書き込めたら、セキュリティ的にやばいですもんね。

参照だけの場合でも、そのデータをみるのにパスワードが必要だったりゲストの読み取り権限が無い場合は必要です。

PHPでSSH通信をする場合はssh2関数を使えばできます。

http://jp2.php.net/manual/ja/book.ssh2.php

同様にftpもPHPから使用することが出来ます。

http://jp2.php.net/manual/ja/book.ftp.php

php.iniの設定を少ししないといけない…かな?


これはPHPが別サーバのファイルを操作する場合です。

PHPと操作するファイルが同じサーバの場合は認証をしなくてもいけるケースがあります。

別サーバに情報を蓄える、読み出す、というのは一般的にはデータベースを使っていますね。mysqlでつなぐとか。簡単なので。

もちろんSSHのsftpやftpでつなぐのもありかと思います。

◎質問者からの返答

DBを使う方法も検討しています。

いろいろ整理できました。ありがとうございます


2 ● y-kawaz
●27ポイント

うーん、PHPでsshコマンドを実行するということは通常はあまりやりませんね。

あえて必要になる場合はパスフレーズ無しの公開鍵認証を使えばパスワードの入力とかは不要で無人で実行できますよ。


それよりもデータのやりとりだけなら、通常は以下のような手段等がまず考えられます。

・NFSでリモートサーバのディレクトリをマウントしてファイルを読み書きする

・データの形によりますがDBサーバでよければリモートに繋ぐのは良くあること

・リモートサーバ側にデータをやりとりするWEBAPI等を作成してそれ経由でデータのやりとりをする

◎質問者からの返答

いろいろ方法がありますね。検討してみます。

ありがとうございます


3 ● pahoo
●26ポイント

fopen/fclose での読み書きということであれば、ご利用のPHP環境がサポートしているプロトコル/ラッパーによります。


上記リンクにある通り、PHP環境がサポートしていれば、SSH2によるアクセスは可能です。

その他、以下のプロトコルが利用できます。


読み書きしたいサーバが同一LAN上にあるのであれば、ファイルシステムを利用するのが最も簡単です。

リモートにある場合は、FTPS を使うことがあります。

◎質問者からの返答

ファイルシステムでいくか、もしくはFTPSの方法について調べてみたいと思います。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ