小白在部署ROR网站的遇到问题:
1. 无法免密登录
添加用户后,利用公钥免密登录。
在 /home/deploy下
添加mkdir ~/. ssh
;
执行 touch ~/.ssh/authorized_keys
;
回到本机电脑把公钥印出来,执行 cat ~/.ssh/id_rsa.pub
回到远端服务器继续:
nano ~/.ssh/authorized_keys
把公钥贴上去;
chmod 700 ~/.ssh
;
chmod 644 ~/.ssh/authorized_keys
;
这样就好了,本机可以直接 ssh deploy@<主机IP位置>,无须输入密码。
但自己按照这样的操作,每次都是失败,这是为什么呢?
用iterm登录 服务器,用 ls-al 命令发现 文件中 有一个 home 文件 。
上述的一系列操作都是在这个文件夹中进行的。
而这个文件夹是我自己创建的。
这就是问题所在。
home
应该是用系统自带的
正常的路径应该是 cd /home
从该文件夹中应该是可以看到所添加的用户 包括/deploy。
解决方法:
删除自建的home文件。
到cd/home/deploy
下去按照上述步骤进行。
最后可以deploy可以免密登录。
2. 免密后,使用 cap production deploy:check时会报错
Google 后 ,在github 中 找到一个解决办法,就是在 deploy.rb
中添加set :tmp_dir, "/home/deploy/tmp"
使用后不再报错。
具体原因不知。自己认为是这样的:部署会产生临时文件,这个语句设置了临时文件的存储处。
3. cap production deploy
失败,用cap production deploy:check
是正常的,但会在 deploy/usefile下会循环生成 home/deploy/userfile
。
解决办法:
检查deploy.rb,发现在
image 缺少/
,导致 部署时会循环部署,无法部署到正确的文件夹中。
4. 部署上线后,设置nginx后无法正确加载档案,导致显示异常。
[http://luciaca.cn/2018/02/12/static-files-are-not-loaded-properly-when-depolyed-with-nginx/]
这篇文章写的很详细。
我学到的解决办法是:遇到此类问题,用chrome的检查功能,到console中去查看问题所在,在去google 解决问题。
而问题多数是出在 部署的文档中。
这些问题我找小伙伴解决起来是很快,但足足困扰了我一个多月时间。老早就好找人帮忙啦。
再次郑重感谢lucia小姐姐,以更认真的学习编程来报答。
网友评论