GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS Linux に Ruby + Passenger + Nginx をデプロイする方法

技術的なチュートリアルに入る前に、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
Cent OS
  1. CentOSLinuxでブートストラップを解除する方法

  2. Rocky Linux /Centos8でLetsencryptを使用してNginxを保護する方法

  3. Rocky Linux / Alma Linux /CentOS8にErlangをインストールする方法

  1. RHEL 8 /CentOS8にrubyをインストールする方法

  2. CentOS8LinuxにVirtualBoxをインストールする方法

  3. CentOS6にLinuxDashをインストールする方法

  1. CentOS8LinuxにSkypeをインストールする方法

  2. CentOS7にNginxをインストールする方法

  3. CentOS7にMattermostをデプロイする方法