CentOS – 環境設定

サーバーの初期設定時に行う環境設定のメモを載せます。

ホスト名の変更

/etc/sysconfig/networkファイルを以下のように編集します。

HOSTNAME=[変更後のホスト名]

この設定はサーバーの再起動後に反映されます。

 

ユーザの追加とsudoができるようにする

# useradd tamtam
# passwd tamtam
# (ここでパスワード入力)

sudoをできるようにするにはvisudoを実行して以下のように記述します。

## Allow root to run any commands anywhere
root      ALL=(ALL)       ALL
tamtam  ALL=(ALL)       ALL

 

yumする際のレポジトリを追加

# EPELのレポジトリを追加
yum install epel-release

# remiレポジトリを追加(※CentOS6の場合)
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6.rpm

 

不足している基本的なパッケージのインストール

sudo yum -y update # 既存のパッケージの最新化
sudo yum -y install gcc make gcc-c++
sudo yum -y install zlib zlib-devel openssl-devel sqlite-devel glibc-headers libyaml-devel readline readline-devel zlib-devel libffi-devel

もしMultilib version problemsがlibyaml-develのインストール時に発生したら、以下のようにして回復します。

yum downgrade -y libyaml
yum install -y libyaml-devel

hostやdigなどのコマンドを使えるようにします。

sudo yum install bind-utils

セッションが切れても大丈夫なようにtmuxも入れとく。

sudo yum install tmux

gitも忘れずに。

 

公開鍵認証のみ有効にする

まずはサーバー側に.sshのディレクトリを作成し、authorized_keysファイルを作成し、その中にクライアント側の公開鍵の内容をコピーします。また、このファイルの権限設定が600になっていないとちゃんと動いてくれないので忘れずに設定します。

ssh-keygen -t rsa
cd .ssh
vi authorized_keys
chmod 600 authorized_keys

次にsshデーモンの設定をします。

sudo vi /etc/ssh/sshd_config
Port 24223 # ポート番号
RSAAuthentication yes # RSA認証の許可
PubkeyAuthentication yes # 公開鍵認証の許可
PasswordAuthentication no # パスワード認証の禁止
PermitRootLogin no # rootユーザの直接ログイン
sudo service sshd restart

 

iptables(ファイヤーフォール)の設定

# 設定を一旦クリア
sudo iptables -F
#SSH接続ポートを開放
sudo /sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#HTTP通信ポートを開放
sudo /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#SSL通信ポートを開放
sudo /sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# DNS応答の受信を許可
sudo /sbin/iptables -A INPUT -p udp --sport domain -j ACCEPT
# サーバから接続開始したTCP通信の受信パケットを許可
sudo /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#自ホストのループバックは全て許可
sudo /sbin/iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

# INPUTの基本ポリシーをドロップにする(※注意:これを最初にやってしまうとホストから切断されて以降アクセス不能になってしまう)
sudo /sbin/iptables -P INPUT DROP

# 設定内容の確認
sudo iptables --list

# 設定を保存(※これをしないとiptables再起動時に設定が消えてしまうので注意)
sudo service iptables save

iptablesの参考文献

 

 

sudo時に参照するパスを追加

/user/local/binをsudo実行時に参照するパスをsudo visudoを実行して追加します。

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

 

MySQLのインストール&設定

インストールはremiレポジトリを参照してyumでインストールするとVersion 5.5以上がインストールできます。

sudo yum install mysql-server mysql-devel --enablerepo=remi

もし上記の方法でうまくいかなければ(CentOS7以上等)ここのサイトを参考にインストールします。

/etc/my.cnfに以下の設定を追加します。

# 文字コードの設定
character-set-server=utf8
# クライアントに合せて文字コードを判断するのではなく、DBサーバーの文字コードを適用する
character-set-client-handshake

サーバー再起動時にMySQLデーモンが起動されるように設定します。

sudo /sbin/chkconfig mysqld on

MySQLデーモンを起動し、rootユーザーのパスワードを設定します。

sudo /etc/init.d/mysqld start # もしくは sudo service mysqld start
mysqladmin -u root password '新しいパスワード'

 

rbenvを使ってrubyをインストール

ここの情報が参考になります。

ちなみにrbenvを最新化する方法は以下の通り。

cd ~/.rbenv
git pull origin master
cd ~/.rbenv/plugins/ruby-build
git pull origin master

gemを更新してbundlerも入れておきましょう。

gem update --system
gem install bundler

NginxとPassengerのインストール

順番が逆のように思えますが、Passengerをインストールした後に、それに付属にNginxのインストーラーを利用してNginxのインストールを行います。

必要なパッケージを予めインストールしておきます。

sudo yum install openssl-devel curl-devel libyaml-devel ruby-devel
sudo rbenv exec gem install passenger
sudo passenger-install-nginx-module # もし「そんなものはない」とエラーになったらsudoにパスが通ってないので、フルパスで実行すればいい

Nginxのインストールが起動したら、Nginxのサービスファイル(起動・停止用スクリプト)を/etc/init.dに配置します。[ここからダウンロード]

次にサーバー再起動にnginxも起動されるようにchkconfigに登録します。

sudo chkconfig --add nginx

このとき、 サービスファイルに以下の記述がないとエラーになります。chkconfigパラメータは左からランレベル、起動優先順位、停止優先順位を表しています。

# chkconfig: 2345 98 20
# description: nginx web server

Nginxの設定ファイルの内容が正しいかどうかは以下のコマンドで確認できます。

sudo /opt/nginx/sbin/nginx -t

 

Railsアプリをインストール

CarrierWaveを使うための準備

sudo yum -y install libjpeg-devel libpng-devel
sudo yum -y install ImageMagick ImageMagick-devel

nokogiriを使うための準備

sudo yum -y install libxml2-devel libxslt-devel
sudo yum install -y patch

mysql2 gemを使うための準備

sudo yum -y install mysql mysql-devel

 

rbenvを使ってRubyをインストールしたときの注意点

rubyのインストール先が通常と違うのでnginxのpassengerの設定のところをデフォルトから変える必要があります。

#passenger_ruby /usr/bin/ruby;
passenger_ruby /home/user_name/.rbenv/shims/ruby;

 

PHPのインストール

まずremiレポジトリの設定を変えてPHP 5.6がインストールできるようにします。

sudo vi /etc/yum.repos.d/remi.repo

上記を実行して[remi-php56]となっているセクションをenabled=1にした後、下記を実行します。

sudo yum install --enablerepo=remi php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug

以下のようにPHPの設定を行います。

sudo vi /etc/php.ini
default_charset = "UTF-8"
date.timezone = "Asia/Tokyo"
mbstring.language = Japanese

 

php-fpmのインストール

sudo yum --enablerepo=remi install php-fpm

設定が必要であれば /etc/php-fpm.d/www.conf の設定ファイルを編集します。

AWS S3とファイルを同期

ここのページのまとめがすばらしい!

 

 

環境

CentOS 6.2

 

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です