neutligenの日記

初心者が商用開発に挑む姿を綴ります。僕のような初心者の方に「こんな奴もいるんかー」と思って読んでもらい、コメントまで貰えたら幸いです。

開発のわだち(7):カレンダービューを編集する

「カレンダービューを編集する」

目標:fullcalendarのビューを変えてみる



ビューの編集はfull calendarが用意してくれてるオブジェクトがあるのでそれに従って変更します。

例えば、ここを参考に以下のように設定すると、

app/assets/javascripts/calendar.coffee

$(document).ready ->
  $('#calendar').fullCalendar
    header:
      left: 'prev,next today',
      center: 'title',
      right: 'month,agendaWeek,agendaDay',
    defaultView: 'month',
    slotMinutes: 30,
    timeFormat: 'H:mm',

こんな感じになります。

f:id:neutligen:20160323183202p:plain

full calendarのリファレンスドキュメントがjavascriptで書かれているのでrailsで採用する場合はcoffeescriptに直す必要があります。
その時に利用させてもらってるのは、ここです。

まだまだjavascriptの知識が足りないぜ。

環境

ホストOS: MacOSX 10.11.3
VirtualBox: 5.0.14
Vagrant: 1.7.4
ゲストOS: CentOS 7

ゲストOSの環境

Apache: 2.4.6
node.js: v0.10.43
ruby: 2.2.1p85
Rails: 4.2.6
fullcalendar-rails (2.6.1.0)

開発のわだち(6):herokuでデプロイ

「herokuでデプロイ」

目標:herokuでアプリをデプロイする

目次:
1.herokuコマンドを使えるようにする
2.herokuでオンライン上にデプロイする

     

1.herokuコマンドを使えるようにする

rails tutorialで勉強したことのあるherokuをvagrant環境に導入します。 まずは、ここからheroku-toolbeltをインストールするコマンドをコピー。 (僕はSTANDALONEから行きました。参考にさせて頂いたサイトはここです。)

$ sudo yum install wget
# まずは"wget"コマンドを入手
$ sudo wget -O- https://toolbelt.heroku.com/install.sh | sh
# コピーしてきたコマンドを実行
$echo 'PATH="/usr/local/heroku/bin:$PATH"' >> ~/.bash_profile
# herokuコマンドのパスを通す(環境に合わせて~/.bash_profileとした)
$ source ~/.bash_profile
# 書き足したスクリプトを実行
$ heroku version
# バージョン確認

以上でherokuコマンドが使えるようになりました。


2.herokuでオンライン上にデプロイする

railsのアプリをherokuで運用する場合、production環境にpgとrails_12factorのgemを入れる必要があるので、以下の通りgemファイルを修正します。 二つのgemを指定している理由はherokuのrails4.x向けチュートリアルにあります。
Gemfile

source 'https://rubygems.org'
...中略
group :production do
    gem 'pg'
    gem 'rails_12factor'  
end

Gemfileを変更したのでGemfile.lockを更新します。

$ bundle update
# Gemfile.lockを更新。もしエラーが出たら先に"bundle install --without production"してproduction環境を分けちゃう。
$ bundle install --without production
# productionグループに設定したgemはdevelop環境にはインストールしないという意味のオプション

herokuにデプロイするのはgitにcommitされたバージョンなので必ずコミットします。 (自分はコミットし忘れて結構ハマりました。。。)

$ git checkout master
$ git add -A
# "git add ."と"git add -u"を同時に行い削除も含めた全変更をステージング
$ git commit  -m "herokuでデプロイ用"

herokuにログインしてsshキーを登録します。 事前にherokuのwebサイトからアカウントを取得しておく必要がありますが、それは割愛。

$ heroku login
# アカウント認証が求められるので入力。
$ heroku keys:add
# sshキーを登録

herokuにdyno(デプロイ用のコンテナ?)を作成して、masterブランチにコミットされている内容をherokuのdynoにプッシュします。

$ heroku create
$ git push heroku master 
# デプロイ完了!
$ git config --list | grep heroku
# これでgit config上に登録されたことを確認
$ heroku rename "アプリの名前"
# アプリの名前はheroku上でユニークになる必要があります。

以上でデプロイ完了です。herokuはすごい!w

環境

ホストOS: MacOSX 10.11.3
VirtualBox: 5.0.14
Vagrant: 1.7.4
ゲストOS: CentOS 7

ゲストOSの環境

Apache: 2.4.6
ruby: 2.2.1p85
Rails: 4.2.6

開発のわだち(5):カレンダービューを導入する

「カレンダービューを導入する」

目標:fullcalendarのgemを導入してカレンダービューを表示

目次:
1.FullCalendar-gemを追加
2.ブラウザからアクセスしてカレンダを表示

     

1.FullCalendar-gemを追加

何があるかわからないので、トピックブランチを切ります。

$ git branch
  hagehage
* master
$ git checkout -b fulcal
# 新しいブランチを作成し、同時にそのブランチに移動する。



カレンダービューを探していたら「月/週/日」表示に対応していてGoogle calendarとの連携まで準備してくれている素晴らしいものがあったので、こちらを採用しました。 full calendarというライブラリですがrails用のgemも存在していてこれを取り込むところから始めます。

こういうのは該当のgemのREADME.mdに従うに限りますw

まずはGemfileに以下の行をを追記。

gem 'fullcalendar-rails'
gem 'momentjs-rails'

そして、依存関係から先にアセットパイプラインにセットしておくべきgem 'momentjs-rails'をapplication.jsにセットします。

app/assets/javascripts/application.js

//= require moment

application.jsを編集した上でgemをインストール。

$ bundle

gemインストール後に生成されたfull calendarのjsとcssをアセットパイプラインに追加します。
app/assets/stylesheets/application.css

*= require fullcalendar

app/assets/javascripts/application.js

//= require fullcalendar

これで環境は整いました。


2.ブラウザからアクセスしてカレンダを表示

まずはカレンダービューを表示するページまでのルートを作るところから。

routes.rbを編集して最初にアクセスされるページを変更します。
config/routes.rb

Rails.application.routes.draw do
  root 'application#index'
# 最初にアクセスされる画面はapplication_controllerのindexアクションですよという設定。
end

次にapplication_controller.rbにindexアクションを設定。
app/controllers/application_controller.rb

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
# indexアクションを設定。
  def index
  end
end

indexアクションに反応するviewを作成します。
app/views/application/index.html.erb

<h1>help!</h1>

これで、http://192.168.33.10:3000にアクセスすると以下のような画面が表示されるようになります。 f:id:neutligen:20160320231733p:plain

次にカレンダーを表示する画面です。bundleした際に生成されたindex.html.erbを編集します。 ここでも、オフィシャルのDocsに従うためここを参考にしました。
app/views/calendar/index.html.erb

<h1>Calendar#index</h1>
<div id="calendar"></div>
# カレンダー(jquery)を表示する場所(id)を設置
<p>Find me in app/views/calendar/index.html.erb</p>

htmlに表示するデフォルトのカレンダーを生成するcalendar.coffeeを編集します。 (これもbundleのタイミングで生成されている)
app/assets/javascripts/calendar.coffee

$(document).ready(function() {
    $('#calendar').fullCalendar({
    })
});

javascriptは本当にわからない。。。

何れにしても、これで準備は整ったはずなのでブラウザからカレンダービューのディレクトリにアクセスしてみます。 urlはhttp://192.168.33.10:3000/calendar/index


すると

f:id:neutligen:20160320234530p:plain

わからないが祟ってエラー。。。

いろいろ調べてみると("いろいろ"とか言って二日間調べましたが)ここはcoffeescriptで書かなきゃならないらしく、公式ドキュメントに書いてあるjavascriptコピーするだけじゃダメなようです。 なので、Try Coffee Scriptを使って編集し直しながら、以下のように書き直しました。
app/assets/javascripts/calendar.coffee

$(document).ready -> 
 $('#calendar').fullCalendar()

こちらのサイトも参考にさせて頂きました。



改めてhttp://192.168.33.10:3000/calendar/indexにアクセス。



f:id:neutligen:20160320235657p:plain

15秒くらいガッツポーズしました。 javascriptcoffeescript勉強しないとな。。。頑張ります。

一時期見当はずれな方向を調べ漁って、アセットパイプラインとかExecJSのRuntimeErrorとかに詳しくなりましたw。 (ちなみに一緒にやってる学生は2時間くらいで出来ちゃってました。さすがや。。)

すかさずバージョンをリモートリポジトリへ。

$ git add .
$ git commit -m "got it, see calendar view"
$ git checkout master
# 冒頭で作成したトピックブランチからmasterブランチに戻ります。
$ git merge fulcal
# 作業していたトピックブランチをmasterブランチにマージします。
$ git push -u origin master

以上です。 次回からは、表示の切り替えやスケジュールの登録をやっていきたいと思います。

環境

ホストOS: MacOSX 10.11.3
VirtualBox: 5.0.14
Vagrant: 1.7.4
ゲストOS: CentOS 7

ゲストOSの環境

Apache: 2.4.6
node.js: v0.10.43
ruby: 2.2.1p85
Rails: 4.2.6
fullcalendar-rails (2.6.1.0)

開発のわだち(4):自分の開発環境を作る【3】

「自分の開発環境を作る【3】」

目標:ゲストOSのコードをgithubでバージョン管理する

目次:
1.git(ローカルリポジトリ)の環境設定
2.githubアカウントにsshキーを追加
3.githubのリモートリポジトリにプッシュ

     

1.git(ローカルリポジトリ)の環境設定

git自体はインストール済みなのでここには書きません。
(「前回の記事」の“1.rbenv/ruby-buildをインストール”参照)

まずはgitconfigの設定。自分は以下のように設定しました。(この内容は/home/vagrant/.gitconfigに反映される。)

$ git config --global user.name "自分の名前"
$ git config --global user.email "自分のメールアドレス"
$ git config --global push.default matching
# 今後のgitリリースに前方互換するためのオプション
$ git config --global alias.co checkout
# "checkout"コマンドを"co"で済ませるエイリアス
$ git config --global color.ui true
# レスポンスがカラフルになって見やすくなる



次に、アプリのディレクトリの中でリポジトリを作成しgitの監視下に置きます。

$ git init
Initialized empty Git repository in /"アプリのディレクトリ"/.git/
# リポジトリを初期化(ディレクトリ内に.gitディレクトリが作られる)
$ git add .
# ディレクトリ内の全フォルダ及びファイルをindexにステージングする
$ git commit -m "バージョンをコミットする時のコメント"
# -mはcommitと同時にコメントを付記するオプション。ローカルリポジトリにコミットする。



なお、gitの概念理解については以下を参考に勉強させて頂きました。

Pro GIt
->少なくともChapter4までは読んだ方がいい。
【CoEdo.rb】GitとGitHubはじめの一歩
->ローカルリポジトリ、リモートリポジトリの両方を含めた概念、及びハンズオン
Git初心者に捧ぐ!Gitの「これなんで?」を解説します。
->ローカルリポジトリの概念を説明
はじめてgitをつかったのでコマンドを復習します
->diff,HEADコマンドの考え方
ドットインストール git入門 (全22回)
->ここはマジで最高
よく使う git diff コマンド
->diffの話、参考リンク先にビジュアルな説明あり


2.githubアカウントにsshキーを設定

githubにアカウントを作成する流れは割愛します。
githubのリモートリポジトリにプッシュするためにはsshキーを設定します。
基本的にはオフィシャルに従うので、ここの通りにやるに尽きます。 ページトップでMacWindowsのどっちかしか選択できず、こちとらCentOSなので不安になりましたが、Macで行きました。

$ ls -al ~/.ssh
# 既存の公開鍵のチェック
$ ssh-keygen -t rsa -b 4096 -C "自分のメールアドレス"  
# 公開鍵と秘密鍵のペアを発行
Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):   
# 鍵の保存場所を指定(コロンの後には鍵の名前をつけられる。空でもOK)パスにvagrantが入っていて自分の名前がなくても不安になるな。
Enter passphrase (empty for no passphrase): 
# パスワードを設定できる。空でもOK
Enter same passphrase again: 
# パスワードの確認
Your identification has been saved in /home/vagrant/.ssh/id_rsa.
...略
$ eval "$(ssh-agent -s)"
# ssh-agentを起動して
$ ssh-add ~/.ssh/id_rsa
# 追加する
$ pbcopy < ~/.ssh/id_rsa.pub
# pbcopyコマンドが使えなければ、直接ファイルを見に行ってコピーしちゃいましょう。自分はそうしました。

コピーしたパスワードをこのページの指示通りにsshキー登録するとgithubへのキー登録は完了です。

補足
Cyberduckで.sshなどの隠しフォルダ/ファイルを表示するには、“環境設定”=>“ブラウザ”タブ=>“'.'で始まるファイルを表示”にチェックを入れて、Cyberduckを再起動すると表示されます。


3.githubのリモートリポジトリにプッシュ

githubにリモートリポジトリを作成する画面は以下の通りです。

f:id:neutligen:20160315220608p:plain
画像はrails tutorialからの抜粋です。
"Repository name(必須)"と"Description(任意)"を設定して"Public"を選択します。READMEや.gitignoreはrails newで生成しているので"Initialize this repository with a README"のあたりはそのままでOKです。
"create repository"でリモートリポジトリが作成されます。

アカウント画面に戻るとRepository nameのリモートリポジトリが作成されているので、クリックします。 以下四つの選択肢が表示されます。

1.Quick setup — if you’ve done this kind of thing before
2.…or create a new repository on the command line
3.…or push an existing repository from the command line
4.…or import code from another repository

今回はすでにローカルリポジトリがあり、リモートにプッシュしたいので3番目を選択し、そこに書いてあるコマンドを実行します。

$ git remote add origin git@github.com:"アカウント名"/"作成したリモートリポジトリ名".git
# ローカルリポジトリの直下の/.git/configの"remote origin"にリモートリポジトリのurlを設定。
$ git push -u origin master  
# ローカルリポジトリをリモートリポジトリにプッシュ

これで、git及びgithubリポジトリの管理ができます。 よっしゃー


自分はリモートリポジトリへのプッシュにだいぶ苦しみました。。 大事なのは、キーペアの発行はgithubのオフィシャルを信じることw

それとキーペア「~/.ssh/config」やローカルリポジトリのconfig「"リポジトリのディレクトリ"/.git/config」を細かく確認して誤った設定が残っていないかチェックするのも大事だと思います。

自分が成功した設定例を以下に。 ~/.ssh/config

Host github.com
 User git
 port 22
 Hostname ssh.github.com
 IdentityFile ~/.ssh/id_rsa
 TCPKeepAlive yes
 IdentitiesOnly yes

"リポジトリのディレクトリ"/.git/config

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = git@github.com:"アカウント名"/"作成したリモートリポジトリ名".git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

復習してたら~/.ssh/configは生成されなかった。。。 本当は不要なファイルなのかも。。

環境

Vagrant 1.7.4

VirtualBox 5.0.14

Apache/2.4.6

その他お世話になったサイト

GitHub 初心者による GitHub 入門(1)〜 git のインストールとセットアップ・リポジトリの作成・ clone 〜
->何度もローカルリポジトリ外でプッシュしようとしてエラーをくらいました。。 Githubにport:22 で push できなかった場合の対処法
->$ ssh -T git@github.comは認証確認に超つかえます。
やっぱりssh秘密鍵にpassphraseを設定したい時
->ssh秘密鍵のpassphraseを修正・追加(no passphraseから新たにpassphraseを設定する)。
RSAとSSH公開鍵の接続設定で困ったら
->ssh-keygenは一度間違えると色々なところが書き換わっちゃうので関連ファイルの確認が必要

開発のわだち(3):自分の開発環境を作る【2】

「自分の開発環境を作る【2】」

目標:Vagrant上のCentOs7にRailsアプリを立ち上げてブラウザからアクセス

目次:
1.rbenv/ruby-buildをインストール
2.Rubyのインストール
3.Railsのインストール
4.ブラウザからゲストOSのRailsアプリにアクセス

     

1.rbenv/ruby-buildをインストール

Rubyバージョン管理するためにrbenvとruby-buildをインストールします。 両者を適切にインストールするために必要な環境はこちらを参照。

$ sudo yum install -y gcc bzip2 openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel git make sqlite-devel net-tools

同じタイミングで以下もインストールしてます。

  • git : バージョン管理(いろんなリポジトリをクローン)

  • make:自動コンパイル用のGNUコマンド(詳しくは知りません。)

  • sqlite-devel:railsのDBとして使うsqlite3を動かすのに必要

  • net-tools:"ifconfig"とか実行するのに必要なやつ

そのあとの手順についてはこちらこちらを参考にさせて頂きました。

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv  
# githubからrbenvのリポジトリをクローン
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
# githubからruby-buildのリポジトリをクローン
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
# 「rbenvにパスを通す」というコマンドを~/.bash_profileに追記
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
# .rbenvの初期化コマンドを~/.bash_profileに追記
$ source ~/.bash_profile
# ~/.bash_profileに書いた内容を実行
$ rbenv --version
rbenv 1.0.0-19-g29b4da7
# rbenvのバージョンを確認


2.Rubyのインストール

rbenvを使ってRubyをインストールします。

$ rbenv install --list
# インストール可能なRubyのリストを表示
$ rbenv install 2.2.1
# 今回はrails tutorial 第3版のcloud9仕様に合わせました。

これが結構時間かかります。。。

rbenvはディレクトリ毎にRubyのバージョンを管理できるので全体にかかるglobalのバージョンと個々のlocalを設定できますが、今回はglobalだけ設定します。

$ rbenv global 2.2.1
$ ruby -v
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]


3.Railsのインストール

railsはgemなのでgemからインストールします。

$ gem search -r rails
# インストール可能なgemのリストを表示(-rはリモートのみを検索するオプション)
$ gem install rails 4.2.6 --no-ri --no-rdoc
# rails tutorial 第3版の4.2系に合わせてます。( --no-ri --no-rdocはドキュメント生成を省略するオプション)
$ rails -v
Rails 4.2.6


4.ブラウザから仮想マシンRailsアプリにアクセス

ホストOSの3000番ポートをゲストOSの3000番ポートにフォワーディングするために、Vagrantfileを編集します。 Vagrantfileの中程にある以下の記述を、

# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
config.vm.network "forwarded_port", guest: 3000, host: 3000

"# config.vm.netw〜"の先頭の#を外してコメント解除して、guest/host双方のポート番号を3000に変更。→参考 設定を変更したら、ゲストOSを再起動する。

$ exit
$ vagrant reload
$ vagrant ssh


firewalld(iptablesのCentOS7用)をオフにします。

$ sudo systemctl stop firewalld.service
# firewalld を無効にする
$ sudo systemctl mask firewalld.service
$ sudo systemctl list-unit-files | grep firewalld
# OS 起動時もfirewalldが起動しないようにする
firewalld.service                           masked

これを解決するのにかなりハマりました。基本的にはiptablesの停止方法しか見つからなくてCentOS7から使われているfirewalldについてはあまり参考情報がないんですね。参考にさせて頂いたのはこちらの記事です。


railsアプリを作成して起動します。rails4.2系を仮想マシンで動かす時は注意が必要なようです。

$ rails new "作りたいアプリ名"
$ cd "作りたいアプリ名"
# 作成した("作りたいアプリ名")ディレクトリに移動
$ rails server -b 0.0.0.0
# -bはbindオプション。rails4以降でゲストOSのアプリにアクセスする場合はこのオプションが必須

ここでJavascriptのランタイムが存在しないというエラーが発生した場合はnode.jsをインストールします。

エラーの例
There was an error while trying to load the gem 'uglifier'. (Bundler::GemRequireError)


自分はこちらのサイトを参考にさせて頂きました。 ちなみにtherubyracerではなくnode.jsを選んだのはherokuでデプロイを想定してるからです。(→参考

$ sudo yum install epel-release
$ sudo yum install nodejs npm
$ node -v
v0.10.42
$ rails server -b 0.0.0.0
# 改めてrailsを起動

ここまで来たらブラウザで以下にアクセス。

http://192.168.33.10:3000/

f:id:neutligen:20160314165830p:plain

やっと会えたよ このやろう 長い道のりでした。。。 ありがとう!w

環境

Vagrant 1.7.4

VirtualBox 5.0.14

Apache/2.4.6

その他お世話になったサイト

Vagrant 1.8 + CentOS 7 + VirtualBox 5 + Ruby on Rails + Mysqlで開発環境構築
Vagrant で Ruby on Rails の環境を構築するまでの手順
Ruby on Railsチュートリアルの環境構築をvagrant上でやってみたまとめ

開発のわだち(2):自分の開発環境を作る【1】

「自分の開発環境を作る【1】」

 

目標:VagrantでCentOs7を起動しファイルの編集・確認を可能にする 

目次:
1.VagrantでCentOS7を起動する
2.ホストOSのSublime TextでゲストOSの中のファイルを編集する
3.ゲストOSにWebサーバーをインストール

 

 

1.VagrantでCentOS7を起動する

まずは、ORACLEさんのVirtualBoxをインストール。

次にVagrantについてドットインストールさんで学び、Vagrant cloudからcentos/7のboxを取ってくる。

(※以降、VagrantをインストールしたMac OSをホストOS、Vagrant上で動くCentOsをゲストOSと呼びます。)

$ vagrant box add centos/7
$ cd /"ゲストOS用のディレクトリ"
# ゲストOSを立ち上げるディレクトリに移動して
$ vagrant init centos/7
# Vagrantfileがつくられる
$ vagrant up
# centos7を起動
$ vagrant ssh

ゲストOSの中身を確認していると、ゲストOSとホストOSの共有ディレクトリと言われているディレクトリ

/vagrant

 が、ない。

と言いつつも、名前から

/home/vagrant/sync
# ホストOSに作った /"ゲストOS用のディレクトリ"の中身と同じ内容が反映されるゲストOS内のディレクトリ。

 にあたりをつけてみたところ正解でした。

そんで、セキュリティ対策も兼ねて全てのパッケージをアップデートします。

$ sudo yum -y update
# VagrantのCentOSはsudo設定してあるので、root権限で実行するためにsudoを頭につけます。-yはインストール中に問われるすべての問いに自動的にYesで答えるというオプションです。

 

2.ホストOSのSublime TextでゲストOSの中のファイルを編集する

そのためにftp接続します(自分はCyberduckを使ってsftp接続。以下その方法)。

参考にさせて頂いたのは以下のサイトです。

ーーーー

今日からすぐできる!VagrantとVirtualBoxを使ってローカル開発環境を構築する方法【初心者向け】

Vagrantのネットワーク周りのあれこれ

ーーーー

ゲストOSから出ます。

$ exit

Vagrantfileの設定を変更してprivate_networkからアクセス可能にする。

$ vi Vagrantfile
#viコマンドでVagrantfileを編集。

Vagrantfileの中程に以下の記述があるので、

# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network "private_network", ip: "192.168.33.10"

"# config.vm.netw〜"の先頭の#を外してコメント解除してあげます。

設定を変更したので、ゲストOSを再起動します。

$ vagrant reload

これで"192.168.33.10"を通してホストOSからゲストOSにアクセスできるようになったのでCyberduckの新規接続を作成します。

  • 接続方式:sftp
  • サーバ:192.168.33.10
  • ポート:22
  • ユーザ名:vagrant
  • パスワード:vagrant
  • パス:/var/www/html

 (※“/var/www/html”はWebサーバーをインストールしないと見えないかもしれないです。)

ちなみに、Sublime Textで編集するにはCyberduckの“環境設定”=>“ブラウザ”タブ=>“ダブルクリックしたファイルを外部エディタで開く”にチェックを入れて、“環境設定”=>“外部エディタ”タブ=>“Sublime Text”を設定すると便利です。

 

3.ゲストOSにWebサーバーをインストール

ブラウザからアクセスできるように(httpリクエストをさばけるように)するためにゲストOSにWebサーバーをインストールします。憧れのNginXは学習コストと納期を鑑みて諦めて、伝説のApacheに決めました。コマンドも簡単。

$ vagrant ssh
$ sudo yum -y install httpd
# Apacheをインストール。
$ sudo service httpd start
# Apacheを起動
$ sudo chkconfig httpd on
# 再起動した時にWebサーバーが自動で起動するように設定。

 この状態でブラウザから"192.168.33.10"にアクセスすると

f:id:neutligen:20160313104154p:plain

Apacheの初期画面に会えました!

ホストOSのエディタを使ってこのディレクトリを編集するには/var/www/htmlのパーミッションを「755」から「757」に変更しておく必要があります。

$ sudo chmod 757 /var/www/html

そんで、ゲストOSの/var/www/htmlに適当なhtmlファイルをアップする

f:id:neutligen:20160313104458p:plain

内容が反映されます。

(※htmlファイルはwikipedeiaのhtmlの頁からコピーさせて頂きました)

 

環境

Vagrant 1.7.4

VirtualBox 5.0.14 

Apache/2.4.6

 

次回からはここで作業を進めます。

 

開発のわだち(1):素人だけどチーム開発のリーダーになる

「素人だけどチーム開発のリーダーになる」

 

初めてのチーム開発。。

自分は趣味での開発しか経験したことがなく、プロの開発現場を全く知りません、が、

あるプロジェクトのアプリ開発リーダーに任じて頂き、仕事としてやらしてもらうことになりました。

メンバーは自分(脱サラ30歳)とエンジニア志望大学生二人(開発未経験)の3名構成で、手探りの開発です。

素人の僕は全員が同じOSで、同じプログラム、同じソフト、同じライブラリを入れて完璧に同じ環境で開発環境作らなきゃだめだって思ってました。

重ねて、自分が ポータブルPCはMacBookAirしかもってなかったのもあって、「Vagrantじゃ重すぎるからDockerだ!!」と言ってDockerを検討しましたがハードルが高く断念。

途方に暮れて友人に聞くと『Rails開発ならRubyのバージョンとRailsのバージョンが合ってれば大丈夫だろ』と教えて頂き、そうすることに。

結果として、RubyRailsのバージョンを合わせて、それぞれ好きなところで開発し、cloud9でマージしてherokuでデプロイ作戦に落ち着きました。

 

納期まで1ヶ月ですが、不安しかないです。。。