Submit Search
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
•
3 likes
•
3,350 views
toshihirock
Follow
1 of 34
Download now
Download to read offline
More Related Content
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
1.
FuelPHPのScaffoldで作 成した画面をdotcloud にデプロイしてみた
2013/03/23 FuelPHP勉強会 東京 vol.3 @toshihirock
2.
自己紹介 • @toshihirock • PHPは今年まで未経験。 •
今年に入って「PHPでプログラム作成し て」といわれた。しかも納期は約1ヶ 月、だと・・・ • 先輩の勧めで「FuelPHP」を利用 • FuelPHPのおかげで無事納品←今ここ
3.
今日のお話
4.
FuelPHPをdotcloudに デプロイしてみた
5.
dotcloud?
7.
dotcloud? • PaaS。AWSとかHerokuとか • PHP,Node.js,Ruby,Javaなど対応 •
DBはMySQL,PostgreSQLなど対応 • 無料でも使える • WebSocket使える。サーバーへのsshも 可能。cronとかも仕込める
8.
目次 • ローカル環境でScaffold画面を作成 • dotcloudの利用準備 •
Welcomeページをdotcloudで(メイン) • Scaffoldで作成した画面を表示 (メイン) • まとめ
9.
確認内容 • FuelPHP1.5 • MySQL •
ローカル操作はMacOSX • dotcloudのCLIは0.9
10.
1.ローカル環境で Scaffold画面を作成
11.
アプリ作成+Scaffold $ cd ~/Site/ $
oil create blog $ oil g scaffold post title:varchar[255] summary:varchar[255] body:text $ oil refine migrate
12.
http://localhost/blog/public/
13.
2.dotcloud利用準備
14.
アカウント作成 https://www.dotcloud.com/
15.
コマンドラインツー
ルのインストール $ sudo easy_install pip && sudo pip install dotcloud $ dotcloud setup • 公式:http://docs.dotcloud.com/firststeps/install/ • Windows,Linuxは上記を確認 • 「dotcloud setup」でログイン情報など入力
16.
4.Welcomeページを
dotcloudで
17.
ドキュメント類の削
除(必須ではない) $ cd ~/Site/blog/ $ rm *.md $ rm -rf docs • dotcloudにpushする際に時間がかかるため、 不必要なファイルは削除
18.
dotcloudアプリの作成 $ dotcloud create
fuelphpapp $ dotcloud list • 「dotcloud create <アプリケション名>」で アプリを作成 • 「dotcloud list」で作成したアプリ一覧取得 し、アプリが作成された事を確認
19.
dotcloud.ymlの作成 $ cd ~/Site/blog/ $
vi dotcloud.yml • dotcloudにデプロイする際に必須 • デプロイする言語、利用するDB、Webサイ トのDocumentRootなどを指定 • ファイルはアプリケーションの一番上の階 層に配置
20.
dotcloud.yml 1 www: 2
type: php 3 approot: public 4 db: 5 type: mysql
21.
push $ dotcloud connect
fuelphpapp $ dotcloud push • 「dotcloud connect <アプリケーション名 >」で利用するアプリを選択 • 「dotcloud push」でconncetしたアプリに pushする。最後にアクセスするURLが表示 されるのでブラウザでアクセス
22.
http://[hostname]
23.
5.Scaffoldで作成した
画面の表示
24.
Nginxの設定 • dotcloudではWebサーバーはNginxを利用 • 「nginx.conf」というファイルをpushすると
doctloudでnginxの設定が出来る • URLから「index.php」を取り除く為に rewrite設定を行う
25.
nginx.conf 1 try_files $uri
/index.php?$uri&$args;
26.
MySQL • 「dotcloud run
db --mysql」でコンソールで の操作が可能。以下をSQLで実施。 • DB作成 • DB操作ユーザーの作成 • テーブルの作成 時間の関係で詳細は省略させて頂きます。
27.
DB接続設定 • db.phpを編集し、dotcloudのMySQLに接続す る •
接続ホスト名、接続ポート番号などは 「dotcloud info <DBのインスタンス名>」で 確認できる • dotcloudにenvironment.jsonが存在し、そこ にも書いてある
28.
どうやって設定? • ファイルを確認して直書き •
設定ミスがありえる(port番号間違えて 小1時間悩んだ。。。) • ファイルから取得して値を設定 • ミスがないので安心!
29.
db.php 1
<?php 2 $filepath = $_SERVER['HOME'].'/environment.json'; 3 $env = json_decode(file_get_contents($filepath), true); 4 $host = $env['DOTCLOUD_DB_MYSQL_HOST']; 5 $port = $env['DOTCLOUD_DB_MYSQL_PORT']; 6 $dbname = 'test_db'; 7 $dsn = 'mysql:host='.$host.';port='.$port.';dbname='.$dbname; 8 9 return array( 10 'default' => array( 11 'connection' => array( 12 'dsn' => $dsn, 13 'username' => 'dbuser', 14 'password' => '******', 15 'persistent' => false, 16 'compress' => false, 17 ), 18 ), 19 );
30.
push $ dotcloud push
31.
http://[hostname]/post/
32.
まとめ • dotcloud独自の設定は以下のみでOK •
dotcloud.yml • nginx.conf • db.php • dotcloudではSSHログイン、cron設定も無料 で出来るので結構便利(taskの定期実行など も可能かと)
33.
参考にさせて頂いた
サイト • FuelPHPをNginxで動かしてみる • http://akibe.com/fuelphp%E3%82%92nginx %E3%81%A7%E5%8B%95%E3%81%8B %E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/ • Ubuntu 12.04 にて dotCloud の MySQL を試してみる (PHP編) • http://www-indblue.blogspot.jp/2012/08/ ubuntu-1204-dotcloud-mysql-php.html
34.
ご清聴ありがとうご ざいました
Download