Phusion 乘客:无法在实例注册表目录 /tmp

如何解决Phusion 乘客:无法在实例注册表目录 /tmp

我目前将 Rails 6 应用程序部署到 Ubuntu 20.04 上的 EC2 实例。我使用 Phusion PassengerNginx 部署了 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 乘客似乎没有运行。如果你确定 它正在运行,那么这个问题的原因可能是:

  1. 您使用 Apache 的PassengerInstanceRegistryDir 选项自定义了实例注册表目录,Nginx 的 passenger_instance_registry_dir 选项,或 Phusion 乘客 独立的 --instance-registry-dir 命令行参数。如果是这样的话, 请将环境变量 PASSENGER_INSTANCE_REGISTRY_DIR 设置为 该目录并再次运行乘客状态。
  2. 实例目录已被操作系统后台服务删除。请设置不同的实例注册表目录 使用 Apache 的PassengerInstanceRegistryDir 选项,Nginx 的 passenger_instance_registry_dir 选项,或 Phusion 乘客 独立的 --instance-registry-dir 命令行参数。

这让我很困惑,因为 /tmp认的注册表目录。有关如何解决此问题的任何想法?

删除/tmp 创建了一个新的并重新启动了 sudo service Nginx restart 但这也不起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?