技術的なチュートリアルに入る前に、CentOS Linux でのこの Ruby + Passenger + Nginx ガイドに含まれるテクノロジを確認しましょう。
Ruby は、美しくエレガントなシンプルな構文を維持しながら、簡単で自然なコードの記述と読み取りに重点を置いた、機敏で動的なオープンソース言語です。
Passenger は、Ruby 言語で記述されたアプリをサーバー化するために使用されるアプリ サーバーです。 ruby アプリをオンラインにするには、Passenger を Web サーバーに統合する必要があります。この場合、最愛の Nginx です。
このチュートリアルは CentOS 6.x 64 ビットに基づいていますが、RHEL 6.x でも動作するはずです。
要件
必要な開発ツールをインストールしましょう
yum install gcc g++ make automake autoconf curl curl-devel openssl-devel zlib-devel httpd-devel apr-devel apr-util pygpgme yum groupinstall 'Development Tools'
カーネルと Selinux の要件
SELinux が有効になっている場合、Passenger にはカーネル>=2.6.39 が必要です。カーネルが十分に新しくない場合は、Selinux を無効にすることができます:
nano -w /etc/selinux/config
次に、SELINUX=disabled を設定します サーバーを再起動してください。
または、dnf を使用してカーネルを更新することもできます
dnf update kernel*
CentOS に Ruby + Passenger + Nginx をインストールするにはどうすればよいですか?
Ruby、Passenger をインストールし、Passenger を Nginx に統合することはまったく難しいことではありませんが、慎重に手順に従い、何かが表示された場合はすべてのエラーを分析する必要があります。
Ruby のインストール
RVM と Ruby 2.2.2 をインストールして、次のコマンドを実行します:
curl -L https://get.rvm.io | bash -s stable source /etc/profile.d/rvm.sh rvm install 2.2.2 rvm use 2.2.2 --default
Ruby のインストールを確認してください
Ruby のバージョンを確認してください。2.2.2 である必要があります。
[[email protected]:~]which ruby /usr/local/rvm/rubies/ruby-2.2.2/bin/ruby [[email protected]:~]ruby --version ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]
パッセンジャーをインストール
gem install passenger
それでもうまくいかない、またはエラーが表示される場合は、これを試してください:
/usr/local/rvm/rubies/ruby-2.2.2/bin/gem install passenger
Nginx + Passenger モジュールのインストール
wget http://nginx.org/download/nginx-1.11.6.tar.gz tar -xvpzf nginx-1.11.6.tar.gz cd nginx-1.11.6
Passenger 内の Nginx dir を取得し、グローバル変数を設定しましょう。これは、Nginx に Passenger サポートを追加するために必要です。
次のコマンドを使用して、パッセンジャー インストール内の Nginx ソース ディレクトリを確認してください:
passenger-config about nginx-addon-dir
次に、以下のように設定します。私の場合、ソース ディレクトリは /src/nginx_module でした。
PASSENGER_NGINX_DIR=`passenger-config --root`/src/nginx_module
/tmp ディレクトリに対する正しい権限があることを確認してください。そうしないと、パッセンジャーがコンパイルされません:
chmod 1777 /tmp -v
ここで Nginx を構成し、configure 行の最後にこれを追加します
--add-module=$PASSENGER_NGINX_DIR
完全なコマンドは次のようになります。独自の必要な Nginx モジュールを追加し、独自のニーズに合わせてパスを構成してください。これは単なる一般的な例です:
./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --with-http_geoip_module --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module --with-cc-opt='-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --add-module=$PASSENGER_NGINX_DIR
次に、make を実行して make install
make make install
パッセンジャー Nginx モジュールの構成
nano -w /etc/nginx/conf.d/passenger.conf
これを内部に貼り付けます:
passenger_root /usr/local/rvm/gems/ruby-2.2.2/gems/passenger-5.0.30; passenger_ruby /usr/local/rvm/rubies/ruby-2.2.2/bin/ruby; passenger_instance_registry_dir /var/run/passenger-instreg;
Nginx 仮想ホスト内で Rails と Passenger を有効にする
仮想ホスト構成内に次の 2 行を追加します。
passenger_enabled on; rails_env production;
次のようになります:
### yourdomain.com server { access_log off; log_not_found off; error_log logs/yourdomain.com-error_log info; listen 80; server_name yourdomain.com www.yourdomain.com; # activate passenger & rails support passenger_enabled on; rails_env production;
Nginx を再起動して変更を適用します:
service nginx restart
結論
これですべてです。この時点で、Ruby、Passenger、および Nginx が完全に機能するはずです。このチュートリアルで提供されている手順に従ってエラーや問題が発生した場合はお知らせください。
CentOS Linux に Ruby + Passenger + Nginx をデプロイする方法 最終変更日:2017 年 2 月 7 日 Esteban Borges