developer's diary

最近はc#のエントリが多いです

PHPでFTPで上書き更新のMVP(実用最小限の製品)

昨日リーンスタートアップの勉強会に参加しましたので、リーンスタートアップの用語を使いたくて使いたくてタマラナイmitsugeekです。

朝はやく(1時)に起きて眠れないので、ふとFTPのアップロードを自動化できれば楽しいんじゃないかと先ほど思いまして早速試してみました。

やってみて感じた事ですが、awsでのs3へのアクセスよりずっと簡単だということ。(rpmでインストールしたphpでそのまま使える) で参考までにソースを。

<?php
$ftp = ftp_connect('{サーバのIP}', {サーバのport}); //サーバに接続 (コネクションを開く)
$login_result = ftp_login($ftp, 'ユーザID', 'パスワード'); //サーバにログイン
$contents = "アップロードしたいファイルの内容"; //ファイルの内容を記述
$tempHandle = fopen('php://temp', 'r+'); //一時的なファイルを作成
fwrite($tempHandle, $contents); //ファイルに書き込み
rewind($tempHandle); //ファイルポインタの位置を先頭に戻す
ftp_fput($ftp, "/サーバのパス", $tempHandle, {FTP_ASCII or FTP_BINARY}); //ファイルアップロード
ftp_close($ftp); //サーバのコネクションを閉じる

これだけなんですが、

  1. テンプレートファイル読み込み
  2. データベースから情報取得
  3. テンプレートに情報を流し込む
  4. FTPでアップロード

の仕組みだけでも結構役立つと思います(個人的に)

欲をかけば、gitサーバ立ててpushしたらftpでテストサーバにアップして、 OKだったら管理画面からボタン押下で本番にデプロイまでの仕組みも作り込みたい。。。

そんなに難しくない割に、結構役立つ費用対効果の高いものが大好きなmitsugeekでした。