Skip to content

Instantly share code, notes, and snippets.

@sutara79
Last active December 27, 2015 05:59
Show Gist options
  • Save sutara79/7278055 to your computer and use it in GitHub Desktop.
Save sutara79/7278055 to your computer and use it in GitHub Desktop.
PhalconプロジェクトをPaaSにデプロイする(fortrabbit)

PhalconプロジェクトをPaaSにデプロイする(fortrabbit)

環境構成

  • OS: Windows7, Xubuntu13.10
  • Phalcon 1.2.4
  • 使用PaaS: fortrabbit
  • 送受信手段: Git
  • 使用DB: SQLite3

目次

  1. ホスティングサービスを選ぶ
  2. Gitをインストールする
  3. SSH公開鍵を作成する
  4. fortrabbitに登録する
  5. fortrabbitで新規アプリを作成する
  6. ローカルのPhalconプロジェクトをデプロイする
  7. (補足) GitHubにもpushしたい場合

関連情報


ホスティングサービスを選ぶ

公式サイトで勧められているホスティングサービスを比較しました。

サービス名 無料プランの有無
fortrabbit 無料プランあり
Amazon EC2 無料プランあり, 登録や設定が煩雑
WebFaction 無料プランなし
Linode 無料プランなし
Digital Ocean 無料プランなし
Rackspace 無料プランなし

手軽に試してみるにはfortrabbitが最適です。


Gitをインストールする

fortrabbitにデータを送信するためにGitを使います。

Windows

ダウンロードページヘ

最新版をダウンロードします。

最新版をダウンロード

インストールするとデスクトップに"Git Bash"というアイコンが表示されます。

GitBashのアイコン

実行して下記のような画面が表示されれば成功です。

GitBashの画面

Ubuntu

Ubuntuの場合は簡単です。

Bash
sudo apt-get install git

Git全体のユーザ情報を登録する (Windows, Ubuntu)

初期設定としてGit全体のユーザ情報を登録してください。

Bash
$ git config --global user.email '(メールアドレス)'
$ git config --global user.name '(名前)'

SSH公開鍵を作成する

お使いのPCの中で公開鍵をまだ作っていない場合は下記を実行してください。

Bash
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/.ssh/id_rsa): # Enterキーを押します
Enter passphrase (empty for no passphrase): # パスフレーズは不要なのでEnterキーを押します
Enter same passphrase again: # もう一度Enterキーを押します
Your identification has been saved in /Users/schacon/.ssh/id_rsa.
Your public key has been saved in /Users/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
43:c5:5b:5f:b1:f1:50:43:ad:20:a6:92:6a:1f:9a:3a [email protected]

デフォルトではC:\Users\(ユーザー名)\.ssh\id_rsa.pubが生成されます。
あとでこの中身をfortrabbitの設定で使います。

(補足) 送受信の暗号化のしくみ

  1. あらかじめユーザの公開鍵をfortrabbit側で登録しておく。
  2. ユーザが公開鍵と対になっている 秘密鍵 でユーザ情報を暗号化し、fortrabbitに送る。
  3. fortrabbitがユーザの公開鍵を使って復号する。

無事に復号できれば、通信相手は確かにユーザであるとfortrabbit側で確認できます。
また、上のような仕組みから、公開鍵は外部に漏れても別に問題ありません。

公開鍵を送るには、.pub ファイルの中身をコピーしてメールで送ります(訳注: メールなんかで送っていいの? とツッコミたいところだ……)。

参照先のページに上記のような文章がありますが、メールで送ってもかまいません。
fortrabbitではGitでの送受信にSSHプロトコルを使っているので、サイトのファイルなどは別途暗号化した上で送受信されます。


fortrabbitに登録する

公式サイトのトップページの右上のSIGN UP FREEをクリックします。

サインアップへ

ユーザ名、メールアドレス、パスワードを設定します。

ユーザ登録

登録したアドレス宛にメールが届くので、本文に記載されているリンクをクリックするかURLをブラウザに貼り付けて登録を認証します。 これで登録は完了です。

メール認証


fortrabbitで新規アプリを作成する

ユーザ個別ページの右上にあるNew Appボタンをクリックします。

新規アプリ作成

DEVELOP free(無料プラン)が選択されていることを確認してPurchaseボタンをクリックします。

無料プランを選択

ホスト名の一部となる任意のサイト名を記入します。
また、先ほど作成したSSH公開鍵を、id_rsa.pubをエディタで開いてコピペします。
その後、Save App Settingsボタンをクリックします。

アプリ名とSSH公開鍵

登録までしばらく時間がかかります。
終わったら、下の方にあるボタンをクリックします。
なお、各種の登録情報はメールでも送られます。
大切に保管してください。

アプリ作成完了

Settingsタブをクリックします。

ダッシュボード画面

初期状態ではOffになっているSQLiteとPhalconをOnにします。
その後、最下段のSave All Settingsボタンをクリックします。

SQLiteとPhalconを有効化


ローカルのPhalconプロジェクトをデプロイする

端末もしくはGitBashを開いてWebサーバのドキュメントルートまで移動して、下記のコマンドを実行します。

Bash
# ドキュメントルート直下にfortrabbitのアプリのクローンを作成します
git clone [email protected]:s79-ph-scaffold.git

ここで、ローカルで作成したプロジェクトの中身を新たに作成されたフォルダの中に移します。
その後、続けて下記のコマンドを実行します。

Bash
# 作成されたフォルダ内に移動します
cd s79-ph-scaffold/

# フォルダ内のすべてを、コミットするファイルとして指定します。
git add -A

# コミットを確定します。(一緒にコメントも添えています)
git commit -m 'first init'

# リモートリポジトリ(fortrabbit)に送信します。
git push origin master
Counting objects: 33, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (29/29), done.
Writing objects: 100% (33/33), 6.36 KiB, done.
Total 33 (delta 2), reused 0 (delta 0)
remote: Step1: Updating repository
remote:  -> OK
remote: Step2: Deploying
remote:  -> OK
remote: Step3: Composer Hook
remote:  -> Skip, not triggered.
remote: > All Done <
To [email protected]:s79-ph-scaffold.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

これでデプロイ完了です。
下の写真のようにproductsコントローラにアクセスしてみてください。
フォームでデータを無事に追加できれば成功です。

デプロイ成功

注意

下記のようにローカルで作成したプロジェクトの中でGitを初期化してリモートリポジトリを追加する方法では うまくデプロイできませんでした。
面倒ですが、上のようにリモートリポジトリのクローンを作成する方法を行ってください。

Bash
git init
git remote add origin [email protected]:s79-ph-scaffold.git

(補足) GitHubにもpushしたい場合

制作したPhalconプロジェクトをfortrabbitにデプロイするだけでなくGitHubでソースコードを公開したい場合について。
GitHubの公式ドキュメントでもリモートリポジトリの名前をoriginで登録するように説明していますが、このままではfortrabbitと重複してしまいます。

$ git remote add origin https://github.com/username/Hello-World.git

Creates a remote named "origin" pointing at your GitHub repository

重複しないようにどちらかのリモートリポジトリの名前を変更すればいいのですが、fortrabbitはoriginから変更すると通信を受け付けてくれなくなるようなのでGitHubの方を変更します。
GitHubは下記の通り変更しても問題ないようです。

Bash
# a. GitHubのリモートリポジトリを登録する際にoriginとは別の名前(例: github)をつけます
git remote add github https://github.com/sutara79/basic.scaffold.phalcon.git

# b. すでにGitHubに登録した後でfortrabbitを使い始める場合はリモート名を変更します
git remote rename origin github

これで、GitHubに送信する場合は下記のようにできます。

Bash
git push github master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment