いーほろよいの技術ブログ

IT系の技術ブログになります。

rbenvをインストール

先日は脱線してしまい申し訳ございません。

今回はちゃんとrbenvを設定します。

 

↓前々回に宣言していたアレです。

e-horoyoi.hatenablog.com

 

はじめに

思ったより簡単でした。

GitHubに手順が書いてあります。

github.com

 

github.com

 

 

rbenvインストールする前に

git、gccbzip2、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

フレームワークFuelPHP(1.7.2)

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の設定は以前のブログと同じです。

 

e-horoyoi.hatenablog.com

 

 

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

fuelphp.com

 

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のインストー

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-mecabMecabの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のセットアップになります。 

sshの設定で楽々接続

今回はssh設定まわりを書いていこうと思います。

ここに関してはMacLinuxの各ディストリビューションをお使いの方が対象になります。

もし、Windowsをご利用の方でしたら、PuttyやRLogin、Tera Termといったフリーのターミナルソフトを利用して作成する事ができます。

この記事では割愛させていただきます。(気が向いたら書きます。)

 

前回のリポジトリの追加が気になる方はこちらからどうぞ。

e-horoyoi.hatenablog.com

 

はじめに

まず、sshですが主流はssh2だと認識しております。(間違っていたらごめんなさい)

細かい説明を書き出すと面倒なのでググってください。

とりあえず、ssh2で話は進めます。

こちらにOpenSSHのサイトがあるので確認できます。(英語)

www.openssh.com

 

そもそもSSH接続って?

簡単に説明するとマシン同士を鍵を使用して安全(認証して)に接続する仕組みです。

鍵は秘密鍵(接続元)公開鍵(接続先)が存在し接続元と接続先に設置します。

この秘密鍵と公開鍵がペアになっているので、鍵が一致しないと接続できないため公開鍵だけ盗まれても秘密鍵がなければ接続できません。

逆に秘密鍵を紛失すると入れなくなります。

 

鍵の種類

ざっくりですが、鍵の種類は下記がございます。

暗号化の仕組みとか堅牢性が変わってくるので興味のある方は調べてみてください。

dsa / ecdsa / ed25519 / rsa  / rsa1

※rsa1以外はssh2対応だったはず。(記憶が曖昧で申し訳ない)

 

鍵を作成する上で注意点

オプション'b'でビット数を指定できます。値が大きいほど堅牢性が高まります。

rsaならデフォルトは2048ビット、最小で1024です。

 

事前準備

鍵を作成する前に鍵の保存場所を作成しておきます。

作成するディレクト

ホームディレクトリ以下に.sshという隠しディレクトリを作成します。

先ずはディレクトリが既に存在するか確認します。

もし、ディレクトリが存在する場合は既に鍵があるので上書きされないように退避しておくなど対応が必要です。

ls -la ~

 保存先のディレクリ作成

パーミッションも指定して作成します。

>mkdir -m 0700 ~/.ssh

 

作ってみる

冒頭の説明にもありましたが、私の環境がMacなのでターミナルを立ち上げてコマンドを打てば鍵を作成できる状態です。

今回は下記の条件で鍵を作成します。

  1. パスフレーズなし
  2. 鍵のタイプはrsa
  3. ビット数は4096 

 

秘密鍵・公開鍵作成

>ssh-keygen -b 4096 -N "" -t rsa -C "コメント" -f {鍵のファイル名}

例)ssh-keygen -b 4096 -N "" -t rsa -C "開発環境用" -f ~/.ssh/id_rsa_centos7_master_20170623

-Cは何のために作成した鍵か書いておくと管理し易いです。

-fは上書き防止のためファイル名を指定した方が無難です。※

※~/ssh_keygen/rsa_20xxmmddのようにディレクトリパス込みで指定できます。

 

下記のファイルが生成されます。

秘密鍵: .ssh/id_rsa_centos7_master_20170623

公開鍵: .ssh/id_rsa_centos7_master_20170623.pub

 

公開鍵を接続先へコピー

Linuxをご利用の方なら既にssh-copy-idコマンドがインストール済みかも知れませんがMacには無いのでインストールが必要です。

また、ssh-copy-idをインストールするのにbrewがインストールされていないとインストールできません。

 

 brewのインストー

>ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 

ssh-copy-idのインストー

>brew install ssh-copy-id 

 

公開鍵を接続先へコピー

ssh-copy-idを使用します。

オプション-iを指定してコピーすると自動的に追記してくれます。

>ssh-copy-id -i .ssh/{渡したい公開鍵.pub} {UserName}@xxx.xxx.xxx.xxx

接続先に下記のようなファイルが作成されます。

.ssh/authorized_keys

 

パスフレーズ接続からssh接続へ

漸く本題のssh接続に入ります。

ざっくり流れだけ先に説明します。

  1. リモート先にパスフレーズで接続
  2. sshの設定ファイルを書き換えて
  3. sshを再起動
  4. 一旦リモートから抜けてssh接続できるか確認 

 

設定ファイルの書き換え

下記がsshの設定ファイルになっております。

/etc/ssh/sshd_config

 

設定ファイルを編集

作業にはroot権限が必要です。

>vi /etc/ssh/sshd_config

 

rootでのログインを禁止

PermitRootLogin no

 

パスワードによる認証を禁止

PasswordAuthentication no

 

パスワード無し(空パスワード)を許可※

※プライベートな開発環境なので許可しています。

PermitEmptyPasswords yes

 

その他

ssh接続に時間が掛かる場合、DNSとかが怪しいです。

プライベートな開発環境なので切ってしまいます。

GSSAPIAuthentication no

UseDNS no

  

再起動

>systemctl restart sshd

 

再接続

リモートからログアウトして再びssh接続する。

その際にパスワードを聞かれず接続できれば設定完了です。

 

ここまでの設定で仮想マシンのマスタを完成とします。

あとは、用途に合わせて仮想マシンのクローンを作成して作業していきます。

 

次回予告

Rubyの複数バージョンを切り替えて使用するrbenvの環境構築を取り上げたいと思います。

 

最後までお読みいただきありがとうございます。

 

以上、ssh接続の設定でした。

 

 

リポジトリの追加

今回はリポジトリ(パッケージの取得先)を追加してみます。

 

yumコマンドによるCentOS7のアップデートはこち

 

e-horoyoi.hatenablog.com

 

はじめに

追加するリポジトリは下記の通りです。

EPEL / IUS / nginx

 

EPEL

FedoraのパッケージをRed Hat Enterprise Linuxやその互換ディストリビューションに使用するため有志の方が用意してくださっているリポジトリです。(感謝です)

詳しくはEPEL/ja - FedoraProjectよりご確認ください。

 

IUS 

Red Hat Enterprise Linuxやその互換ディストリビューション用の新しいRPMパッケージを提供するコミュニティです。(こちらも感謝です)

詳しくはIUS(英語)よりご確認ください。

 

nginx

WEBサーバーであるnginxがEPEL、IUSに含まれていないので、個別にリポジトリを追加します。

 

予め知っておく事

リポジトリ追加後に"/etc/yum.repos.d"以下に各リポジトリの設定ファイルが生成されてリポジトリが有効な状態になっているので無効(enable=0)にします。

※意図しないパッケージのインストールを防ぐためです。

 

対象ファイル

epel.repo

ius.repo

nginx.repo

 

リポジトリのインストー

EPEL

>yum install epel-release -y

 

IUS

>rpm -ivh https://centos7.iuscommunity.org/ius-release.rpm

 

nginx

>rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

 

インストールしたリポジトリのパッケージを使用

>yum install -enablerepo={リポジトリ名} {インストールするパッケージ}

 

次回予告

公開鍵認証によるssh接続について

 

以上、リポジトリの追加でした。

CentOS7のアップデート

これまでの作業で仮想マシンの構築とCentOS7のインストールが完了しました。

次にやる事はCentOS7のアップデートです。

 

 IPアドレスの設定はこちらになります。

e-horoyoi.hatenablog.com

 

手順1. アップデートの前にやる事

今までの手順では外部に接続できません。

下記の設定ファイルを編集して外部接続できるようにしましょう。

/etc/sysconfig/network-scripts/ifcfg-enp0s3

※NATの設定ファイル

 変更前:ONBOOT=no

変更後:ONBOOT=yes

 

ネットワークの再起動です。

>systemctl restart network

 

これをやらないとこうなります。

f:id:e-horoyoi:20170621142917p:plain

 

手順2. CentOS7のアップデート

アップデート前にアップデートがある事を確認します。

>yum check-update

f:id:e-horoyoi:20170621143235p:plain

 

アップデートします。(暫く時間が掛かります。)

※毎回アップデートが必要か聞かれるのが面倒なので"-y"オプションを付加します。

>yum update -y

 

↓こんな感じでアップデートが進行します。

f:id:e-horoyoi:20170621143625p:plain

 

次回予告

yumでインストールするrpmパッケージの取得先を追加する。

 

以上、CentOS7のアップデートでした。

 

デバイスとIPアドレスの紐付け

NAT、ホストオンリーアダプターの設定後にCentOS7をインストールしたらIPアドレスの設定をします。

 

 NAT、ホストオンリーアダプターの設定はこちらを参照ください。

e-horoyoi.hatenablog.com

 

 

手順1. デバイスの確認をする

下線のMACアドレスでホストオンリーアダプターであるか確認する。

>ip a

f:id:e-horoyoi:20170621003102p:plain

 

手順2. IPアドレスの編集画面を開く

"NetworkManager TUI"を開き編集していきます。

>nmtui

f:id:e-horoyoi:20170621080352p:plain

 

手順3. Ethernetの選択

"ip a"で確認したMACアドレスから編集するEthernetを選択する。

f:id:e-horoyoi:20170621081513p:plain

 

手順4. IPアドレスを指定

Addressesに使用したいIPアドレスを指定する。

例)192.168.51.101/24

 

下記の項目にチェックを付ける。

[X] Never use this network for default route

[X] Require IPv4 addressing for this connection

 

IPv6 CONFIGURATION <Automatic>

[X] Automatically connect

[X] Available to all users

 

"OK"を選択して設定する。

f:id:e-horoyoi:20170621081002p:plain

f:id:e-horoyoi:20170621082300p:plain

 

手順5. 設定確認

ネットワークの再起動を行います。

>systemctl restart network

 

設定されたか確認します。

※青色帯の箇所に設定したIPアドレスが表示されれば設定されております。

 >ip a

 

f:id:e-horoyoi:20170621082834p:plain

 

手順6. 接続確認

ターミナルからsshコマンドで接続できるか確認します。

>ssh {user name}@xxx.xxx.xxx.xxx

 

これで接続できれは設定完了です。

 

次回予告

外部接続してyumコマンドで色々更新してみたいと思います。

 

以上、IPアドレスの設定になります。

 

CentOS7をインストール

VirtualBoxで箱を作成したので、CentOS7をインストールしたいと思います。

↓に手順あります。

e-horoyoi.hatenablog.com

 

手順1. 作成したCentOS7_Masterを起動

初回起動時にイメージ選択します。

先ほどミラーサイトでDLしたCentOS-7-x86_64-DVD-1611.isoを選択します。

f:id:e-horoyoi:20170619092932p:plain

 

手順2. インストールメニューの選択

インストールまたはメディアのテスト&インストールといった選択肢があります。

テストが面倒なので、そのままインストールします。

f:id:e-horoyoi:20170619093210p:plain

 

手順3. 言語の選択

日本語を選択します。

f:id:e-horoyoi:20170619093535p:plain

 

手順4. インストールの概要について

下記のイメージにはありませんが、最初にインストールソースとインストール先がオレンジ色で警告のようなものが出ることがあります。(その時は対象を探しているようです。)

インストールソースは放置していても勝手に見つけてくれましたが、インストール先は一度選択してディスクにチェックが入っている事を確認してから"完了"を押下後、この画面に戻ると直ります。

これらが解決するとインストールの開始が押下できるようになります。

f:id:e-horoyoi:20170619093629p:plain

 

手順5. rootパスワードとユーザー作成

インストールが始まるとrootのパスワードとユーザーの作成が同時進行で出来ます。(便利になってる...)

f:id:e-horoyoi:20170619094200p:plain

 

手順6. rootパスワードを入力

推測され難いパスワードを設定します。(入力時に強度が表示される)

私は外部に公開しないので特に注意しません。

その場合、確認の為に完了を2回押下するように要求されます。

f:id:e-horoyoi:20170619094527p:plain

 

手順7. ユーザーの作成

root以外のユーザーを作成できます。
フルネーム入力時にユーザー名も自動入力されますが、ユーザー名は別名に編集する事も可能です。
こちらもパスワードが貧弱だと完了を2回要求されます。

f:id:e-horoyoi:20170619094839p:plain

 

手順8. インストール中

私のマシンはスペック高めなので数分で終わります。

スペックによって多少時間が変わるかと思います。

f:id:e-horoyoi:20170619095025p:plain

 

手順9. インストール完了

これでCentOS7がインストール完了です。

再起動を押下すると起動後にログイン画面になります。

f:id:e-horoyoi:20170619095210p:plain

 

手順10. ログイン画面

再起動後、下記の画面になったら作成したユーザー名とパスワードでログインできる事を確認します。

f:id:e-horoyoi:20170619095516p:plain

 

まとめ

これでCentOS7のインストールは終了です。

特質して難しい事はなかったと思います。

 

次回予告

VirtualBoxの設定に戻ってネットワーク周り(NAT/ホストオンリーアダプター)を編集したいと思います。

 

以上、CentOS7のインストールでした。