FTP over SSLでのアップロード等について - PHPプロ!Q&A掲示板

2792

  • 0P

FTP over SSLでのアップロード等について

質問日時 / 2010年6月28日 14:28    回答数 / 6件

Questioner:  yskzyskz  このエントリーをはてなブックマークに追加 

キーワード / FTP over SSL    FTPS   

現在FTPでのアップロードは
ftp_connect()
ftp_login()
ftp_put()
ftp_mkdir()
等を利用して出来ています。

それと同じようなことをFTP  over SSLでするにはどのような方法がありますか?
ネットで探した結果
今は、curl_setopt()を利用して同じことは出来ているのですが、途中で処理を分岐できないなど細かい制御ができないのでもっとよい方法があればなと思っています。

ディレクトリ作成
curl_setopt($ch, CURLOPT_QUOTE, array("MKD d"));
アップロード
curl_setopt($ch, CURLOPT_URL, 'ftp://'.ftp_user.':'.ftp_pass.'@'.ftp_server.'/d/index.html');
のようにしています。

ローカル環境windows_xpからlinuxサーバへのアップロードです。よろしくお願いします。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01shimix>ローカル環境windows_xpからlinuxサーバへのアップロ
┣A02yskzyskzwebサービスのAPIを利用し静的なページを生成し自動で
┃┗A02-1pannna使ったことがないので推測でしかないのですが、 PECL
┃ ┗A02-1-1shimixWindows環境でもソースからビルドするのでよければ、f
┗A03yskzyskz答えてくださった方々ありがとうございます。 wind
 ┗A03-1pannnaちょっと前のレスと内容がかぶりますが、phpしか分か

回答一覧

並び替え:

A01
answerershimix [6月28日 15:07]

>ローカル環境windows_xpからlinuxサーバへのアップロードです。

FTPクライアントを使うのが一番手っ取り早いと思いますが、phpスクリプトを使う理由は何でしょうか?

この意見に回答する

ツリーへ TOPへ

A02
answereryskzyskz [6月29日 13:28] (最終編集:6月29日 13:32)

webサービスのAPIを利用し静的なページを生成し自動でアップロードするためです。これを使って毎日新しいページを追加・更新しています。

この意見に回答する

ツリーへ TOPへ

A02-1
replyerpannna [6月29日 17:12] (最終編集:6月29日 18:05)

使ったことがないので推測でしかないのですが、
PECLのこちらの関数は期待に沿うような動作が可能ではないでしょうか?

http://jp.php.net/manual/ja/ref.ssh2.php

# 直接な回答ではなくてすみません

(追記)
shimixさんのレスを見て勘違いに気付きました…。
クライアントからアップロードするだけならばwindowsアプリ作ったほうが早いです。
というよりPHPでやる意味が全くないですね。
PHPしか知らないというのなら話は別でしょうけど、それなら例えばBasic認証をかけた
ページをサーバ側に準備して、そちらでアップロードさせたほうがスマートです。

VCやVBであれば参考になるのが大量にありますし、APIも用意されているので
そちらを使うことをお勧めします。

この意見に回答する

ツリーへ TOPへ

A02-1-1
replyershimix [6月29日 17:35]

Windows環境でもソースからビルドするのでよければ、ftp_ssl_connect()が使えるかもしれません(使ったことがないので詳細は不知)。

多分、私ならWin32アプリで作るでしょうね(httpやftpを扱うのも難しくはなかったハズ)。ローカルPCでphpスクリプトで書く意図がやっぱりわかりません。phpスクリプトで書くならサーバ側で動かして直接作成する方が吉でしょう。リソース制限か何かで無理なんですかね・・。

この意見に回答する

ツリーへ TOPへ

A03
answereryskzyskz [6月30日 21:39] (最終編集:6月30日 21:42)

答えてくださった方々ありがとうございます。

windowsのアプリケーションは勉強をかねた簡単なものしか作ったことがないのでできればphpでやりたいです。
又phpから直接アプリケーションを起動し実行する方法なら

new COM("Shell.Application");
exec('filezilla.exe' ~);

というような方法で(単純なFTPですが)やっているます。

phpのみでやれるほうがこまかく制御できるためこれが一番の理想です。

sshを調べましたがSFTPのようでftpsとは違うようです。

phpはwebでやりたいことが簡単にできる関数が用意されているのでFTP同様できるのかな、と思い質問しましたが、FTPSは簡単にはできないのかもしれませんね。

ガンブラーなどの脅威もありFTPではアップロードできない所もありますのでこれからそういった関数ができることを期待します。

と終了しそうに書き込みましたがわかる方がいましたら教えてください。今後の勉強のためにもよろしくお願いします。

それとftp_ssl_connect()はwindowsでは駄目ということがありやめていました。ソースからビルドという方法はやったことがなかったので違う方法をと思っていましたが他に方法がなければ調べてやって見ます。

この意見に回答する

ツリーへ TOPへ

A03-1
replyerpannna [6月30日 23:58] (最終編集:7月1日 00:08)

ちょっと前のレスと内容がかぶりますが、phpしか分からないのでsftpクライアントを
phpで作りたいというのでしたら、そもそも方向性が間違っているとしか思えません。

それでもどうしてもphpで、というのでしたら、
必要なsftpを行うCOMを自作してCOM関数経由で実行するしかなくなりそうですが、
そもそもこんなCOMを作るくらいならフリーのライブラリがあるので
それを使ってwindowsアプリを作ったほうが早いです。

ウィルスの脅威もあり、ということですが、そもそもそういったウィルスに
感染しないようにするのは最低限やるべきことです。

また、ソースからビルドするのもmakefileなどCの知識が必須になりますので、
かなり難易度は上がると思います。


一応私がwindowsアプリを作った際に使わせて頂いた.net framework用ライブラリの
URLを載せておきます。

http://www.routrek.co.jp/product/varaterm/granados.html

# 解決方法ではなくてすみません

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
動的なURLを静的に見せる方法
 このエントリーをはてなブックマークに追加 
A
普通に考えて、mod_rewrite でしょうね。 http://www.nishishi.com/blog/2006/01/mod_rewrite_url.html...

>>続きを読む

GETのままでは検索エンジンのロボットが拾ってくれなかったためにSEO対策として有効だと言われていますね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)