正确的乘客 + Apache 权限来修复错误“没有这样的文件或目录 - config/environment.rb”

aco*_*rth 6 ruby-on-rails phusion-passenger apache-2.2

由于乘客声称的一个明显常见问题,我遇到了乘客无法启动的问题:没有这样的文件或目录 - config/environment.rb。

我已经在网络上搜索了高低,这似乎是一个与权限相关的问题。据我了解,Passenger 作为 config.ru 和 config/environment.rb 文件的所有者运行。在我的情况下,这个所有者是“管理员”。我正在管理员用户的主目录中运行应用程序根目录。所以,我相信我有使用设置正确的权限: sudo chown -R admin:admin /home/admin/wwwsudo chmod -R 755 /home/admin/www

应用根目录位于:/home/admin/www/app

这是我的虚拟服务器配置文件:

 <VirtualHost *:80>
    ServerName track.example.com
    DocumentRoot /home/admin/www/app/current/public
    <Directory /home/admin/www/app/current/public>
    Options FollowSymLinks
    AllowOverride none
    Order allow,deny
    Allow from all
    </Directory>
    PassengerResolveSymlinksInDocumentRoot on
    RailsBaseURI /
    PassengerAppRoot /home/admin/www/app
    RailsEnv production   
    ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel debug
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我正在运行 Ubuntu 12.0.4、Rails 3.2.8、Ruby 1.9.3、Passenger 3.0.18、Apache 2

谢谢你的帮助。

小智 0

Passenger 是 Apache 的一个模块,作为 Apache 进程的一部分运行。这意味着 Apache 用户需要拥有该项目的权限。来自Apache 的 Passenger 文档

\n\n
\n

您可能还需要调整文件/文件夹权限。确保 Apache 可以读取和执行以下文件夹:

\n\n
* this public folder.\n\n* the application\xe2\x80\x99s config folder.\n\n* all parent folders. That is, /webapps/rackapp and /webapps must also be readable and executable by Apache.\n
Run Code Online (Sandbox Code Playgroud)\n
\n