CentOS7에 Rails 5.2.3 + MariaDB 10.4 설치

6442 단어 mariadbRailsMariaDB10

RVM에 Ruby 2.5.5 설치


gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \
7D2BAF1CF37B13E2069D6956105BD0E739499BDB

에서 GPG 키를 설치할 수 있어야하지만 GPG 버전 문제로 인해 할 수 없으므로 다음 명령을 실행하십시오.
command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -

RVM을 설치.
\curl -sSL https://get.rvm.io | bash -s stable

그런 다음 Ruby 2.5를 설치합니다.
rvm install ruby-2.5

버전을 확인.
$ ruby --version
ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux]

~/.gemrc로 rdoc을 설치하지 마십시오.

~/.gemrc
install: --no-document
update: --no-document

bundler를 설치.
gem install bundler

MariaDB 10.4 설치



CentOS7 표준 MariaDB 5.5가 설치된 경우 먼저 제거합니다.
sudo yum -y remove mariadb-*
다음에 MariaDB Package Repository Setup and Usage 에 기재되어 있는 커멘드를 실행해, MariaDB 의 리포지터리 파일을 작성합니다.
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

yum에서 MariaDB 10.4를 설치합니다.
sudo yum -y install MariaDB-server MariaDB-client MariaDB-devel

다음 rpm이 설치됩니다.

$ rpm -qa | grep -i mariadb | sort
MariaDB-client-10.4.6-1.el7.centos.x86_64
MariaDB-common-10.4.6-1.el7.centos.x86_64
MariaDB-compat-10.4.6-1.el7.centos.x86_64
MariaDB-devel-10.4.6-1.el7.centos.x86_64
MariaDB-server-10.4.6-1.el7.centos.x86_64
$ rpm -qa | grep -i galera
galera-4-26.4.2-1.rhel7.el7.centos.x86_64

MariaDB service를 시작합니다.
sudo systemctl start mariadb

Ruby on Rails 5.2.3 설치



다음과 같이 Gemfile을 만들고,

Gemfile
source 'https://rubygems.org'

gem 'rails', '5.2.3'
gem 'mysql2'
bundle install 를 실행합니다.
make: *** [mysql2.so] Error 1

make failed, exit code 2

Gem files will remain installed in /home/vagrant/.rvm/gems/ruby-2.5.5/gems/mysql2-0.5.2 for inspection.
Results logged to
/home/vagrant/.rvm/gems/ruby-2.5.5/extensions/x86_64-linux/2.5.0/mysql2-0.5.2/gem_make.out

An error occurred while installing mysql2 (0.5.2), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/'` succeeds before
bundling.

In Gemfile:
  mysql2

오류로 인해 mysql2 빌드가 실패합니다.
sudo yum -y install MariaDB-shared

에서 MariaDB-shared를 설치하면 해결되었습니다.

ToDo 앱 만들기



다음 명령을 실행하여 새 Rails 앱을 만듭니다.
rails new todo
cd todo

디폴트라면 데이터베이스에 SQLite3 를 사용하게 되어 있으므로, config/database.yml 의 development 데이타베이스 설정을 이하와 같이 수정합니다.

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: development
  pool: 5
  username: rails5
  password: password
  host: localhost

MariaDB Server는 10.4부터 unix_socket plugin이 기본 인증 방법이므로 mysql_native_password로 인증 할 수 있도록 Rails에서 연결 사용자를 만듭니다.
MariaDB [(none)]> GRANT ALL ON development.* TO rails5@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> GRANT ALL ON production.* TO rails5@'localhost';

(사용자 이름, 암호는 적절하게 변경하십시오)

Gemfile의 끝에 gem 'mysql2'를 추가,
echo "gem 'mysql2'" >> Gemfile

17행째 부근의

Gemfile
# gem 'mini_racer', platforms: :ruby

코멘트를 제거하고,

Gemfile
gem 'mini_racer', platforms: :ruby

합니다.
scaffold 로 어플리케이션의 토대를 생성합니다.
bundle install
rails generate scaffold tasks title:string content:text due:date

데이터베이스 작성, 테이블 작성, Rails 서버를 시작합니다.
$ rake db:create
Created database 'development'

$ rake db:migrate
== 20190705063555 CreateTasks: migrating ======================================
-- create_table(:tasks)
   -> 0.0022s
== 20190705063555 CreateTasks: migrated (0.0023s) =============================

$ rails s -b 0.0.0.0
=> Booting Puma
=> Rails 5.2.3 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.1 (ruby 2.5.5-p157), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

서버의 port 3000 에 브라우저로 액세스 해 다음과 같이 태스크 신규 작성을 할 수 있으면 문제 없을 것입니다.

좋은 웹페이지 즐겨찾기