読者です 読者をやめる 読者になる 読者になる

kopug memo

名古屋で働くとあるWebエンジニアの覚書。

IDCFクラウドでCentOS7を使ってみる

CentOS7.x

f:id:kopug:20170110190710p:plain

はじめに

  • 今までぬるりと避けてきたCentoOS7を触ってみる
  • IDCFクラウドを今回利用しております www.idcf.jp
  • IDCFクラウド特有の話しはここでは扱いません
    • Webベースのコンパネも非常に分かりやすいので、見れば感覚的に使えます

主にやること

  • anyenvを使って PHP/Rubyのバージョンを切り替えれるようにする
  • Webサーバはnginxを利用
  • FWはIDCFクラウド側で用意されているものを利用する

基本設定

etckeeperのインストール

# yum -y install epel-release
# yum -y install etckeeper

# etckeeper init
# etckeeper commit -m 'first commit'

作業用アカウントの作成

# adduser kopug
# passwd kopug
# usermod -G wheel kopug

# visudo -f /etc/sudoers.d/wheel
%wheel ALL=(ALL) NOPASSWD: ALL
Defaults:%wheel !requiretty
Defaults:%wheel env_keep += SSH_AUTH_SOCK

sshdの設定変更

ここからは 作業用ユーザで実施

rootでのログインを禁止

$ sudo sh -c 'echo "PermitRootLogin no" >> /etc/ssh/sshd_config'

空のパスワードでのログイン禁止

$ sudo sh -c 'echo "PermitEmptyPasswords no" >> /etc/ssh/sshd_config'

鍵認証必須

$ sudo sed -i 's/^PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config

設定反映

$ sudo systemctl reload sshd.service

root宛のメールを受け取れるようにする

$ sudo sudo sed -i '/^root:/d' /etc/aliases
$ sudo sh -c "echo 'root: user@example.com' >> /etc/aliases"
$ sudo newaliases

設定内容をコミット

$ sudo etckeeper commit

anyenv のインストール

$ git clone https://github.com/riywo/anyenv ~/.anyenv
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.your_profile
$ echo 'eval "$(anyenv init -)"' >> ~/.your_profile
$ exec $SHELL -l
$ anyenv install rbenv
# anyenv install phpenv

各種pluginのインストール

$ mkdir -p $(anyenv root)/plugins
$ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update
$ anyenv update
$ mkdir -p $(anyenv root)/plugins
$ git clone git://github.com/aereal/anyenv-exec.git $(anyenv root)/plugins/anyenv-exe
$ anyenv exec --version
$ mkdir -p $(anyenv root)/plugins
$ git clone https://github.com/znz/anyenv-git.git $(anyenv root)/plugins/anyenv-git
$ anyenv git gc

phpのインストール

buildするのに必要なパッケージをインストール

$ sudo yum install -y --enablerepo=epel \
bzip2 gcc mariadb-devel libxml2-devel \
re2c libcurl-devel libjpeg-devel libpng-devel \
readline-devel libtidy-devel libxslt-devel bison-devel \
autoconf automake

インストール可能なバージョン

$ phpenv install -l

Available versions:
  5.2.17
  5.3.2
  5.3.3
  5.3.6
  5.3.8
  5.3.9
  :   :   :
  7.0.12
  7.0.13
  7.0.14
  7.0snapshot
  7.1.0
  7.1snapshot
  master

ここでは 最新の7.1.0 をインストールする

$ phpenv install 7.1.0

ruby のインストール

$ rbenv install -l

Available versions:
  1.8.5-p113
  1.8.5-p114
  1.8.5-p115
  : : :
  2.4.0-preview3
  2.4.0-rc1
  2.4.0
  2.5.0-dev
  : : :
$ rbenv install 2.4.0

$ rbenv global 2.4.0

$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]