LoginSignup
2
5

More than 5 years have passed since last update.

EC2 にいろいろ環境構築したメモ

Posted at

久しぶりにプロトタイプ用にサーバーの環境設定をして、2年くらい前に作ったときと色々状況変わってたので、メモりました。ゆとりサーバー設定なので、あんまりちゃんとしたものではないです。

この記事で設定した環境

  • amazon linux
  • vim
  • zsh
  • php
  • mysql
  • phpmyadmin
  • node.js
  • nginx

Amazon マシンイメージ

  • イメージは、amazon linux を使用
  • インスタンスタイプは t2.micro(無料利用枠)
  • その他は特に設定せず、デフォルトのまま

最初の設定

vim、wget、zsh をインストールして設定する

$ sudo yum update
$ sudo yum install vim-enhanced wget zsh

vim の設定

$ sudo vim ~/.vimrc

if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set fileencodings=ucs-bom,utf-8,latin1
endif

set nocompatible    " Use Vim defaults (much better!)
set bs=indent,eol,start     " allow backspacing over everything in insert mode
" set ai         " always set autoindenting on
" set backup     " keep a backup file
set viminfo='20,\"50    " read/write a .viminfo file, don't store more
" than 50 lines of registers
set history=50      " keep 50 lines of command line history
set ruler       " show the cursor position all the time

set number
set autoindent

set showmatch
set shiftwidth=4
set tabstop=4
set smartindent
imap ^[OA <Up>
imap ^[OB <Down>
imap ^[OC <Right>
imap ^[OD <Left>
colorscheme molokai
syntax on


$ mkdir -p ~/.vim/colors
$ cd ~/.vim/colors
$ wget http://www.vim.org/scripts/download_script.php?src_id=9750
$ mv download_script.php\?src_id\=9750 molokai.vim

英語化

$ sudo vim /etc/sysconfig/i18n

LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

$ . /etc/sysconfig/i18n # で設定反映できるが 以下の .zshrc で反映するのがここでやんなくてもOK
$ locale # で設定の確認もできるかがみなくてもOK

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

タイムゾーンを日本にする

$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ sudo vim /etc/sysconfig/clock
#ZONE="UTC"
#UTC=true
ZONE="Asia/Tokyo"
UTC=false
$ date

zsh の設定

$ sudo vim ~/.zshrc

# http://mollifier.hatenablog.com/entry/2013/02/22/025415
# https://gist.github.com/mollifier/4979906

########################################
# 環境変数
export LANG=en_US.UTF-8

# 言語設定
. /etc/sysconfig/i18n

# 色を使用出来るようにする
autoload -Uz colors
colors

# emacs 風キーバインドにする
# bindkey -e

# ヒストリの設定
HISTFILE=~/.zsh_history
HISTSIZE=1000000
SAVEHIST=1000000

# プロンプト
# 1行表示
# PROMPT="%~ %# "
# 2行表示
PROMPT="%{${fg[cyan]}%}[%n] - %~%{${fg[blue]}%}
$%{${reset_color}%} "


# 単語の区切り文字を指定する
autoload -Uz select-word-style
select-word-style default

# ここで指定した文字は単語区切りとみなされる
# / も区切りと扱うので、^W でディレクトリ1つ分を削除できる
zstyle ':zle:*' word-chars " /=;@:{},|"
zstyle ':zle:*' word-style unspecified

########################################
# 補完
# 補完機能を有効にする
autoload -Uz compinit
compinit

# 補完で小文字でも大文字にマッチさせる
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'

# ../ の後は今いるディレクトリを補完しない
zstyle ':completion:*' ignore-parents parent pwd ..

# sudo の後ろでコマンド名を補完する
zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin \
                   /usr/sbin /usr/bin /sbin /bin /usr/X11R6/bin

# ps コマンドのプロセス名補完
zstyle ':completion:*:processes' command 'ps x -o pid,s,args'


########################################
# vcs_info
autoload -Uz vcs_info
autoload -Uz add-zsh-hook

zstyle ':vcs_info:*' formats '%F{green}(%s)-[%b]%f'
zstyle ':vcs_info:*' actionformats '%F{red}(%s)-[%b|%a]%f'

function _update_vcs_info_msg() {
    LANG=en_US.UTF-8 vcs_info
    RPROMPT="${vcs_info_msg_0_}"
}
add-zsh-hook precmd _update_vcs_info_msg


########################################
# オプション
# 日本語ファイル名を表示可能にする
setopt print_eight_bit

# beep を無効にする
# setopt no_beep

# フローコントロールを無効にする
setopt no_flow_control

# Ctrl+Dでzshを終了しない
setopt ignore_eof

# '#' 以降をコメントとして扱う
setopt interactive_comments

# ディレクトリ名だけでcdする
setopt auto_cd

# cd したら自動的にpushdする
setopt auto_pushd
# 重複したディレクトリを追加しない
setopt pushd_ignore_dups

# 同時に起動したzshの間でヒストリを共有する
# setopt share_history

# 同じコマンドをヒストリに残さない
setopt hist_ignore_all_dups

# スペースから始まるコマンド行はヒストリに残さない
setopt hist_ignore_space

# ヒストリに保存するときに余分なスペースを削除する
setopt hist_reduce_blanks

# 高機能なワイルドカード展開を使用する
setopt extended_glob

########################################
# キーバインド

# ^R で履歴検索をするときに * でワイルドカードを使用出来るようにする
bindkey '^R' history-incremental-pattern-search-backward

########################################
# エイリアス

alias la='ls -a'
alias ll='ls -laF'

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

alias mkdir='mkdir -p'

# sudo の後のコマンドでエイリアスを有効にする
alias sudo='sudo '

# グローバルエイリアス
alias -g L='| less'
alias -g G='| grep'

# C で標準出力をクリップボードにコピーする
# mollifier delta blog : http://mollifier.hatenablog.com/entry/20100317/p1
if which pbcopy >/dev/null 2>&1 ; then
    # Mac
    alias -g C='| pbcopy'
elif which xsel >/dev/null 2>&1 ; then
    # Linux
    alias -g C='| xsel --input --clipboard'
elif which putclip >/dev/null 2>&1 ; then
    # Cygwin
    alias -g C='| putclip'
fi



########################################
# OS 別の設定
case ${OSTYPE} in
    darwin*)
        #Mac用の設定
        export CLICOLOR=1
        alias ls='ls -G -F'
        ;;
    linux*)
        #Linux用の設定
        alias ls='ls -F --color=auto'
        ;;
esac

# vim:set ft=zsh:


########################################

# bind key
bindkey "^[^[[D" backward-word
bindkey "^[^[[C" forward-word


$ sudo chsh ec2-user
 /bin/zsh
$ echo $SHELL # ←確認
$ exit

php , nginx , mysql , phpmyadmin を入れる

この記事を参考に進めました。

php7 のモジュールを入れる。

$ sudo rpm -Uvh ftp://ftp.scientificlinux.org/linux/scientific/6.4/x86_64/updates/fastbugs/scl-utils-20120927-8.el6.x86_64.rpm
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
$ sudo yum install php70 php70-php-fpm php70-php-mbstring php70-php-mysqlnd php70-php-mcrypt
$ php -v
PHP 7.0.14 (cli) (built: Jan 18 2017 19:13:23) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

nginx を入れて、あとに入れる phpmyadmin 用に設定をした。ポートは aws でいうと、セキュリティグループをちゃんと設定する必要あり。

$ sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
$ sudo yum install nginx
$ nginx -v
nginx version: nginx/1.10.1
$ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.org
$ sudo vim /etc/nginx/nginx.conf
$ sudo vim /etc/nginx/conf.d/phpmyadmin.conf

server {

    listen 0000;
    server_name xx.xx.xx.xx;

    access_log /var/log/nginx/phpmyadmin.access_log;
    error_log /var/log/nginx/phpmyadmin.error_log;

    location /admin {
        alias /var/www/phpmyadmin;
        index index.php;

        # basic認証
        # auth_basic "hoge";
        # auth_basic_user_file "/etc/nginx/conf.d/hoge.htpasswd";

        # ip制限
        allow xx.xx.xx.xx;
        deny all;
    }

    location ~ ^/admin.+\.php$ {
        fastcgi_pass    localhost:9000;
        fastcgi_index   index.php;
        fastcgi_split_path_info ^/admin(.+\.php)(.*)$;
        fastcgi_param   SCRIPT_FILENAME /var/www/phpmyadmin$fastcgi_script_name;
        include         /etc/nginx/fastcgi_params;

        # ip制限
        allow xx.xx.xx.xx;
        deny all;
    }

}


$ sudo service nginx start
$ sudo service php70-php-fpm start
$ sudo chkconfig nginx on
$ sudo chkconfig php70-php-fpm on

mysql はこの記事を参考にした。

$ sudo yum -y install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
$ sudo yum -y install mysql-community-server
$ mysqld --version
mysqld  Ver 5.7.17 for Linux on x86_64 (MySQL Community Server (GPL))
$ sudo service mysqld start
$ sudo chkconfig mysqld on

$ sudo cat /var/log/mysqld.log | grep "temporary pass"
この最後に書いてあるのが一時的なパスワード
2017-01-30T10:28:59.090604Z 1 [Note] A temporary password is generated for root@localhost: eNFkquzmw3?j

$ sudo mysql_secure_installation 

phpmyadmin

$ cd /var/www/
$ sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.6.6/phpMyAdmin-4.6.6-all-languages.zip
$ sudo unzip phpMyAdmin-4.6.6-all-languages.zip
$ sudo mv phpMyAdmin-4.6.6-all-languages phpmyadmin
$ sudo rm -rf phpMyAdmin-4.6.6-all-languages.zip
$ sudo cp phpmyadmin/config.sample.inc.php phpmyadmin/config.inc.php
$ sudo vim phpmyadmin/config.inc.php

/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'config';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
/* Select mysql if your server does not have mysqli */
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'iA4&E6F2hFt(';

ここまで設定して、以下へアクセスすると phpmyadmin みれる。

http://xx.xx.xx.xx:4000/admin/

nodejs

tj/n ていうバージョン管理マネージャーを使って入れました。この記事を参考にしました。

$ sudo yum install nodejs npm --enablerepo=epel
$ node -v
v0.10.48
$ npm -v
1.3.6
$ sudo npm install -g n
$ sudo n ls
$ sudo n stable
$ node -v
v7.4.0
$ npm -v
4.0.5

以上です。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5