GNU/Linux >> Linux の 問題 >  >> Linux

MySQL、Nginx、Passenger、SSL を使用して Ubuntu 20.04 に Ruby On Rails をインストールする方法

MySQL、Nginx、Passenger、SSL を使用して Ubuntu 20.04 に Ruby On Rails をインストールする方法。 Ruby は、シンプルさと生産性を優先する動的なオープンソース プログラミング言語です。自然に読み書きできる簡単な構文が特徴です。 Ruby on Rails は、ソフトウェア開発者の生産性を高めるために作成された、広く使用されている Ruby 用の Web フレームワークです。

ニンクス HTTP トランザクションを提供し、静的ファイルを提供できる Web サーバーですが、Ruby アプリケーションを直接実行することはできません。そのため、無料のオープンソース Web アプリケーション サーバーである Phusion Passenger を使用します。 HTTP リクエストを処理し、プロセスとリソースを監視および管理し、管理、監視、および問題の診断を可能にするように設計されています。

このガイドでは、Passenger をセットアップして Nginx による Ruby on Rails Web アプリケーションの提供を支援し、Let’sEncrypt SSL をインストールしてアプリケーションを保護します。

前提条件

<オール>
  • Ubuntu 20.04 を搭載したサーバー
  • sudo 権限を持つサーバーまたはユーザーへのルート アクセス
  • Linux ターミナル コマンドの使用に関する中級レベルの知識
  • サーバーの外部 IP を指すドメイン名
  • サーバーの初期設定

    サーバー パッケージを最新のものに更新してください。

    sudo apt update
    sudo apt dist-upgrade -y

    Rbenv を使用して Ruby on Rails をインストールする

    セットアップがうまくいくことを確認するために、Node.js と Yarn リポジトリを追加することから始めます。

    curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
    echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

    依存関係をインストール

    これで、すべての依存関係をインストールできます。

    sudo apt-get update
    sudo apt-get install git-core zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs yarn

    Rbenv と Rbenv Build をインストール

    Rbenv は、Ruby のインストールに使用される Ruby バージョン マネージャーです。

    ここで Rbenv と Rbenv-build をインストールします。

    Rbenv をインストール

    cd
    git clone https://github.com/rbenv/rbenv.git ~/.rbenv
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(rbenv init -)"' >> ~/.bashrc
    exec $SHELL

    Rbenv ビルドのインストール

    git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
    echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
    exec $SHELL

    Ruby バージョンの構成

    これで、デフォルトおよびグローバル Ruby バージョンをセットアップできます。

    rbenv install 3.1.1
    rbenv global 3.1.1

    次のコマンドを使用して Ruby のバージョンを確認します。

    ruby -v

    ここで、バンドラーをインストールする必要があります。

    gem install bundler

    レールをインストールする

    gem install rails -v 7.0.2.3

    rails コマンドを実行可能にします。

    rbenv rehash

    Rails のバージョンを確認してください。

    rails -v

    MySQL をインストール

    このチュートリアルでは、データベースに MySQL を使用します。

    sudo apt-get install mysql-server mysql-client libmysqlclient-dev
    sudo mysql_secure_installation

    必要に応じて、MySQL で新しいユーザーとパスワードを構成できます。

    Rails を MySQL 用に構成する

    Rails 用の MySQL アダプターをインストールします

    gem install mysql2

    Passenger と Nginx をインストール

    次に、Nginx をインストールして Passenger を構成します。

    Nginx をインストールします。

    sudo apt -y install nginx

    Passenger をインストールします。

    sudo apt install -y dirmngr gnupg apt-transport-https ca-certificates
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7

    Passenger APY リポジトリを追加します。

    sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger focal main > /etc/apt/sources.list.d/passenger.list'

    Passenger を更新してインストールします。

    sudo apt update
    sudo apt install -y libnginx-mod-http-passenger

    これで、Nginx インストールの conf.d ディレクトリ内に新しいパッセンジャ構成が追加されます。

    Passenger モジュールのインストールを有効にするために、Nginx を再起動してください。

    sudo service nginx start

    Rbenv で Passenger を構成する

    Passenger 構成ファイルを編集します。

    sudo nano /etc/nginx/conf.d/mod-http-passenger.conf

    passenger_root で始まる行をコメントアウトします と passenger_ruby .

    次の行をファイルに追加します。

    ユーザー名を置き換えます Rbenv のインストールに使用したユーザー名で、passenger_ruby オプション パスに入力します。

    passenger_ruby /home/example_user/.rbenv/shims/ruby;
    passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;

    ファイルを保存して終了します。

    Nginx を再起動します。

    sudo service nginx restart

    新しい Rails プロジェクトを作成

    Rails プロジェクト用の新しいディレクトリを作成するか、任意のディレクトリに移動します。ここでは、デフォルトの Nginx Web ディレクトリに移動しています。

    cd /var/www

    Rails プロジェクトを作成します。

    rails new project-name -d mysql
    cd project-name

    データベース構成を編集してデータベースに接続します。

    sudo nano config/database.yml

    ユーザー名を置き換えます あなたの username で 、パスワード あなたの password

    database.yml を確認してください このように見えます

    default: &default
      adapter: mysql2
      encoding: utf8
      pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
      username: username
      password: password
      host: locahost
      database: database_name
    
    development: 
      <<: *default 
    
    test: 
      <<: *default
    
    production:
      <<: *default

    Rails データベースを初期化します。

    rake db:create

    Rails を再起動します。

    rails restart

    Ruby on Rails で Nginx を構成する

    デフォルトの Nginx 構成を削除します。

    sudo rm -rf /etc/nginx/sites-available/default
    sudo rm -rf /etc/nginx/sites-enabled/default

    Ruby アプリケーションの新しい構成を作成します

    sudo nano /etc/nginx/sites-available/domainname.conf

    この新しい構成設定を貼り付けて Ctrl+X を押します 続いて Y ファイルを保存する

    server {
        listen 80 default_server;
        server_name domainname.com;
    
        passenger_enabled on;
        passenger_app_env production;
    
        root /var/www/html/project-name/public;
    }

    新しい構成を有効にする

    sudo ln -s /etc/nginx/sites-available/domainname.conf /etc/nginx/sites-enabled/domainname.conf

    Nginx の構成を検証し、nginx を再起動します

    sudo nginx -t
    sudo service nginx restart

    Let’sEncrypt SSL をインストール

    Certbot を使用して、ドメインに無料の Let’s Encrypt SSL 証明書をインストールできます。

    sudo apt install python3-certbot-nginx

    次のコマンドを実行して、証明書をインストールし、HTTPS へのリダイレクトを自動的に構成します。

    sudo certbot --nginx --redirect --agree-tos --no-eff-email -m [email protected] -d domain.com -d www.domain.com

    これで SSL 証明書を受け取り、自動的に構成されます。

    自動更新を設定します。

    sudo certbot renew --dry-run

    これで、Ruby on Rails がインストールされ、Passenger と Nginx で構成され、MySQL データベースに接続されました。

    ブラウザでドメイン名にアクセスすると、Ruby on Rails のウェルカム ページが表示されます。

    結論

    これで、MySQL を使用して Ubuntu 20.04 に Ruby On Rails をインストールし、Passenger を使用して Nginx を構成し、Let’sEncrypt SSL を構成する方法を学習しました。

    御時間ありがとうございます。問題やフィードバックに直面した場合は、下にコメントを残してください。


    Linux
    1. Ubuntu11.10にPHP5とMySQLを使用してNginxをインストールする方法

    2. Ubuntu14.04にNginxでElggをインストールする方法

    3. Ubuntu18.04にNginxでJoomlaをインストールする方法

    1. Ubuntu16.04にNginxをインストールする方法

    2. Ubuntu18.04にNginxでElggをインストールする方法

    3. SSL を使用して Ubuntu 22.04 に Elasticsearch をインストールする方法

    1. Ubuntu18.04にNginxでWordPressをインストールする方法

    2. Ubuntu16.04でPostgreSQLを使用してRubyonRails(RoR)をインストールする方法

    3. Ubuntu18.04LTSにNginxを使用してSeafileをインストールする方法