惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
罗磊的独立博客
H
Help Net Security
I
Intezer
G
Google Developers Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
Troy Hunt's Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
U
Unit 42
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
N
News and Events Feed by Topic
J
Java Code Geeks
S
Security Affairs
T
The Blog of Author Tim Ferriss
Recent Commits to openclaw:main
Recent Commits to openclaw:main
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
D
Docker
The GitHub Blog
The GitHub Blog
F
Full Disclosure
N
News and Events Feed by Topic
Webroot Blog
Webroot Blog
S
Security @ Cisco Blogs
腾讯CDC
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
Blog — PlanetScale
Blog — PlanetScale
T
Threatpost
D
DataBreaches.Net
Recent Announcements
Recent Announcements
博客园 - 三生石上(FineUI控件)
MongoDB | Blog
MongoDB | Blog
博客园 - 【当耐特】
L
LINUX DO - 最新话题
Google Online Security Blog
Google Online Security Blog
S
Schneier on Security
S
Securelist
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Help Net Security
Help Net Security
P
Proofpoint News Feed
Project Zero
Project Zero
S
SegmentFault 最新的问题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
Google DeepMind News
Google DeepMind News
宝玉的分享
宝玉的分享
Y
Y Combinator Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 叶小钗

任峻宏的小站

Debugging Memory Leaks in a Next.js Application Troubleshooting: Resolving Devise Issue in an API-only Application How to Customize a Right-Click Menu in React Using ActionCable and React to Create a Simple Chat App 纪念左耳朵耗子 - 任峻宏的小站 Using SSE to Implement ChatGPT in Rails Refresh Myself - 任峻宏的小站 战痘 - 任峻宏的小站 逆向的能量——生活需要批评者 - 任峻宏的小站 人活着必须要有目标 - 任峻宏的小站 《第一人称单数》读书笔记 - 任峻宏的小站 卸载英雄联盟 - 任峻宏的小站 我的 2021 年总结 - 任峻宏的小站 记我的爷爷 - 任峻宏的小站 Migrate from Webpacker to Vite 从入门到放弃 《人生算法》读书笔记 - 任峻宏的小站 《不拘一格》读书笔记 - 任峻宏的小站 我为什么很少写博客 - 任峻宏的小站 我的2020年总结 - 任峻宏的小站 如何避免冲动消费? - 任峻宏的小站 《不能不去爱的两件事》读书笔记 - 任峻宏的小站 记一次搬家 - 任峻宏的小站 My blog V3.0 has been published! 解决服务器上运行 bundle install 时 killed 的问题 解决生产环境不能发送邮件的问题 - 任峻宏的小站 解决内存泄漏记录 - 任峻宏的小站 勿忘初心 - 任峻宏的小站 关于 RSpec 的一点方法总结 - 任峻宏的小站 使用 AJAX 重载部分页面 - 任峻宏的小站 Nginx 添加 SSL 支持 - 任峻宏的小站 Nginx 中进行重定向配置 - 任峻宏的小站 写在“毕业”之际 - 任峻宏的小站 JS 简单实现弹出层效果 - 任峻宏的小站 速递易工作总结及感想 - 任峻宏的小站 在 Aliyun ECS 上用 Nginx + Passenger 部署 Rails 应用时安装 Passenger 的问题 [译] Common Rails Idioms that Kill Database Performance Git 常用操作总结 - 任峻宏的小站 [译] Terminal 功夫——方便开发者的实用技巧 - 任峻宏的小站 实例方法与类方法 - 任峻宏的小站 各种报错解决集合 - 任峻宏的小站
记我的第二次部署 - 任峻宏的小站
任峻宏 · 2017-03-17 · via 任峻宏的小站

还记得第一次部署Rails应用时花了我很多时间,也踩了一些坑,那是我第一次自己独立完成一次开发,最后输入域名看到网站正常运行的那一瞬间,真的是非常欣慰的。

当时本想把整个部署过程记录下来,但一直没来得及,转眼这又是第二次部署了,有了上次的经验,这次轻松了许多,参考相关资料,我把全过程简洁记录如下:

生成ssh key 并添加到服务器: ssh-keygen -t rsa

如果已经有key, 直接显示ssh key内容: cat ~/.ssh/id_rsa.pub

以root用户登录服务器: ssh root@[ip.address]

创建部署用的用户: useradd -m deploy

将用户加入sudo群组: adduser deploy sudo

为deploy用户设置密码: passwd deploy

退出当前 SSH 链接,用 deploy 帐号重新登陆。

如果此时用deploy无法登陆,可能是没有权限,尝试

mkdir /home/deploy/.ssh
cp ~/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy.deploy /home/deploy/.ssh
chmod -R go-rwx /home/deploy/.ssh  

安装rvm

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

\curl -sSL https://get.rvm.io | bash

安装完成后启动:source ~/.rvm/scripts/rvm

安装ruby rvm use --install --default 2.3.1

apt-get update (此处阿里云服务器可能有个坑)

安装Passenger + Nginx

# Install our PGP key and add HTTPS support for APT
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt-get install -y apt-transport-https ca-certificates

# Add our APT repository

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

# Install Passenger + Nginx

sudo apt-get install -y nginx-extras passenger

(此处的安装的Passenger是作为模块编译到nginx中,所以事先不能装nginx,如果装了要先卸载,否则会出现奇怪的错误)

编辑/etc/nginx/nginx.conf

在http块中注释掉或是加入 include /etc/nginx/passenger.conf;

(此时可以用nginx -t -c /etc/nginx/nginx.conf 检查nginx配置是否正确

sudo /usr/bin/passenger-config validate-install 检查passenger的安装是否正确)

编辑/etc/nginx/passenger.conf

passenger_ruby /usr/bin/ruby;一行 改为 passenger_ruby /home/deploy/.rvm/wrappers/default/ruby;

重启Nginx

sudo service nginx restart

上传文件

mkdir -p /var/xxx/
cd xxx
git clone xxx
bundle install
rails db:create db:migrate
rails assets:precompile

修改nginx配置

删除原有的默认网站配置: rm /etc/nginx/sites-enabled/default

新建网站配置: touch /etc/nginx/sites-enabled/example.com.conf

内容:

server {
    listen 80 default;
    server_name example.com; # 这里填写你真实域名
    root /var/www/example.com/current/public; #网站目录
    passenger_enabled on;
}

最后重启nginx,Bingo!

当然这其中还有很多大大小小的坑,欢迎交流。