あめのて

活字を垂れ流す

ConoHa の VPS で Ruby on Rails のサーバー環境構築【CentOS7・Nginx・mariaDB】

スポンサーリンク

ConoHaのVPSを利用して、サーバーの追加からNginxの設定まで頑張った。
そこから進みません……。
ていうか疲れた。

0からインフラ構築したのは初めてなので、かなり進みが遅いです……。
Rails自体はめちゃくちゃ楽しいし好きなんだけど、環境構築とデプロイが難儀だ。

とりあえず今日やったことを雑にまとめておきます。
疲れたからね。

ローカルでssh鍵を作成

$ cd ~/.ssh
$ ssh-keygen -t rsa -b 2048 -f ファイル名

作成したキーでサーバーを作成(pubの方をコピペ)

サーバーにsshでログイン

.sshディレクトリを自動コピー

$ cp -r /root/.ssh/ /etc/skel/

新規ユーザーの作成してsudo権限付与

$ adduser username
$ passwd username
$ usermod -G wheel username

root禁止 port変更(ここからrootじゃないとできないかも)

$ vim /etc/ssh/sshd_config

書き換え

Port 4053
PermitRootLogin no
$ sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-alt.xml
$ sudo vim /etc/firewalld/services/ssh-alt.xml

「port="22"」の記述を変更

$ sudo firewall-cmd --reload
$ sudo firewall-cmd --add-service=ssh-alt
$ sudo firewall-cmd --permanent --add-service=ssh-alt
$ sudo firewall-cmd --remove-service=ssh
$ sudo firewall-cmd --permanent --remove-service=ssh
$ sudo systemctl restart sshd
$ sudo firewall-cmd --reload

パッケージインストール

$ sudo yum install git make gcc-c++ patch libyaml-devel libffi-devel libicu-devel zlib-devel readline-devel sqlite sqlite-devel wget nodejs openssl-devel

アプリケーション用のユーザーを作成

$ adduser appuser
$ passwd appuser
$ su appuser

rbenvでrubyを

$ cd ~/
$ mkdir .rbenv
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ vim .bash_profile

行末に以下を追加

export PATH="~/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
$ source ~/.bash_profile
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ rbenv install -l
$ rbenv install 0.0.0
$ rbenv rehash
$ rbenv global 0.0.0
$ gem install bundler

一旦sudo権限userに戻る mariaDBのインストール

$ sudo yum -y install mariadb mariadb-server
$ sudo systemctl start mariadb.service
$ sudo systemctl enable mariadb.service
$ sudo vim /etc/my.cnf.d/server.cnf

追加

[mysqld]
character-set-server = utf8

設定

$ mysql_secure_installation

パスワード設定以外は空enter

mariadbログイン

$ mysql -u root -p

DBの設定は省略

Nginxの設定

$ sudo yum install nginx
$ sudo vim /etc/nginx/conf.d/testapp.conf

ドメインなしの場合
[/etc/nginx/conf.d/testapp.conf]

upstream test {
  server unix:/temp/testapp.sock;
}

server {
  listen 80;

  access_log /var/www/testapp/access.log;
  error_log /var/www/testapp/error.log;

  locarion /testapp {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Client-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_pass http://testapp
  }

  location ~ ^/testapp/assets/{
    root /var/www/testapp/public;
  }
}

こんな感じ。
いやー、これだけ雑にまとめても長い。
まだまだ途中だしね。

こっから、capistranoとか使ってデプロイできるようにしたい。

最後のNginxの設定なんだけど、ひとつのサーバーでドメインを取らずに複数のアプリケーションを動かす設定なんだよね。
まあ、書き方あってるのか自信ないけど。
初めてだからこんなことせずにまずはひとつのサーバーで動かしてみたほうがいいような気もしてる。
とりあえず疲れた。
続きはまた後ほど。

www.conoha.jp

広告を非表示にする