• Ruby On Rails +CentOS 7.9 环境搭建Web应用程序 教程


    最近接触了一个项目是使用Ruby 语言开发的

    首次接触Ruby 语言开发的Web 应用。 

    使用Vmware WorkStation 搭建了一台 CentOS 7.9  然后在这台虚拟机进行环境的搭建:  基本成功跑通。

    为了让各位兄弟少踩坑, 特地写一篇文章 记录下 整个踩坑的经过和历程。

    准备工作:

    一台Linux 虚拟机  CentOS 7.9 

    [root@localhost ~]# cat /etc/redhat-release
    CentOS Linux release 7.9.2009 (Core)  配置(双核, 2G内存)

    1.服务器 环境  Centos  7  最小化安装 后 

    通过设置网卡配置文件: 定义一下内网IP  我这里使用的IP为 :192.168.4.200

    宿主机  物理电脑的IP为: 192.168.4.74 

    VM 的网络和 PC机的网络 通过桥接的方式连通:

    Centos 7 更改yum源: 

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

    先让两台机可以互通。

    2. 安装工具Xshell 软件   进行管理 虚拟机VM  测试环境

    保证 本地主机 192.168.4.74 和 192.168.4.200  互相可以ping通 的情况下  开始搭建:

    具体搭建步骤如下 :

    借鉴资料,需要具备的一些基础知识:  ruby On rails  目录结构:

    https://www.cnblogs.com/hyshareex/p/10218902.html

    ruby  gem  , 还有rails 之间的关系详解: https://www.cnblogs.com/hyshareex/p/10219309.html

    Ruby-On-Rails 生成指定版本的Rails 项目  : https://www.cnblogs.com/hyshareex/p/10218833.html

    1. 先安装 rvm  环境 (rvm 简称  ruby 虚拟机环境  ruby  

    先将VM 的环境的yum 源更换为aliyun 的源或者163 网易的yum源,

    安装 curl

    yum -y install curl 

     安装RVM 

    安装之前先导入key:

    sudo gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

    有可能会报错, 报错会提示要导入 一些文件

     sudo curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -

    sudo curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -

    先执行上面的  命令 导入相关的gpg2  文件

    执行 安装命令   sudo curl -L get.rvm.io | bash -s stable  --ruby

    安装完之后 再进行  source 一下 更新下环境变量的配置文件:

    sudo source ~/.bashrc
    sudo source ~/.bash_profile
    sudo source /etc/profile.d/rvm.sh

    sudo rvm install 2.7.2

     安装完成之后   find 一下 rvm    执行命令  查看rvm

    find / -name rvm -print

    下载rvm的依赖

     rvm   requirements

    查看rvm库中已知的ruby 版本

    rvm list known

     根据查看的版本号,选择需要的版本。

    安装需要的ruby版本

    我这边安装的是ruby 2.7.2

    rvm install 2.7.2

    使用指定版本的ruby 

    rvm use ruby 2.7.2

     设置默认版本

    rvm use 2.7.2 --default

    查看ruby 版本

    ruby  -v

     gem  install 相关的组件

    下面是我安装时遇到的坑

    Gem  install 报错 error

     使用rvm  安装完成 ruby 后  安装完成rvm 环境后  gem 也就默认安装完成了,

    ruby  -v   查看ruby 版本   gem  -v 查看 gem 的版本 

    gem  sources  --add   https://gems.ruby-china.com/ --remove https://rubygems.org/

    添加  gem的 源  为ruby-china  .

    安装 Bundler

    gem install bundler

    安装 rails 环境 

    gem  install  rails

     安装完成截图

    Bundler  install 报错:

    根据提示是由于缺少 mysql2  的组件。

    Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    An error occurred while installing mysql2 (0.5.3), and Bundler

    cannot continue.

    Make sure that `gem install mysql2 -v '0.5.3' --source

     根据报错 提示 需要安装  gem install  mysql2 -v '0.5.3'

    安装mysql2  报错, 是因为没有安装必要的mysql库导致。

    解决方法 :  安装mysql-devel 的插件进行解决

    yum -y install mysql-devel

    yum 将  mysql-devel   给安装上。

    gem install mysql2

     将以上服务都安装好之后 再bundler install  

    然后 通过 gitlab  将代码 git pull 到本地   然后 进行部署

    rails的 代码 使用tar 命令 解压缩 

    tar -zxvf     aaa.tar.gz   -C /root/aaa/ 

    cd /root/aaa/  进入到 代码路径  进行启动 

    rails server   启动成功截图:

     至此 rails 项目部署完成。

    默认Rails 使用sqlite3 创建名 blog的应用

    rails new blog

    用mysql 创建名为blog的应用

    rails new blog -d mysql

    用postgreSQL 创建名为blog的应用

    rails new blog -d postgresql

    如果为mysql和postgreSQL 配置了用户名和密码, 需要先配置config/database.yml 里面的用户名和密码,然后再运行下面的命令创建数据库文件

    rails db:create

    如果运行的是rails项目里的生产环境

    命令为:

    RAILS_ENV=production rails s

    在部署的目录下跑一下export命令  将数据库mysql的密码写进环境变量中

    export A_DATABASE_PASSWORD="XXXXXX"

    如果配置了 Rails 程序连接aliyun 的 RDS 需要这样配置:

    备注:

    Gemfile 配置文件 :

    ruby '2.7.1'

    gem 'rails', '~> 6.1.4', '>= 6.1.4.1'

    gem 'mysql2', '~> 0.5'

    gem 'puma', '~> 5.0'

    gem 'sass-rails', '>= 6'

    gem 'webpacker', '~> 5.0'

    gem 'turbolinks', '~> 5'

    gem 'jbuilder', '~> 2.7'

    博文阅读密码felix
  • 相关阅读:
    代码编写原则
    换个角度看世界
    不使用nib 文件时,需要改变一个view 的大小时,需要为viewcontroller添加loadView方法
    建议:一般地,建议使用xcode 4.3开发app 而不是使用xcode4.5
    iOS 5解决Could not instantiate class named NSLayoutConstraint问题
    访问对象方法比较
    让一个view 或者控件不支持拖拽
    Java Map遍历方式的选择
    Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)
    java List集合记录 ArrayList和LinkedList的区别
  • 原文地址:https://www.cnblogs.com/Enzoo/p/15634515.html
Copyright © 2020-2023  润新知