如何解决Phusion 乘客:无法在实例注册表目录 /tmp
我目前将 Rails 6 应用程序部署到 Ubuntu 20.04 上的 EC2 实例。我使用 Phusion Passenger 和 Nginx 部署了 Rails 应用程序。当我尝试访问 ec2 实例时出现以下错误。
无法启动 Phusion Passenger 看门狗,因为它遇到了 启动时出现以下错误:无法创建子目录 在实例注册表目录 /tmp 中:没有这样的文件或目录 (errno=2) (-1: 未知错误)
似乎无法写入 /tmp
文件。我尝试更改 /tmp
目录的权限,但这似乎不起作用。当前权限如下。
ubuntu@ip-xxxxxxxxxx:/var/www/tyrion$ ls -l
total 72
-rw-r--r-- 1 www-data www-data 1739 Jan 18 17:41 Gemfile
-rw-r--r-- 1 www-data www-data 5779 Jan 18 17:41 Gemfile.lock
-rw-r--r-- 1 www-data www-data 31 Jan 18 17:41 PULL_REQUEST_TEMPLATE.md
-rw-r--r-- 1 www-data www-data 121 Jan 18 17:41 README.md
-rw-r--r-- 1 www-data www-data 227 Jan 18 17:41 Rakefile
drwxr-xr-x 9 www-data www-data 4096 Jan 16 20:43 app
drwxr-xr-x 2 www-data www-data 4096 Jan 18 17:41 bin
drwxr-xr-x 5 www-data www-data 4096 Jan 18 17:42 config
-rw-r--r-- 1 www-data www-data 130 Jan 18 17:41 config.ru
drwxr-xr-x 3 www-data www-data 4096 Jan 18 17:41 db
drwxr-xr-x 4 www-data www-data 4096 Jan 15 21:30 lib
drwxr-xr-x 2 www-data www-data 4096 Jan 18 17:41 log
drwxr-xr-x 2 www-data www-data 4096 Jan 18 17:41 public
drwxr-xr-x 2 www-data www-data 4096 Jan 18 17:41 storage
drwxr-xr-x 8 www-data www-data 4096 Jan 18 17:41 test
drwxr-xr-x 2 www-data www-data 4096 Jan 18 18:28 tmp
drwxr-xr-x 2 www-data www-data 4096 Jan 18 17:41 vendor
注意到 tmp
的权限允许它 w
访问目录。这很奇怪,因为在 Phusion Passenger according to the documentation passenger_instance_registry_dir
的配置中默认为 /tmp
。因此,不需要声明 passenger_instance_registry_dir /tmp
,我什至尝试在配置中添加这一行但没有成功。
这是我的乘客配置:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/tyrion/public;
server_name _;
passenger_enabled on;
passenger_ruby /home/ubuntu/.rvm/gems/ruby-2.7.0/wrappers/ruby;
}
当我运行 sudo passenger-status
时,我也会得到以下结果。
错误:Phusion 乘客似乎没有运行。如果你确定 它正在运行,那么这个问题的原因可能是:
- 您使用 Apache 的PassengerInstanceRegistryDir 选项自定义了实例注册表目录,Nginx 的 passenger_instance_registry_dir 选项,或 Phusion 乘客 独立的 --instance-registry-dir 命令行参数。如果是这样的话, 请将环境变量 PASSENGER_INSTANCE_REGISTRY_DIR 设置为 该目录并再次运行乘客状态。
- 实例目录已被操作系统后台服务删除。请设置不同的实例注册表目录 使用 Apache 的PassengerInstanceRegistryDir 选项,Nginx 的 passenger_instance_registry_dir 选项,或 Phusion 乘客 独立的 --instance-registry-dir 命令行参数。
这让我很困惑,因为 /tmp
是默认的注册表目录。有关如何解决此问题的任何想法?
我删除了 /tmp
创建了一个新的并重新启动了 sudo service Nginx restart
但这也不起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。