気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【CentOS】インストール設定(自分用)

CentOSDjangoアプリの検証を実施しようと考え、環境構築を実施。

次回構築時に役立てるため、自分用にメモを残す。

対象バージョン

  • CentOS-6.7-x86_64(LiveDVD)
  • VirtualBox4.3.12

VirtualBoxCentOSをインストール

sudoersへの追記

  • rootユーザーで実行
$ su
  • /etc/sudoersファイルを編集
user   ALL=(ALL)   ALL 

userで、sudo yumが利用可能になる

SELinuxの無効化

# 現在の設定を確認
$ getenforce
Enforced

# SELINUXを無効化
$ sudo vim /etc/selinux/config
SELINUX=disabled

$ reboot

VirtualBox Guest Additionsを追加

$ sudo yum -y update
  • カーネルと必要なパッケージのインストール
$ sudo yum -y install kernel-devel kernel-headers dkms gcc gcc-c++

$ reboot
Memo:
Building the VirtualBox Guest Additions Kernel modules [NG]が出た場合は、
上記、パッケージのインストールを実施すれば解消可能。
  • Guest Additionsイメージを挿入し、インストール

sshの設定

  • /etc/init.d/sshdの確認

  • ポートの確認(22番ポートが開いているか?)

$ sudo cat /etc/sysconfig/iptables
$ sudo vim /etc/ssh/sshd_config
# 以下のパラメーターを設定する
PermitRootLogin no
RSAAuthentication yes
AuthorizedKeyFile .ssh/authorized_keys
PasswordAuthentication no

# デーモンの再起動
$ sudo /etc/init.d/sshd restart
  • キーペアを生成
$ ssh-keygen ~/.ssh/id_rsa
  • キー名称を変更
$ cd ~/.ssh
$ mv ./id_rsa.pub ./authorized_keys

httpの設定(iptables)

  • HTTPの許可
$ sudo vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

# 以下はDjangoやjenkinsで利用するので、ついでに開放
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8002 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT
$ sudo /etc/init.d/iptables restart

nginxのインストール

  • rpmのURLを公式サイトからピックアップ

nginx: Linux packages

http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
$ sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
  • /etc/yum.repos.d/配下にnginx.repoが作成される
$ ll /etc/yum.pores.d/
-rw-r--r--. 1 root root  113 1014 19:04 2011 nginx.repo
  • yum経由でnginxのインストールが可能となるため、インストールを実施
$ sudo yum install nginx

gitをインストール

$ sudo yum install git

pyenvをインストール

$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

# 実行できるか確認
$ pyenv versions

pyenv-virtualenvをインストール(pyenvプラグイン)

$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

pyenvに必要なパッケージのインストール

sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel
memo:
以下のエラーが出た時はパッケージが足りないので、pyenvに必要なパッケージのインストールをすれば解決可能
ERROR: The Python zlib extension was not compiled. Missing the zlib?
  • pyenv経由でインストール(Pythonバージョンは3.5.0を利用)
$ pyenv install 3.5.0
  • virtualenvを作成(3.5.0を利用し、venv-dj18-py35という名前の仮想環境を作成)
pyenv virtualenv 3.5.0 venv-dj18-py35

MySQLをインストール

  • パッケージのインストール
$ sudo yum install -y mysql-devel mysql-server
  • my.cnfの設定
$ sudo vim /etc/my.cnf

character-set-server=utf8 # 追加
  • rootパスワードを設定
$ /usr/bin/mysqladmin -u root password 'xxxx'
  • DBの作成&ユーザー作成
create database any_db
grant all privileges on any_db.* to any_user@localhost identified by 'password';
$ chkconfig mysqld on
  • pythonからmysqlに接続するため、Pythonパッケージをインストール
$ pip install mysqlclient