SlideShare a Scribd company logo
1 of 34
Download to read offline
FuelPHPのScaffoldで作
成した画面をdotcloud
にデプロイしてみた
         2013/03/23
   FuelPHP勉強会 東京 vol.3
       @toshihirock
自己紹介
• @toshihirock
• PHPは今年まで未経験。
• 今年に入って「PHPでプログラム作成し
 て」といわれた。しかも納期は約1ヶ
 月、だと・・・

• 先輩の勧めで「FuelPHP」を利用
• FuelPHPのおかげで無事納品←今ここ
今日のお話
FuelPHPをdotcloudに
 デプロイしてみた
dotcloud?
dotcloud?
• PaaS。AWSとかHerokuとか
• PHP,Node.js,Ruby,Javaなど対応
• DBはMySQL,PostgreSQLなど対応
• 無料でも使える
• WebSocket使える。サーバーへのsshも
 可能。cronとかも仕込める
目次
• ローカル環境でScaffold画面を作成
• dotcloudの利用準備
• Welcomeページをdotcloudで(メイン)
• Scaffoldで作成した画面を表示 (メイン)
• まとめ
確認内容

• FuelPHP1.5
• MySQL
• ローカル操作はMacOSX
• dotcloudのCLIは0.9
1.ローカル環境で
Scaffold画面を作成
アプリ作成+Scaffold
$ cd ~/Site/

$ oil create blog

$ oil g scaffold post title:varchar[255]
summary:varchar[255] body:text

$ oil refine migrate
http://localhost/blog/public/
2.dotcloud利用準備
アカウント作成




https://www.dotcloud.com/
コマンドラインツー
      ルのインストール
$ sudo easy_install pip && sudo pip install dotcloud
$ dotcloud setup


 • 公式:http://docs.dotcloud.com/firststeps/install/
 • Windows,Linuxは上記を確認
 • 「dotcloud setup」でログイン情報など入力
4.Welcomeページを
   dotcloudで
ドキュメント類の削
       除(必須ではない)
$ cd ~/Site/blog/
$ rm *.md
$ rm -rf docs

 • dotcloudにpushする際に時間がかかるため、
   不必要なファイルは削除
dotcloudアプリの作成

$ dotcloud create fuelphpapp
$ dotcloud list

 • 「dotcloud create <アプリケション名>」で
   アプリを作成

 • 「dotcloud list」で作成したアプリ一覧取得
   し、アプリが作成された事を確認
dotcloud.ymlの作成
$ cd ~/Site/blog/
$ vi dotcloud.yml

 • dotcloudにデプロイする際に必須
 • デプロイする言語、利用するDB、Webサイ
   トのDocumentRootなどを指定

 • ファイルはアプリケーションの一番上の階
   層に配置
dotcloud.yml

1 www:
2      type: php
3      approot: public
4 db:
5      type: mysql
push
$ dotcloud connect fuelphpapp
$ dotcloud push

 • 「dotcloud connect <アプリケーション名
   >」で利用するアプリを選択

 • 「dotcloud push」でconncetしたアプリに
   pushする。最後にアクセスするURLが表示
   されるのでブラウザでアクセス
http://[hostname]
5.Scaffoldで作成した
   画面の表示
Nginxの設定
• dotcloudではWebサーバーはNginxを利用
• 「nginx.conf」というファイルをpushすると
 doctloudでnginxの設定が出来る

• URLから「index.php」を取り除く為に
 rewrite設定を行う
nginx.conf

1 try_files $uri /index.php?$uri&$args;
MySQL
• 「dotcloud run db --mysql」でコンソールで
 の操作が可能。以下をSQLで実施。

 • DB作成
 • DB操作ユーザーの作成
 • テーブルの作成
時間の関係で詳細は省略させて頂きます。
DB接続設定
• db.phpを編集し、dotcloudのMySQLに接続す
 る

• 接続ホスト名、接続ポート番号などは
 「dotcloud info <DBのインスタンス名>」で
 確認できる

• dotcloudにenvironment.jsonが存在し、そこ
 にも書いてある
どうやって設定?

• ファイルを確認して直書き
 • 設定ミスがありえる(port番号間違えて
  小1時間悩んだ。。。)

• ファイルから取得して値を設定
 • ミスがないので安心!
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   );
push

$ dotcloud push
http://[hostname]/post/
まとめ
• dotcloud独自の設定は以下のみでOK
 • dotcloud.yml
 • nginx.conf
 • db.php
• dotcloudではSSHログイン、cron設定も無料
 で出来るので結構便利(taskの定期実行など
 も可能かと)
参考にさせて頂いた
                      サイト
•   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
ご清聴ありがとうご
  ざいました

More Related Content

What's hot

Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
peryaudo
 
Bgworkerで簡易クラスタ管理
Bgworkerで簡易クラスタ管理Bgworkerで簡易クラスタ管理
Bgworkerで簡易クラスタ管理
Masahiko Sawada
 
エコなWebサーバー
エコなWebサーバーエコなWebサーバー
エコなWebサーバー
emasaka
 
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DOWebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
Kohei Noda
 
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことWebサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのこと
TrinityT _
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
max747
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる
airtoxin Ishii
 

What's hot (20)

自作アプリをデプロイしてみた with Docker
自作アプリをデプロイしてみた with Docker自作アプリをデプロイしてみた with Docker
自作アプリをデプロイしてみた with Docker
 
Grunt入門
Grunt入門Grunt入門
Grunt入門
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
 
Docker やってみた
Docker やってみたDocker やってみた
Docker やってみた
 
NanoStrand
NanoStrandNanoStrand
NanoStrand
 
Dockerでlamp環境を作って見る
Dockerでlamp環境を作って見るDockerでlamp環境を作って見る
Dockerでlamp環境を作って見る
 
Bgworkerで簡易クラスタ管理
Bgworkerで簡易クラスタ管理Bgworkerで簡易クラスタ管理
Bgworkerで簡易クラスタ管理
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouch
 
Ec2でのdisk拡張方法
Ec2でのdisk拡張方法Ec2でのdisk拡張方法
Ec2でのdisk拡張方法
 
エコなWebサーバー
エコなWebサーバーエコなWebサーバー
エコなWebサーバー
 
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DOWebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
 
STNSサーバーを書いてみた
STNSサーバーを書いてみたSTNSサーバーを書いてみた
STNSサーバーを書いてみた
 
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことWebサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのこと
 
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
 
あなたの時間を1秒節約します
あなたの時間を1秒節約しますあなたの時間を1秒節約します
あなたの時間を1秒節約します
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる
 
Xoopsサイト制作セミナー 20120922
Xoopsサイト制作セミナー 20120922Xoopsサイト制作セミナー 20120922
Xoopsサイト制作セミナー 20120922
 
Dockerと継続的インテグレーション
Dockerと継続的インテグレーションDockerと継続的インテグレーション
Dockerと継続的インテグレーション
 
Couch DB in 15minutes
Couch DB in 15minutesCouch DB in 15minutes
Couch DB in 15minutes
 
カウチなやつら CouchDB in the room
カウチなやつら CouchDB in the roomカウチなやつら CouchDB in the room
カウチなやつら CouchDB in the room
 

Viewers also liked

The beginning of a great friendship
The beginning of a great friendshipThe beginning of a great friendship
The beginning of a great friendship
aweinger
 
Trabajo A & S La Florida Presentacion Final
Trabajo A & S La Florida Presentacion FinalTrabajo A & S La Florida Presentacion Final
Trabajo A & S La Florida Presentacion Final
mwpaters
 
Who Is True Frindship
Who Is True FrindshipWho Is True Frindship
Who Is True Frindship
Rakesh Yadav
 
Avance trabajo a+s
Avance trabajo a+sAvance trabajo a+s
Avance trabajo a+s
mwpaters
 

Viewers also liked (20)

Tizenネイティブアプリ開発ことはじめ
Tizenネイティブアプリ開発ことはじめTizenネイティブアプリ開発ことはじめ
Tizenネイティブアプリ開発ことはじめ
 
今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」
 
最近、僕がハマったFuelPHPの紹介
最近、僕がハマったFuelPHPの紹介最近、僕がハマったFuelPHPの紹介
最近、僕がハマったFuelPHPの紹介
 
The beginning of a great friendship
The beginning of a great friendshipThe beginning of a great friendship
The beginning of a great friendship
 
Age loc Vitality presentation
Age loc Vitality presentation Age loc Vitality presentation
Age loc Vitality presentation
 
Dec 27-2010
Dec 27-2010Dec 27-2010
Dec 27-2010
 
Presentació ag21. 08 09
Presentació ag21. 08 09Presentació ag21. 08 09
Presentació ag21. 08 09
 
Phx SUW preso
Phx SUW presoPhx SUW preso
Phx SUW preso
 
photo frames 2
photo frames 2photo frames 2
photo frames 2
 
Trabajo A & S La Florida Presentacion Final
Trabajo A & S La Florida Presentacion FinalTrabajo A & S La Florida Presentacion Final
Trabajo A & S La Florida Presentacion Final
 
Presentación de diapositivas 5 minutos Triquinosis
Presentación de diapositivas 5 minutos TriquinosisPresentación de diapositivas 5 minutos Triquinosis
Presentación de diapositivas 5 minutos Triquinosis
 
PPT
PPTPPT
PPT
 
My lost friend
My lost friendMy lost friend
My lost friend
 
Who Is True Frindship
Who Is True FrindshipWho Is True Frindship
Who Is True Frindship
 
Paramarsh - Ready to help
Paramarsh - Ready to helpParamarsh - Ready to help
Paramarsh - Ready to help
 
resume ng 2017 final
resume ng 2017 finalresume ng 2017 final
resume ng 2017 final
 
Be practice - happy and sad
Be practice -  happy and sadBe practice -  happy and sad
Be practice - happy and sad
 
Avance trabajo a+s
Avance trabajo a+sAvance trabajo a+s
Avance trabajo a+s
 
Historia de la Psicología
Historia de la PsicologíaHistoria de la Psicología
Historia de la Psicología
 
Happy or sad
Happy or sadHappy or sad
Happy or sad
 

Similar to FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた

20150101勉強会 dokku alt
20150101勉強会 dokku alt20150101勉強会 dokku alt
20150101勉強会 dokku alt
Shugo Numano
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
 

Similar to FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた (20)

Docker handson
Docker handsonDocker handson
Docker handson
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
20150101勉強会 dokku alt
20150101勉強会 dokku alt20150101勉強会 dokku alt
20150101勉強会 dokku alt
 
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
 
Dockerを使ってみよう
Dockerを使ってみようDockerを使ってみよう
Dockerを使ってみよう
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
Newcomer2020 Docker研修
Newcomer2020 Docker研修Newcomer2020 Docker研修
Newcomer2020 Docker研修
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
 
Docker実践入門
Docker実践入門Docker実践入門
Docker実践入門
 
ビルドサーバで使うDocker
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDocker
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
Drupal deployment trial on Engine Yard
Drupal deployment trial on Engine YardDrupal deployment trial on Engine Yard
Drupal deployment trial on Engine Yard
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
 
Db2 Warehouse Spark利用ガイド チュートリアル編
Db2 Warehouse Spark利用ガイド チュートリアル編Db2 Warehouse Spark利用ガイド チュートリアル編
Db2 Warehouse Spark利用ガイド チュートリアル編
 
Introduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing DockerfilesIntroduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing Dockerfiles
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
DockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようDockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみよう
 

Recently uploaded

Recently uploaded (10)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた