以下内容默认针对的是ubuntu16.04LTS版本进行部署

1基本设置

#基本ssh登录
ssh root@47.94.236.48

#添加deploy用户并添加权限
sudo adduser deploy
sudo adduser deploy sudo
su deploy

#使用ssh-copy-id进行登录
brew install ssh-copy-id #安装ssh-copy-id,更新则为 brew upgrade ssh-copy-id
ssh-copy-id deploy@47.94.236.48 #在mac端操作

#更改用户密码
passwd deploy

#其他用法
useradd -m -s /bin/bash deploy #添加deploy用户,并且在/home目录下面建立deploy文件夹
gpasswd -d deploy sudo #从sudo组中删除deploy用户
userdel -r deploy #删除deploy用户

2更新和安装基本依赖

#基本安装和依赖
su deploy
sudo apt-get update
sudo apt-get install -y git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev \
libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev nodejs

3rvm安装和使用

4mysql安装和使用

5安装nginx

6配置nginx

#使用nginx结合rails进行配置

#/etc/nginx/nginx.conf中添加下面两行到http中
#这会打开 Passenger 支持,并且指定使用之前用 rvm 安装的 ruby 版本
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /home/deploy/.rvm/wrappers/default/ruby;

#删除和新建配置
rm /etc/nginx/sites-enabled/default
touch /etc/nginx/sites-enabled/example.com.conf

#example.com.conf添加如下代码
server {
    listen 80 default;
    server_name example.com; # 这里填写你真实域名
    root /var/www/example.com/current/public; #current是项目名称
    passenger_enabled on;
    passenger_app_env production;#模式就是production,这里可以省略
}

6系统启动需要添加内容

#建立文件夹
sudo mkdir /var/www/example.com
#设定文件夹的归属
sudo chown -R deploy /var/www/example.com
#安装gem
bundle
#生成production环境下的数据库
RAILS_ENV=production rails db:create db:migrate
#样式编译
rails assets:precompile
#添加key到config/sercret.yml的production中
rails secret RAILS_ENV=production
#项目重新启动
sudo service nginx reload
sudo service nginx restart

#nginx log 访问日志
/var/log/nginx

出现的问题以及解决

#问题1:输入sudo 提示unable to resolve host mylinux
解决:vim /etc/hosts, 127.0.0.1 localhost 后面添加主机名称

#问题2:Can't connect to local MySQL server through socket '/tmp/mysql.sock'
解决:删除config/database.yml中的socket语句

#问题3:47.94.236.48找不到页面
解决:需要在routes.rb中设置root

results matching ""

    No results matching ""