【Windows7】VirtualBox + Vagrant + Ruby + Rails4 개발 환경의 구축【mysql편】

목적



【Windows7】VirtualBox + Vagrant + Ruby + Rails4 개발 환경의 구축 【초보자 필견】
에서 sqlite를 사용하여 샘플 앱을 시작할 때까지 설명했습니다.
이번에는 DB에 mysql을 사용한 샘플 앱의 시작까지를 기재합니다.

VirtualBox + Vagrant + Ruby + Rails4의 환경 구축까지는 지난번 의 기사로 완료하고 있는 것을 전제로 합니다.

80번 포트 전송 설정



가상 머신으로 기동한 Apache에 호스트 머신(Windows)으로부터 브라우저 액세스 하는 경우는, 미리 80번 포트를 호스트측의 80 포트에 전송 하는 설정을 해 둡니다.
호스트 컴퓨터(Windows)의 C:\src\work\CentOS6.5에서 "Vagrantfile"을 편집합니다.
※가상 머신이 기동중의 경우는 vagrant halt로 정지해 주세요.
  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  # config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.network "forwarded_port", guest: 80, host: 80

편집이 끝나면 vagrant up으로 가상 머신을 시작합니다.

리포지토리 업데이트



여기에서의 작업은 가상 머신과 SSH 접속한 터미널에서의 작업이 됩니다.

이하는 CentOS에 PHP5.5 및 phpMyAdmin 설치 를 참고로 했습니다.
> sudo yum -y update
> sudo yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
> sudo sed -i -e "s/enabled = 1/enabled = 0/g" /etc/yum.repos.d/rpmforge.repo
> sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
> sudo sed -i -e "s/enabled = 1/enabled = 0/g" /etc/yum.repos.d/epel.repo
> sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
> sudo sed -i -e "s/enabled = 1/enabled = 0/g" /etc/yum.repos.d/remi.repo
> sudo yum -y update --enablerepo=rpmforge,epel,remi

Apache, MySQL, PHP 설치


> sudo yum -y --enablerepo=rpmforge,epel,remi install httpd mysql-server mysql-devel php php-mbstring php-mysqli

MySQL 설정


> sudo /etc/init.d/mysqld start
> sudo chkconfig mysqld on

Apache 설정



/etc/httpd/conf/httpd.conf 아래를 편집합니다.
# If your host doesn't have a registered DNS name, enter its IP address here.
# You will have to access it by its address anyway, and this will make
# redirections work in a sensible way.
#
#ServerName www.example.com:80
ServerName localhost:80

편집 후 다음을 실행합니다.
> sudo /etc/init.d/httpd start
> sudo chkconfig httpd on

phpMyAdmin 설치



wget을 사용하므로 설치합니다 (설치된 경우 생략)
> sudo yum -y install wget

phpMyAdmin을 다운로드합니다.
다운로드 사이트는 코코 입니다.
이번에는 최신 phpMyAdmin 4.2.11을 사용합니다.
> cd
> wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.2.11/phpMyAdmin-4.2.11-all-languages.tar.gz

설치합니다.
> cd /var/www/html
> sudo tar zxvf ~/phpMyAdmin-4.2.11-all-languages.tar.gz
> sudo mv phpMyAdmin-4.2.11-all-languages phpMyAdmin
> cd phpMyAdmin
> sudo cp config.sample.inc.php config.inc.php
↓元アーカイブが不要な場合
> rm ~/phpMyAdmin-4.2.11-all-languages.tar.gz

루트 암호 없이 사용할 수 있도록 설정합니다.
※통상은 root의 패스워드 없이 운용하는 것은 시큐리티상 문제가 있습니다만, 이번은 로컬 개발을 목적으로 한 가상 머신 환경이므로 root의 패스워드 없음의 운용으로 합니다.
/var/www/html/phpMyAdmin/config.inc.php로 아래와 같이 변경합니다.
//$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;

설정이 끝나면 호스트 컴퓨터의 브라우저에서
http://localhost/phpMyAdmin/
에 액세스합니다.


가 표시되고 실행을 눌러 전환할 수 있으면 완료됩니다.

샘플 앱 만들기



DB에 mysql을 사용한 샘플 앱을 공유 폴더에 만들어 보겠습니다.
> cd /vagrant
> rails new mysample --database=mysql --skip-bundle
> cd mysample
> bundle install
> bundle exec rake db:create
> rails s

실행되면 호스트 컴퓨터의 브라우저에서
http://localhost:3000/
에 액세스합니다.



이 화면이 표시되면 성공입니다.

덤 UNIX 소켓 문제



mysql을 사용한 Rails 앱을 Mac과 CentOS와 같은 여러 플랫폼에서 공동으로 개발하는 경우,
Rails 앱이나 rails 명령을 실행할 때 다음 오류가 발생할 수 있습니다.
Mysql2::Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

이것은 mysqld의 UNIX socket의 PATH가 다르기 때문입니다.

UNIX 소켓
Mac :/tmp/mysql.sock
CentOS :/var/lib/mysql/mysql.sock

해결 방법은 다음과 같이 database.yml을 편집하는 것입니다.
<%
socket = ["/tmp/mysqld.sock",
          "/tmp/mysql.sock",
          "/var/run/mysqld/mysqld.sock",
          "/var/lib/mysql/mysql.sock"].detect{|socket| File.exist?(socket)}
%>

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password:
  socket: <%= socket %> 
以下省略

관련 항목



【Windows7】VirtualBox + Vagrant + Ruby + Rails4 개발 환경의 구축 【초보자 필견】
【Windows7】VirtualBox + Vagrant + Ruby + Rails4 개발 환경의 구축【RubyMine편】
【Yosemite】Mac OSX 10.10 Yosemite 에 Ruby + Rails4 개발 환경의 구축 【초보자 필견】
【Yosemite】Mac OSX 10.10 Yosemite에 AMP 환경 구축 【초보자 필견】 【속편】

필자 소개



삿포로권에서 리모트 개발, 재택 근무를 중심으로 한 시스템 개발 회사를 시작했습니다!
로라 하우스

좋은 웹페이지 즐겨찾기