
Ubuntu 14.04 Passenger\u root/usr/lib/ruby/vendor\u ruby/phusion\u Passenger/locations에 Passenger와 Nginx가 있는 Rails 응용 프로그램을 배치하는 방법.ini;passenger\u ruby/usr/bin/ruby;
2022-06-01 last update
9 minutes reading Ruby on Rails Ubuntu Nginx소개
Ruby on Rails 개발자라면 웹 응용 프로그램을 관리할 웹 서버가 필요할 수도 있습니다.이 강좌에서는 Rails 친화적인 웹 서버로 Phusion Passenger 를 사용하는 방법을 보여 줍니다.Passenger는 설치, 구성 및 유지보수가 용이하며 Nginx 또는 Apache와 함께 사용할 수 있습니다.이 강좌에서는 Ubuntu 14.04에 Passenger with Nginx를 설치합니다.
Rails 응용 프로그램을 배포하는 또 다른 방법은 1-Click Rails Installation입니다. Nginx와 Unicorn를 사용합니다. 이것은 여러 개의 요청을 동시에 처리할 수 있는 HTTP 서버입니다.
이 강좌가 끝날 때, Passenger/Nginx 웹 서버에 테스트 Rails 프로그램을 배치합니다. 이 프로그램은 도메인이나 IP 주소를 통해 접근할 수 있습니다.
첫 번째 단계. - 당신의 액체를 만드세요.
새 Ubuntu 14.04 Droplet을 만듭니다.작은 사이트의 경우 512MB의 계획을 적용하면 충분합니다.

메모리 소모가 적기 때문에 32비트 Ubuntu 이미지를 선택할 수 있습니다. (64비트 프로그램은 32비트 프로그램보다 50% 더 많은 메모리를 사용합니다.)그러나 더 큰 컴퓨터가 필요하거나 4GB 이상의 RAM으로 업그레이드할 수 있는 경우에는 64비트 버전을 선택해야 합니다.

2단계 - Sudo 사용자 추가
액체를 만들면 추가 시스템 관리 작업이 필요합니다.시스템 사용자를 만들고 서버를 보호해야 합니다.
Initial Server Setup 한 문장을 읽으세요.
이 강좌에서sudo 권한을 가진 기본 사용자를 만들어야 합니다.이 예에서, 우리는 rails 사용자를 사용할 것입니다.사용자가 다른 이름을 가지고 있다면, 다음 단계에서 정확한 경로를 사용해야 합니다.
3단계(선택 사항) - 도메인 설정
사이트가 제대로 작동하고 표시되는지 확인하려면 도메인 이름을 새 서버로 가리키도록 DNS 레코드를 설정해야 합니다.다음 링크를 통해 setting up a hostname 에서 더 많은 정보를 찾을 수 있습니다.
단, 이 단계는 IP 주소를 통해 사이트에 접근할 수 있기 때문에 선택할 수 있습니다.
4단계 - 루비 설치
소스 코드에서 Ruby를 수동으로 설치합니다.
다른 작업을 수행하기 전에 업데이트를 실행하여 설치할 모든 패키지가 최신 버전인지 확인해야 합니다.
sudo apt-get update
다음은 의존 항목을 설치합니다.따라서 설치가 가능한 한 원활해야 합니다.sudo apt-get install build-essential libssl-dev libyaml-dev libreadline-dev openssl curl git-core zlib1g-dev bison libxml2-dev libxslt1-dev libcurl4-openssl-dev nodejs libsqlite3-dev sqlite3
루비 소스 파일의 임시 폴더를 만들려면 다음과 같이 하십시오.mkdir ~/ruby
새 폴더로 이동하려면 다음과 같이 하십시오.cd ~/ruby
최신 안정적인 루비 소스 코드를 다운로드합니다.본문을 작성할 때 이것은 판본 2.1.3이다.당신은 Download Ruby 사이트에서 최신 버전을 얻을 수 있습니다.업데이트 버전을 사용할 수 있는 경우 다음 명령의 링크를 교체해야 합니다.wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.3.tar.gz
다운로드한 파일 압축 풀기:tar -xzf ruby-2.1.3.tar.gz
추출된 디렉토리 선택:cd ruby-2.1.3
구성 스크립트를 실행합니다.의존 항목을 검사하고 새 Makefile을 만들 수 있기 때문에 코드를 컴파일하는 데 필요한 절차가 포함되어 있습니다../configure
make 유틸리티를 실행하면 Makefile을 사용하여 실행 가능한 프로그램을 구축합니다.이 단계는 더 오래 걸릴 수 있습니다.make
현재, install 파라미터를 사용하여 같은 명령을 실행합니다.컴파일된 바이너리 파일을 /usr/local/bin
폴더로 복사하려고 시도합니다.이 단계는 이 디렉터리에 쓰기 위해 루트 접근 권한이 필요합니다.이것도 약간의 시간이 필요하다.sudo make install
루비는 지금 시스템에 설치해야 합니다.다음 명령을 사용하여 Ruby 버전을 인쇄해야 하는지 확인할 수 있습니다.ruby -v
마지막으로 임시 폴더를 삭제할 수 있습니다.rm -rf ~/ruby
5단계 - 승객 및 Nginx 설치
과거에 승객을 설치하는 가장 좋은 방법은 루비젬스
passenger-install-nginx-module
를 통해 유니버설 설치를 사용하는 것이다.하지만 이제 고급 패키지 도구(APT)를 사용하여 Ubuntu에 Passenger를 설치할 수 있습니다. 이것이 바로 우리가 사용할 것입니다.이런 방식을 통해 Nginx를 사용하는 승객의 설치와 업데이트 과정은 매우 간단하다.
먼저 PGP 키를 설치합니다.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
APT 소스 파일을 만들려면 다음과 같이 하십시오.sudo nano /etc/apt/sources.list.d/passenger.list
파일에 다음 행을 삽입합니다.deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main
Ctrl+x 키를 눌러 종료하고 y 를 입력하여 파일을 저장한 다음 ENTER 키를 눌러 파일 위치를 확인합니다.이 파일의 소유자와 권한을 변경하려면 다음과 같이 하십시오.
sudo chown root: /etc/apt/sources.list.d/passenger.list
sudo chmod 600 /etc/apt/sources.list.d/passenger.list
APT 캐시 업데이트:sudo apt-get update
마지막으로 Nginx를 사용하여 승객을 설치합니다.sudo apt-get install nginx-extras passenger
이 단계는 우리의 루비 버전을 구 버전으로 개작할 것이다.이 문제를 해결하려면 잘못된 루비 위치를 삭제하고 올바른 루비 바이너리 파일에 대한 새 기호 링크를 만듭니다.sudo rm /usr/bin/ruby
sudo ln -s /usr/local/bin/ruby /usr/bin/ruby
6단계 - 웹 서버 설정
Nginx 구성 파일을 열려면 다음과 같이 하십시오.
sudo nano /etc/nginx/nginx.conf
http 블록에서 다음 행을 찾습니다.# passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
# passenger_ruby /usr/bin/ruby;
둘에 대한 주석을 취소합니다.passenger\u ruby 행의 경로를 업데이트합니다.그것들은 이렇게 해야 한다.passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /usr/local/bin/ruby;
파일을 저장하고 종료합니다.7단계 - 배포
Rails 응용 프로그램이 준비되어 있으면 Rails 응용 프로그램을 배포할 수 있습니다.기존 응용 프로그램을 배치하려면 프로젝트를 서버에 업로드한 다음
/etc/nginx/sites-available/default
단계로 이동할 수 있습니다.이 강좌에서는 Droplet에 새 Rails 응용 프로그램을 직접 만듭니다.새 프로그램을 만들기 위해서는 railsgem가 필요합니다.
사용자의 홈 디렉토리로 이동(그렇지 않으면 오류 발생
No such file or directory - getcwd
–cd ~
railsgem를 설치합니다. (추가 문서 없이 빠르게 설치할 수 있습니다.)몇 분 정도 걸립니다.sudo gem install --no-rdoc --no-ri rails
이제 우리는 새로운 응용 프로그램을 만들 수 있다.우리의 예시에서, 우리는 이름testapp를 사용할 것이다.다른 이름을 사용하려면 올바른 경로를 사용하십시오.Bundler 설치를 건너뛸 것입니다. 나중에 수동으로 실행하기를 원하기 때문입니다.rails new testapp --skip-bundle
입력 디렉토리:cd testapp
이제 JavaScript 실행 환경을 설치해야 합니다.그것은therubyracergem로 설치할 수 있습니다.설치하려면 Gemfile을 엽니다.nano Gemfile
다음 행을 찾습니다.# gem 'therubyracer', platforms: :ruby
메모를 취소하려면 다음과 같이 하십시오.gem 'therubyracer', platforms: :ruby
파일을 저장하고 Bundler를 실행하려면 다음과 같이 하십시오.bundle install
기본 Nginx 구성을 비활성화해야 합니다.Nginx 구성 파일을 열려면 다음과 같이 하십시오.sudo nano /etc/nginx/sites-available/default
행 찾기:listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
다음과 같이 메모를 삭제합니다.# listen 80 default_server;
# listen [::]:80 default_server ipv6only=on;
파일을 저장합니다.이제 응용 프로그램에 Nginx 구성 파일을 만듭니다.
sudo nano /etc/nginx/sites-available/testapp
다음 server
블록을 추가합니다.설정 설명은 다음과 같습니다.server {
listen 80 default_server;
server_name www.mydomain.com;
passenger_enabled on;
passenger_app_env development;
root /home/rails/testapp/public;
}
이 파일에서, 우리는 포트 80에서 탐지, 도메인 이름 설정, Passenger, 루트 디렉터리를 새 프로젝트의 공공 디렉터리로 설정합니다.루트 행은 Rails 응용 프로그램의 업로드 위치와 일치하도록 편집할 행입니다.이 응용 프로그램에 도메인을 할당하지 않으려면 server\u 이름 행을 건너뛰거나 IP 주소를 사용할 수 있습니다.
설정을 테스트하기 위해 Rails가 페이지에 오신 것을 환영합니다.그러나 개발 환경에서 응용 프로그램을 시작할 때만 유효하다.Passenger는 기본적으로 생산 환경에서 응용 프로그램을 시작하기 때문에
passenger_app_env
옵션을 사용해서 변경해야 합니다.응용 프로그램이 생산에 들어갈 준비가 되어 있다면, 이 설정을 떠나기를 원할 것입니다.파일을 저장합니다(Ctrl+x, y, ENTER).
기호 링크를 만들려면 다음과 같이 하십시오.
sudo ln -s /etc/nginx/sites-available/testapp /etc/nginx/sites-enabled/testapp
Nginx 재부팅:sudo nginx -s reload
현재 당신의 응용 프로그램의 사이트는 방문할 수 있을 것입니다.Droplet의 도메인 또는 IP 주소로 이동합니다.http://droplet_ip_address
결과를 검증합니다.
서버에서 Rails 테스트 응용 프로그램을 볼 수 있을 것입니다.
8단계 - 정기 업데이트
루비를 업데이트하려면 이 강좌의 네 번째 단계와 같이 최신 버전을 컴파일해야 합니다.
Nginx를 사용하여 Passenger를 업데이트하려면 기본 시스템 업데이트를 실행해야 합니다.
sudo apt-get update && sudo apt-get upgrade
그러나 새 시스템 루비 버전을 사용할 수 있다면, 루비 (원본 코드에서 설치) 를 덮어쓸 수 있습니다.따라서 기존 버전의 루비를 삭제하고 루비 바이너리 파일에 대한 새 기호 링크를 만들기 위해 명령을 다시 실행해야 할 수도 있습니다.그것들은 본 강좌의 다섯 번째 단계의 끝에 열거되어 있다.업데이트 프로세스가 완료되면 웹 서버를 다시 시작해야 합니다.
sudo service nginx restart