时隔大半年,终于填了这个坑……
去年10月读完《苏东坡传》的时候,就想着做个小的诗词网站,中间因为懒,拖拖拉拉了很久,时隔大半年,算是马马虎虎填了坑,想着,页面丑是丑了些,呃,不管了,先部署了,让它来到这个世界再说。
因为钟情陶潜的《归去来兮辞》,就厚脸皮拿来做了title, 附上站点:归去来兮
这里记录下用 Nginx + passenger 部署时踩的坑。
背景:
Ubuntu 1804, 参考官网给的Installing Passenger + Nginx on Ubuntu 18.04 安装了 Nginx + passenger。
Failed to parse PID
nginx restart 后,执行:
sudo service nginx status
看到报错,显示:
nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
参考 nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument, 貌似是Ubuntu的一个bug。
commits 部分给到的解决方法:
mkdir /etc/systemd/system/nginx.service.d
printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf
systemctl daemon-reload
「执行 最后一步 daemon-reload时需要输入密码,输入服务器登陆密码即可。」
重启nginx:
sudo service nginx restart
sudo service nginx status
OK.
cannot load such file – bundler/setup
使用 Capistrano deploy 之后,访问网站,报错 500,查看nginx 日志,看到如下的报错信息:
The application encountered the following error: cannot load such file -- bundler/setup (LoadError)
但是 bundler 明明已经安装好,Google 半天,找到的解决方法,有些一言难尽。
后面想了想,安装 passenger 的时候需要设置 passenger_ruby,而我是用 rbenv 安装的ruby,大概是这里出了问题,bingo!
终端执行
which ruby
, 复制地址打开
/etc/nginx/conf.d/mod-http-passenger.conf
文件找到
passenger_ruby /usr/bin/passenger_free_ruby;
, 修改 passenger_ruby 为正确的ruby 路径。
重启 nginx,再次访问,OK!
参考
nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument