Ruby on Railsのお勉強 〜おさらい〜
Railsをやろうと思った経緯
ここ数年でRailsの要望が今まで以上に、すごいスピードで上がってきている事を実感したので、使えるようになろうかと重い腰をあげました。
正直、バックエンドのFWはパフォーマンスと運用コストが見合っていれば『なんでもいいじゃない?』っていうのが私の意見なのですが...
環境構築のおさらい
以前、環境構築でrbenvとbundlerのインストールの記事を書いております。
今回は用語と工程のおさらいに止めます。
環境構築を確認されたい方は↓の記事を確認お願いします。
用語
先ずは各用語について、おさらいです。(簡単な説明のみ)
rbenv
複数のRubyバージョンを管理する。
gem
rubyのパッケージを管理する。
bundler
gemの一部でパッケージを一括管理できる。
Ruby on Rails開発環境を作るまでの工程
- rbenvのインストール(この時点で同時にgemはインストールされる)
- 使用するrubyのバージョンを指定してインストール
- bundlerのインストール
- 開発するための場所(ディレクトリ)を作成して移動
- 移動先のディレクトリ内でbundlerの初期化(Gemfile作成)を行う
- 作成されたGemfileに使用するrailsのバージョンを記述してrailsをインストール
- railsコマンドでプロジェクトを作成(ここでほぼ環境構築おわり)
実際の組み込み作業
構成
プロジェクト : rbhoge
手順
>mkdir rbhoge
>cd rbhoge
>rbenv local 2.4.1
>bundler init
>vi Gemfile
gem "rails", "{version}" を追記
>bundler install --path vendor/bundler
>bundler exec rails new .
>vi Gemfile
"therubyracer"のコメントアウトを外す
>bundler install --path vendor/bundler
とりあえず、ここまで
次回からは簡単なお問い合わせフォームを作ってみたいと思います。
virtualenvをインストールしようと思ったらpyenv-virtualenvになった
間が空いてしました。
色々と忙しくて...(言い訳です。)
↓前回、pyenvをインストールした話の続きです。
virtualenvをインストールしようと思ったらpyenv-virtualenvというプラグインがあるようなので、大人しくそれをインストールします。(正直、違いがよくわかっていません。)
分かっている事はpyenv-virtualenvを使用する事でpyenvでインストールした各バージョンのプラグインを分けて使用できるようになるようです。
例えば、バージョン3.6.1にパッケージのipythonが入っている仮想環境、入っていない仮想環境という具合に別々の環境が作れる。
インストールはGitHubに公開されているpyenv-virtualenvにあるreadmeの手順に沿って行うだけです。
手順
pyenv-virtualenvの準備
>git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
cloneできたか確認する。(pyenv-virtualenvがあればOK)
>ls -l ~.pyenv/plugins/
ログイン時にvirtualenvが有効になるように設定ファイルに追記
>echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
設定ファイルの読み直し
※個人的には"souce ~/.bash_profile"をオススメします。(何故かpyenv shellが認識されなかったので)
>exec "$SHELL"
作成する仮想環境に必要なpythonのバージョンをインストール
今回は2.7系を予めインストールしておく(3系でも手順は同じです)
>pyenv install 2.7.13
↓警告が出るけどインストールできた。
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
仮想環境の作成
バージョンが2.7.13のmy-virtual-env-2.7.13という仮想環境を作成する。
コマンド実行後に"ls -l ~/.pyenv/versions/"を実行すると分かり易いです。
インストール済みの各バージョン以下のenvsディクトリ以下に作成されます。
それを各バージョンと同じ階層にシンボリックリンクを貼ってます。
>pyenv virtualenv 2.7.13 my-virtual-env-2.7.13
検証用にenv2.7.13という仮想環境も作成する。
>pyenv virtualenv 2.7.13 env2.7.13
仮想環境の構築 (その1)
作成された仮想環境(my-virtual-env-2.7.13)を構築するためアクティブ状態にします。
※これを実行するとbashプロンプトにアクティブ状態の仮想環境名が表示されます。
>pyenv activate my-virtual-env-2.7.13
試しに作成した仮想環境(my-virual-env-2.7.13)にipythonをインストール
>pip install ipython
インストールされた事を確認
>pip show ipython
仮想環境の構築 (その2)
このままenv-2.7.13に切り替えてipythonがインストールされているか確認してみます。
>pyenv activate env2.7.13
ipythonがインストールされているか確認
>pip show ipython
※表示されないはず
まとめ
流れとやる事を下記にまとめます。
予め作成する仮想環境に対応したpythonのバージョンをインストール
>pyenv install {バージョン}
仮想環境の作成(必要な分)
>pyenv virtualenv {pythonのバーション} {仮想環境名}
作業ディレクトリを作成
>mkdir ~/{作業ディレクトリ名}
作業ディレクトリに移動して仮想環境を指定
>cd ~/{作業ディレクトリ名}
>pyenv activate {仮想環境名}
仮想環境に合わせてプラグインをインストール
作成した仮想環境ごとに使用するプラグインをインストールする。
※心配なら仮想環境以下を覗いて確認
python2系
>pip install {パッケージ名}
python3系
>pip3 install {パッケージ名}
仮想環境別のパッケージインストールの確認する場所
~/.pyenv/versions/{仮想環境名}/lib/{pythonバージョン}/site-packages/
仮想環境から抜ける
作業が終り仮想環境から抜けたいとき
>pyenv deactivate
以上、virtualenvあらためpyenv-virtualenvでした!
次回予告
php-envをやろうかと思ったのですが、Ruby on Railsを掘り下げてみたいと思います。
最後まで読んでいただきありがとうございます!
pyenvをインストールしてみた
前々回?にrbenvをインストールしたと思います。
今回はpyenvをインストールしてみます。
はじめに
今回は事前インストールするものはありませんでした。
強いていうなら、pyenvを提供してくださっているGitHubのドキュメント(readme)を読むくらいかと思います。
pyenvのインストール
手元にpyenvのcloneを作成
>git clone https://github.com/pyenv/pyenv.git ~/.pyenv
GitHubにある手順通りに.bash_profileに環境変数を追記
>echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
>echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
>echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
>exec $SHELL
pythonのインストール
先ずはリリースされているバージョンの確認
pyenv install --list
3.6.1をインストール
pyenv install 3.6.1
インストール出来ているか確認
pyenv versinos
以上、pyenvのインストールです。
pyenvだけでも便利なのですが、virtualenvを入れるともっと便利になるようです。
次回予告
virtualenvのインストールと使い方
CentOS7でFirewallの設定を無効にする!
はじめに
Ruby on Railsの環境構築時にRailsサーバーを立ち上げたのに接続できない問題でFirewallが邪魔していたので停止&無効にした話です。
本来、セキュリティ上は必須なのですが、閉ざされた開発環境でのみ使用するという条件下のため停止&無効にするという話です。
闇雲に停止&無効にはしないでください。
作業コマンド
作業はroot権限を持っていないとできません。
確認
今まで停止or無効にした記憶がなければ、下記のコマンドを打つとactiveと表示されるはずです。
>systemctl status firewalld.service
停止
>systemctl stop firewalld.service
無効
>systemctl disable firewalld.service
無効の確認
>systemctl is-enabled firewalld
Ruby on Railsの環境構築やってみる
だいぶ日が空いてしまいました。
申し訳ございません。
言い訳は手元のMacの調子が悪くレンボーカーソルが頻発して固まるといった症状が続いております....
↓前回の作業でrbenvをインストールできたので
調子にのってRailsの環境構築をやろうと思ったのですが、やり方が沢山あってお腹いっぱいになります。
はじめに
rbenvの環境が整っている事が前提で進めます。
また、今回やりたい事はbundlerを使用してRailsをインストールする。
どうやらgemでインストールするよりbundlerを使用する方が主流になりつつあるそうです。
bundlerについて
複数のパッケージをgemでインストールする事になると思います。
しかし、一つずつgemでインストールしていると面倒...。
また、『相性の合ったパッケージをまとめて管理したい。』ともなるでしょう。
そんな時にbundlerを使用するとGemfileで一括管理できます。
準備
予め済ませておく事
後半のRailsのプロジェクト作成時にsqlite3関連でエラーになるので予めインストールします。
※root権限での作業になります。
Railsサーバー立ち上げ時にgemパッケージの"therubyracer"がインストールされている必要があり、このパッケージをインストールするのにg++が必要になるので予めインストールしておく。
※root権限での作業になります。
以前、四苦八苦しながらインストールした時は管理者権限を要求された記憶が薄っすらあるので、自分のアカウントでsudoコマンドが実行できるようにwheelグループに参加します。(もしかしたらローカル環境ならいら無いかも)
>usermod -aG wheel {追加したいユーザーアカウント}
※root権限での作業になります。
rbenvをインストールするとgemが既にインストールされております。
bundlerのインストール
>rbenv exec gem install bundler
bundlerのインストール確認
>gem list | grep 'bundler'
作業ディレクトリ(プロジェクト)を作成して移動
>mkdir ~/hoge
>cd ~/hoge
Ruby on Railsインストール
確認作業
リリースされているRailsのバージョンを確認します。
たくさん出ます。
そしてstableかは下記のコマンドではわかりません。
今回は最新の4系をインストールしてみたいと思います。
>gem search ^rails$ -a
bundlerの初期設定
ここで気を付ける事は"rbenv exec"で実行する事です。
bundlerだけでもいいのですが、local環境に作りたい場合、その環境に移動してrbenvで指定したrubyのバージョン以下で作業しないとglobalの環境に構築する事になってしまうので注意が必要です。
>rbenv exec bundler init
実行すると"Gemfile"というファイルができます。
このファイルの中にインストールしたいgemパッケージを羅列してインストールする。
>vi Gemfile
今回は下記を追記する。(バージョンを指定しないと最新が入る)
gem "rails", "4.2.9"
railsインストール
>rbenv exec bundler install --path vendor/bundler
補足:gitで管理する場合"/vendor/bundler" を管理対象外にする必要あり
>echo '/vendor/bundle' >> .gitignoree
インストール後にプロジェクト作成
Gemfileの上書き確認がありますが上書きで構いません。
>rbenv exec bundler exec rails new .
Railsサーバー起動
CentOS7のfilewallを停止しておいてください。
>rbenv exec bundler exec rails s -b 0.0.0.0
※お約束エラー"uglifier"が出ると思います。分かり難いのですがGemfileの"therubyracer"がコメントアウトされているので、このコメントアウトを外しbundlerを利用してGemfileの再インストールをすると解消されるはず。
ホストのブラウザから確認
下記のように3000番ポートを指定してアクセスしてWelcomeが表示されればOKです。
http://{ご自身の環境に合わせて}:3000/
以上、Ruby on Railsをインストールしてみるでした。
次回予告
とりあえず、環境構築あたりをやろうと思うので次回はpyenvの環境構築をやってみようと思います。
以上、最後までお読みいただきありがとうございます。
rbenvをインストール
先日は脱線してしまい申し訳ございません。
今回はちゃんとrbenvをインストールします。
↓前々回に宣言していたアレです。
はじめに
思ったより簡単でした。
GitHubに手順が書いてあります。
rbenvって何?
Rubyは更新頻度の高い言語なので、いくつものバージョンを開発環境に準備したいという要望を叶えてくれるものです。(ありがたい)
rbenvインストールする前に
git、gcc、bzip2、openssl-devel、readline-devel、zlib-develが必要になるので予めインストールしておきましょう。
>yum install git gcc bzip2 openssl-devel readline-devel zlib-devel -y
rbenvのインストール
1. gitからclone
>git clone https://github.com/rbenv/rbenv.git ~/.rbenv
2. インストール
>cd ~/.rbenv && src/configure && make -C src
3. ".bash_profile"に登録
>echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
>echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
>souce ~/.bash_profile
4. バージョン確認
バージョン確認と共にインストールと設定ができている事を確認する。
>rbenv --version
5. ruby-buildをclone
早速、rubyをインストールしたいのですが、rbenvをインストールしただけではinstallできません。
ruby-buildをcloneするとinstallオプションが使えるようになります。
>git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
6. バージョンの確認
>rbenv install --list
7. rubyのインストール その1
ruby2.3を入れてみる。
>rbenv install -v 2.3.4
8. rubyのインストール その2
ruby2.4を入れてみる。
>rbenv install -v 2.4.1
9. インストール済みの一覧を表示
>rbenv versions
10. 全体で使用するバージョンを選択
>rbenv global 2.3.4
* 2.3.4 (set by /home/kazuo/.rbenv/version)
2.4.1
こんな感じで選択される。
11. ディレクトリ別にバージョンを指定
>mkdir ~/ruby241
>cd ~/ruby241
>rbenv local 2.4.1
>ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
>cd ~/
>ruby -v
ruby 2.3.4p301 (2017-03-30 revision 58214) [x86_64-linux]
ディレクトリ別にも使用できるし便利ですね。
今回ご紹介したrbenvのオプションは他にもあるので確認してみてください。
次回予告
Ruby on Railsをインストールしてみる。
以上、rbenvをインストールするでした。
最後までお読みいただきありがとうございます。
FuelPHPの環境インストール
Rubyをやるとか言ってましたが、以前にFuelPHPのセットアップした時の手順書が出てきたので忘れ無いうちに転記したいと思います。
若干古いですがCentOS6の環境をお使いならまだ行けるかと思います。
はじめに
ここで達成できる目標は下記の通りです。
- IUSリポジトリを使用したrpmパッケージインストールの手順書になります
- "yum update"が済んでいる事を環境を前提の手順になっております
- FuelPHPが使用できる環境構築の話でそれ以降の手順はございません
- 開発者の想定はサーバーサイドにてCUIで作業する事を想定しております
環境について
構成
OS:CentOS6系
WEBサーバー:niginx
言語:PHP5.6
DB:MySQL5.6
その他:Mecab
yumリポジトリ参照先
http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/
http://nginx.org/packages/centos/6/noarch/RPMS/
インストールする
nginx、phpおよびphp関連パッケージ、mysql-client
1. "/etc/yum.repos.d/"以下にepel、ius、nginxを追加する
>rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/epel-release-6-5.noarch.rpm
>rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-13.ius.centos6.noarch.rpm
>rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
※インストール後のyum.repos.dの設定は以前のブログと同じです。
2. 追加後にクリアして参照されるよにしておく
>yum clean all
3. MySQL関連のパッケージをインストールする場合は"mysql-libs"を削除する
"mysql-libs"を予め削除しないとインストールするタイミングで競合が発生する事があります。
※因みに、mysql-libsはpostfixと依存関係があるので依存関係を無視して削除する。
>rpm -e --nodeps mysql-libs
4. PHPインストール
>yum install -y php56u-cli php56u-common php56u-devel php56u-embedded php56u-fpm php56u-gd php56u-mbstring php56u-mcrypt php56u-mysqlnd php56u-pdo php56u-soap php56u-pear php56u-pecl-jsonc php56u-pecl-jsonc-devel php56u-pecl-memcache php56u-pecl-memcached php56u-pecl-xdebug php56u-xml php56u-xmlrpc mysqlclient16 mysqlclient16-devel mysql56u git2u
インストールするパッケージ一覧
php56u-cli-5.6.7-1.ius.centos6.x86_64.rpm
php56u-common-5.6.7-1.ius.centos6.x86_64.rpm
php56u-devel-5.6.7-1.ius.centos6.x86_64.rpm
php56u-embedded-5.6.7-1.ius.centos6.x86_64.rpm
php56u-fpm-5.6.7-1.ius.centos6.x86_64.rpm
php56u-gd-5.6.7-1.ius.centos6.x86_64.rpm
php56u-mbstring-5.6.7-1.ius.centos6.x86_64.rpm
php56u-mcrypt-5.6.7-1.ius.centos6.x86_64.rpm
php56u-mysqlnd-5.6.7-1.ius.centos6.x86_64.rpm
php56u-pdo-5.6.7-1.ius.centos6.x86_64.rpm
php56u-soap-5.6.7-1.ius.centos6.x86_64.rpm
php56u-pear-1.9.5-1.ius.centos6.noarch.rpm
php56u-pecl-jsonc-1.3.7-1.ius.centos6.x86_64.rpm
php56u-pecl-jsonc-devel-1.3.7-1.ius.centos6.x86_64.rpm
php56u-pecl-memcache-3.0.8-4.ius.centos6.x86_64.rpm
php56u-pecl-memcached-2.2.0-4.ius.centos6.x86_64.rpm
php56u-pecl-xdebug-2.3.0-2.ius.centos6.x86_64.rpm
php56u-xml-5.6.7-1.ius.centos6.x86_64.rpm
php56u-xmlrpc-5.6.7-1.ius.centos6.x86_64.rpm
mysqlclient16-5.1.61-4.ius.centos6.x86_64.rpm
mysqlclient16-devel-5.1.61-4.ius.centos6.x86_64.rpm
git2u-2.3.3-1.ius.centos6.x86_64.rpm
開発環境(個人環境)に必要であればインストール
>yum install -y mysql56u mysql56u-common mysql56u-devel mysql56u-embedded mysql56u-embedded-devel mysql56u-libs mysql56u-server
mysql56u-5.6.23-2.ius.centos6.x86_64.rpm
mysql56u-common-5.6.23-2.ius.centos6.x86_64.rpm
mysql56u-devel-5.6.23-2.ius.centos6.x86_64.rpm
mysql56u-embedded-5.6.23-2.ius.centos6.x86_64.rpm
mysql56u-embedded-devel-5.6.23-2.ius.centos6.x86_64.rpm
mysql56u-libs-5.6.23-2.ius.centos6.x86_64.rpm
mysql56u-server-5.6.23-2.ius.centos6.x86_64.rpm
nginxインストール
>yum -y install nginx
FuelPHPのApp以下をセットアップ
1. FuelPHPのDL
下記からDLして展開します。
>unzip fuelphp-1.7.2.zip
2. composerの実行
展開したファイル直下にcomposer.pharというファイルがあるので更新コマンドを実行する
>php composer.phar update
3. デフォルトのフォルダを書き込み可能にする
注:実行するときは下記の環境変数が登録されている事を確認する。(これが設定されて無い"Configクラスを見つけられない"とエラーになる)
export FUEL_ENV=development
export SERVICE_NAME_ENV={サービス名}
注:エラー時に手動で作成する
mkdir /{任意のパス}/fuel/app/cache /{任意のパス}/fuel/app/logs /{任意のパス}/fuel/app/tmp
>php oil refine install
下記、実行結果の例
Made writable: /{任意のパス}/fuel/app/cache
Made writable: /{任意のパス}/fuel/app/logs
Made writable: /{任意のパス}/fuel/app/tmp
Made writable: /{任意のパス}/fuel/app/config
Mecabのインストール
FuelPHPのセットアップには関係無いのですが、手順書に含まれていたので書いておきます。
Mecab(本体)のインストール
>yum install -y gcc-c++
>cd /tmp
>wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz
>tar zxfv mecab-0.996.tar.gz
>cd mecab-0.996
>./configure --enable-utf8-only
>make
>make install
Mecab IPAdic(辞書インストール)
>wget https://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
>tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
>cd mecab-ipadic-2.7.0-20070801
>./configure --with-mecab-config=../mecab-config --with-charset=utf8
>make
>make install
php-mecab(MecabのExtensionをインストール)
>cd /tmp
>wget https://github.com/rsky/php-mecab/archive/master.zip
>unzip master.zip
>cd php-mecab-master/mecab
>phpize
>./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/local/bin/mecab-config
>make
>make install
>sed -i -e 's|; default extension directory¥.|; default extension directory.¥nextension=mecab.so|' /etc/php.ini
以上、FuelPHPのセットアップになります。
最後までお読みいただきありがとうございます。