はじめに
- Window10,VirtualBox,Vagrant,CentOS8,MySQL,Rails,Vim
- 私は非プログラマーなので内容にまったく保証はありません。自己の自己による自己のための記録です。
- 見やすさ度外視、解説もほぼなし
- でも、ここはこうしたほうがいいよ、ここってどういう意味なの?どうしたらいいの?って言ってもらえたらめっちゃ嬉しいです。
VirtualBox,Vagrant,teratermをダウンロード
VirtualBox
Vagrant
teraterm
プラグインインストール
- teratermログインセットアップ
vagrant plugin install vagrant-teraterm
- Windos上共有フォルダのマウント
vagrant plugin install vagrant-vbguest
- teratermログインセットアップ
Vagrantfileの記述&起動
config.vm.box = "generic/centos8"
#ポートの開放
config.vm.network :forwarded_port, guest: 3000, host: 3000
config.vm.network :forwarded_port, guest: 6379, host: 6379
#リアルタイム同期
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
#共通化key
config.ssh.insert_key = false
起動
vagrant up
接続
vagrant teraterm
CentOSログイン後
時間設定
sudo timedatectl set-timezone Asia/Tokyo
こいつは重要だから
sudo dnf -y update kernel
必要になるものまとめてインストール
sudo dnf -y install bzip2 dkms gcc gcc-c++ git kernel-devel kernel-headers make mysql-devel nodejs openssl-devel readline-devel ruby-devel zlib-devel
- さらにアップデート
sudo dnf update -y
Vim
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
vimの準備
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
- dein.tomlの設定
mkdir -p ~/.cache/dein
cd ~/.cache/dein
curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
sh ./installer.sh ~/.cache/dein
※出力された内容を.vimrcに書き込む
細かい設定は.vimrcに書く。書き換えたらgithubにバックアップ
https://github.com/denden0930/vim
Github
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
Githubへの接続
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
- Githubへの接続準備
cd ~/.ssh/
mkdir github
cd github
#キーペアの作成
ssh-keygen -t rsa
#保存先の指定
Enter file in which to save the key (/home/hoge/.ssh/id_rsa): ~/.ssh/github/id_rsa
#github登録用の公開鍵を確認
cat id_rsa.pub
※最後のユーザー名@IPアドレスはコピーしない
- Githubに入って鍵の登録
※登録方法は割愛
設定ファイルを作成
vi ~/.ssh/config
Host github github.com
Hostname github.com
User git
IdentityFile ~/.ssh/github/id_rsa`
権限付与
sudo chmod 700 ~/.ssh
sudo chmod 600 config
接続確認
ssh -T github
Conoha
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
Conohaログインの再設定
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
https://www.conoha.jp/login/?mode=logout
- サーバーに入り、パスワードログインの許可
sudo vi /etc/ssh/sshd_config
PasswordAuthentication yes
ローカルからログイン
ssh -p ポート番号 ユーザー名@サーバーIPアドレス
id_rsaのコピー
cat ~/.ssh/id_rsa
※出てきた文字を全てコピーログアウト後ローカル作業
cd ~/.ssh
#鍵の保存フォルダの作成
mkdir conoha_hoge #名前は任意
#鍵ファイルの作成
sudo cd conoha_hoge
vi id_rsa
※先程クリップボードにコピーした内容をそのまま貼り付けて保存
- sshの設定ファイルの作成
vi ~/.ssh/config
Host conoha_hoge
HostName サーバのIPアドレス
User ユーザー名
Port 変更したSSHのポート番号
IdentityFile ~/.ssh/conoha_hoge/id_rsa
権限の設定
cd conoha_hoge
sudo chmod 600 id_rsa
ログインの確認とパスワードログインの禁止
ssh conoha_hoge
sudo vi /etc/ssh/sshd_config
#パスワードログインを禁止。yesからnoへ変更
PasswordAuthentication no
ruby
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
rubyを使う準備(バージョン管理を楽にするために管理システムの導入)
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
#PATHにrbenvコマンドを追加
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
#rbenvの初期化
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
#bashの再読込
source ~/.bash_profile
#rbenvのバージョン確認 バージョンが出ればOK
rbenv -v
#インストール
rbenv install 2.7.0
#globalで使用するrubyの設定
rbenv global 2.7.0
#rbenvの再起動?
rbenv rehash
#rubyのバージョン確認
ruby -v
MySQL
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
MySQLの準備
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
#インストール
sudo dnf install -y @mysql
sudo systemctl restart mysqld.service
#初期設定
mysql_secure_installation
> There are three levels of password validation policy:
#LOW:
#→ 8文字以上
#MEDIUM:
#→ 8文字以上 + 数字・アルファベットの大文字と小文字・特殊文字を含む
#STRONG:
#→ 8文字以上 + 数字・アルファベットの大文字と小文字・特殊文字を含む + 辞書ファイルでのチェック
> Do you wish to continue with the password provided?
このパスワードで確定して次に進んで良いか聞かれるので、y
> Remove anonymous users?
匿名ユーザ( anonymous user )を削除するか y
> Remove test database and access to it?
テストデータベースの削除しますか? y
>Reload privilege tables now?
すぐに権限テーブルをリロードして変更を有効にするか y
#タイムゾーンの作と読み込み
/usr/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo > ~/timezone.sql
mysql -u root -p -Dmysql < ~/timezone.sql
システム設定
sudo vi /etc/my.cnf.d/charset.cnf
[mysqld]
character-set-server = utf8mb4
default-time-zone = 'Asia/Tokyo'
[client]
loose-default-character-set=utf8mb4
- MySQLの再起動
sudo systemctl restart mysqld.service
MySQLへのログイン
mysql -u root -p
#データベースの作成
CREATE DATABASE your_app_development;
#vagrantユーザーの作成
CREATE USER 'vagrant'@'host_name' IDENTIFIED BY 'password'
#権限の付与
grant all on your_app_development.* to vagrant@localhost;
環境変数の読み込み設定
echo "source /your/APP/path/app.env" >>~/.bash_profile
redis
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
redisの準備
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
#インストール
sudo dnf install -y @redis
#自動起動と起動
sudo systemctl enable --now redis
rails
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
railsの準備
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
ひらがな,かななど相互互換変換する gem 'natto'の準備
#全文検索エンジンgroongaのリポジトリを追加
sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
#インストール
mecab --version
sudo dnf install -y mecab mecab-ipadic
#環境変数にmecab用のパスを追加する
#mecabのライブラリのある場所を調べる
sudo find / -name libmecab.so*
#調べたライブラリを環境変数に追加する
echo 'export MECAB_PATH=/usr/lib64/libmecab.so.2' >> ~/.bash_profile
#bash設定の再読み込み
source ~/.bash_profile
#bundleの準備
gem install bundle
※開発データフォルダに移動して
bundle
bundle update
aliasの登録
#フォルダ移動して編集開始
echo "alias rails_vim='cd your/app/path; vi'" >> ~/.bash_profile
#rails sの起動
echo "alias rails_s='cd your/app/path; rails s -b 0.0.0.0'" >> ~/.bash_profile
#rails sが死んだとき用プロセス確認
echo "alias ps_p='ps aux | grep [p]uma'" >> ~/.bash_profile
#シャットダウン
echo "alias down_now='sudo shutdown now'" >> ~/.bash_profile
#ridgepole
- schema→DB反映
echo "alias schema_db='bundle exec ridgepole -c config/database.yml --apply -f db/schemas/Schemafile'" >> ~/.bash_profile
- DB→schema反映
echo "alias db_schema='bundle exec ridgepole -c config/database.yml -E development --split --export -o db/schemas/Schemafile'" >> ~/.bash_profile
#Capistranoデプロイ
echo "alias cap_deploy='bundle exec cap production deploy'" >> ~/.bash_profile
設定終わったら反映
source ~/.bash_profile
firewall
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
ポートの開放
/ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー/
sudo firewall-cmd --add-port=3000/tcp --zone=public --permanent
sudo firewall-cmd --add-port=6379/tcp --zone=public --permanent
#リロード(設定の反映)
sudo firewall-cmd --reload
#設定が有効になっているか確認
sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: cockpit dhcpv6-client ssh
ports: 3000/tcp 6379/tcp ←ここに出ればOK
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules: