ubuntu 安装 ruby on rails 生产环境

1.创建deploy 用户
sudo adduser deploy
sudo usermod -aG sudo deploy
echo “deploy ALL=(ALL:ALL) ALL” >> /etc/sudoers
su - deploy

服务器上执行,全部直接回车

ssh-keygen -t rsa
vi /home/deploy/.ssh/authorized_keys
chmod 644 /home/deploy/.ssh/authorized_keys

更新
sudo apt update
sudo apt install -y build-essential libssl-dev libreadline-dev zlib1g-dev libffi-dev libyaml-dev

四、使用rbenv安装Ruby

服务器上

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc

mkdir -p "$(rbenv root)"/plugins
$ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ source ~/.bashrc

看一下,现在可安装的Ruby版本

$ rbenv install -l

解决rbenv安装慢问题,这里可以使用一个"安道"写的rbenv插件,让rbenv直接使用中国的镜像站点下载

$ git clone https://github.com/andorchen/rbenv-china-mirror.git “$(rbenv root)”/plugins/rbenv-china-mirror

安装

$ rbenv install 3.1.6
ruyb -v

编辑

vim ~/.profile
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
$ gem sources -l

确保只有 gems.ruby-china.com

接着安装 bundler gem

$ gem install bundler

同样使用gems.ruby-china.com

$ bundle config mirror.https://rubygems.org https://gems.ruby-china.com

安装PG
https://www.postgresql.org/download/linux/ubuntu/

sudo systemctl start postgresql
sudo systemctl enable postgresql

PostgreSQL 12配置文件是/var/lib/pgsql/12/data/postgresql.conf这个位置

接下来是对数据库的操作,首先使用默认超级用户登录进入命令行

$ sudo -u postgres psql

新建deploy用户:

postgres=# create user deploy CREATEDB password ‘用户密码’;

删除用户(可选):

postgres=# drop user 用户名;

创建数据库(可选)

postgres=# create database 数据库名;

– 切换到 shops_production 数据库
\c shops_production;

– 授予 deploy 用户对数据库的 CONNECT 权限(如果尚未授予)
GRANT CONNECT ON DATABASE shops_production TO deploy;

– 授予 deploy 用户对 public schema 的 CREATE 和 USAGE 权限
GRANT CREATE, USAGE ON SCHEMA public TO deploy;

– 授予 deploy 用户对所有现有表和序列的权限
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO deploy;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO deploy;

– 设置默认权限,以便新创建的对象也自动有这些权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO deploy;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE, SELECT ON SEQUENCES TO
deploy;

如果用户没有这个数据库的权限

ALTER DATABASE 数据库名称 OWNER TO 用户名称;
GRANT ALL PRIVILEGES ON DATABASE 数据库名称 TO 用户名称;

删除数据库(可选)

postgres=# c 数据库名;

退出命令行

postgres=# \q

安装nginx
sudo apt install nginx
sudo systemctl start nginx
sudo systemctl enable nginx

cd /var/www/shops/shared/config
余下参考:
https://blog.csdn.net/zaibi1547/article/details/103789765?spm=1001.2014.3001.5506

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐