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

研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
atsushi061452
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (11)

論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 

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