2016年6月11日土曜日

centos7にmysql、nginx、railsをインストールする方法



備忘録を兼ねて、参考リンクと共にコマンドを共有します。
詳細はリンクを見てください。

mysql


下記のサイトを参考にしました。

MySQL 5.7 を CentOS 7 に yum インストールする手順
CentOS7.1 64bitのyumリポジトリにMySQLを追加し、最新バージョンをインストール
How to Install MySQL on CentOS 7

最新版のMySQLをインストールしたい場合は、下記のサイトで最新のrpmを確認してください。
Download MySQL Yum Repository

rpmの設定
sudo yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

インストール
sudo yum -y install mysql

起動
sudo systemctl start mysqld

バージョン確認
mysqld --version

自動起動設定
systemctl enable mysqld.service

MySQLのrootユーザーのパスワードを取得
参考: A Quick Guide to Using the MySQL Yum Repository
sudo grep 'temporary password' /var/log/mysqld.log

rootユーザーのパスワードやその他の設定を編集
sudo mysql_secure_installation

railsのためのユーザーを作成
参考: How To Create a New User and Grant Permissions in MySQL
mysql -u root -p

MySQLのコンソールで下記のコマンドを入力
CREATE USER 'user_for_rails'@'localhost' IDENTIFIED BY 'random_pass_4_Rails';
GRANT ALL PRIVILEGES ON * . * TO 'rails'@'localhost';
FLUSH PRIVILEGES;

ここで設定したユーザー名とパスワードは、railsのdatabase.ymlで利用します。

mysql のinstallをミスしてやり直したい時は、下記のコマンドでアンインストールできます。
参考: How to Remove MySQL Completely from Linux System
sudo yum remove mysql
sudo rm -r /var/lib/mysql

nginx


下記のサイトを参考にしました。
NSTALLING NGINX OPEN SOURCE

nginxをyumでインストールするために、参照先を記述したファイルを作ります。
sudo vi /etc/yum.repos.d/nginx.repo
/etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

yumを更新
sudo yum update

nginxをインストール
sudo yum install nginx

起動
sudo systemctl start nginx

バージョン確認
nginx -v

アクセス設定
centos7は下記のコマンドでfirewalledの設定変更をしないと、httpアクセスを受け付けません。
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

自動起動設定
sudo systemctl enable nginx

railsのためのconfigファイル記述方法は、下記の記事が参考になりました。
rails4 + unicorn + nginx

ruby on rails


下記のサイトを参考にしました。
How To Install Ruby on Rails with rbenv on CentOS 7
rbenv を使って ruby をインストールする(CentOS編)

rbenvのインストール
git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

ruby-buildのインストール
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bash_profile
インストールしたものの読み込み
source ~/.bash_profile

バージョン確認
rbenv -v

rbenvでインストール出来るrubyのバージョンを確認
rbenv install -l

ruby-buildに必要なプログラムをインストール
yum install -y openssl-devel readline-devel zlib-devel

rubyのインストール
この記事を書いている時点では、インストール可能な最新版が2.3.1でした。
rbenv install 2.3.1

インストールできたバージョンの確認
rbenv versions

2.3.1を有効化
rbenv global 2.3.1

gem install時にドキュメントを持ってこないように設定
参考: How to make --no-ri --no-rdoc the default for gem install?
echo 'gem: --no-document' >> ~/.gemrc

railsをインストール
sudo gem isntall rails

railsのバージョンを確認
rails -v

その他の設定

centos7では、サーバー内部のhttp通信を許可しないとソケット通信ができません。
そのため、下記のコマンドでhttpの通信を許可します。
参考: NGINX: SELinux Changes when Upgrading to RHEL 6.6 / CentOS 6.6
sudo semanage permissive -a httpd_t

semanageがインストールされていない場合は、下記のコマンドでインストール可能です。
sudo yum install policycoreutils-python

紹介するコマンドは以上です。
おかしな手順の指摘や、もっと良い手順の紹介など頂けると嬉しいです。

0 件のコメント :