久しぶりにプロトタイプ用にサーバーの環境設定をして、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
以上です。