Ruby on rails 轨道部署:乘客赢得';我不读公共目录
我正在尝试将rails应用程序部署到RedHat服务器(rvm、apache)。我没有根帐户,但服务器主机试图让我通过sudo和acl尽可能多地执行操作。他们不为我提供应用程序用户,但为所有用户安装rvm和乘客。所以我尝试让应用程序以apache用户的身份运行。我熟悉部署rails应用程序。这些都是先决条件 问题是,乘客不会读取公共目录。因此,没有设置必要的环境变量。当我直接在ruby文件中设置它们以进行调试时,应用程序运行,但仍然没有在public/assets下预编译的资产 我发现rails目录属于我的用户,所以我让他们将其更正为用户/组apache:apache 当我重新启动apache(sudo apachectl restart)时,我得到: 及 这可能是乘客不提供公共目录(rails\u app/public)文件的原因吗 提前多谢了,Ruby on rails 轨道部署:乘客赢得';我不读公共目录,ruby-on-rails,apache,passenger,Ruby On Rails,Apache,Passenger,我正在尝试将rails应用程序部署到RedHat服务器(rvm、apache)。我没有根帐户,但服务器主机试图让我通过sudo和acl尽可能多地执行操作。他们不为我提供应用程序用户,但为所有用户安装rvm和乘客。所以我尝试让应用程序以apache用户的身份运行。我熟悉部署rails应用程序。这些都是先决条件 问题是,乘客不会读取公共目录。因此,没有设置必要的环境变量。当我直接在ruby文件中设置它们以进行调试时,应用程序运行,但仍然没有在public/assets下预编译的资产 我发现rails
在我能够编辑相应的apache配置之后,McS终于找到了它: 未设置DocumentRoot。多么愚蠢的错误 因此,正确的配置如下所示:
<VirtualHost my.stillsecrethost.com:80>
DocumentRoot /var/www/html/rails_app/public
RailsEnv production
PassengerAppRoot /var/www/html/rails_app/
<Directory /var/www/html/rails_app/public >
Allow from all
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
DocumentRoot/var/www/html/rails\u app/public
RailsEnv生产
PassengerAppRoot/var/www/html/rails\u app/
通融
允许超越所有
选项-多视图
谢谢
McS新发现:当root启动apache时,passenger在apache用户下工作:
apache27795 0.9 2.4 316868 97112?Sl 10:01 0:02乘客应用预加载程序:/var/www/html/rails_-app/
等。更多发现;-):乘客在rails\u应用程序目录所属的帐户下生成其进程。所以问题是:为什么它不读取公共目录<代码>drwxrwxr-x 3应用程序用户apache 4096 27。Okt 21:56公开
root 25791 0.0 0.1 427572 4148 ? Ssl 09:33 0:00 Passenger watchdog
root 25794 0.0 0.2 995708 10624 ? Sl 09:33 0:00 Passenger core
nobody 25799 0.0 0.1 438064 4284 ? Sl 09:33 0:00 Passenger ust-router
kosven 25846 2.8 2.4 316780 97084 ? Sl 09:33 0:02 Passenger AppPreloader: /var/www/html/rails_app/
kosven 25943 0.0 2.3 386332 91060 ? Sl 09:33 0:00 Passenger RubyApp: /var/www/html/rails_app/ (production)
<VirtualHost my.stillsecrethost.com:80>
DocumentRoot /var/www/html/rails_app/public
RailsEnv production
PassengerAppRoot /var/www/html/rails_app/
<Directory /var/www/html/rails_app/public >
Allow from all
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>