我在安装Redmine时遇到问题。在webrick下似乎运行得很好:
redmine@machine:~$ /usr/bin/ruby1.8 script/rails server webrick -e production
请注意,这是我以用户“redmine'”登录的时间。
我针对现有的Apache2安装安装了Passenger(v3.0.17),并使用了/etc/apache2/mods-enabled/passenger.conf,如下所示:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerDefaultUser www-data
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.17
PassengerRuby /usr/bin/ruby1.8
我的虚拟主机配置也非常简单:
<VirtualHost *:80>
ServerAdmin webmaster@machine.com
ServerName redmine.machine.com
RailsEnv production
DocumentRoot /home/redmine/redmine-2.1/public
<Directory /home/redmine/redmine-2.1/public>
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
</Directory>
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
ErrorLog /var/log/apache2/redmine.error.log
CustomLog /var/log/apache2/redmine.access.log combined
</VirtualHost>
当我运行它时,我收到一个错误&#34;没有这样的文件要加载 - bundler&#34;。但请注意:
redmine@machine:~$ gem list
*** LOCAL GEMS ***
actionmailer (3.2.8)
actionpack (3.2.8)
activemodel (3.2.8)
activerecord (3.2.8)
activerecord-mysql2-adapter (0.0.3)
activeresource (3.2.8)
activesupport (3.2.8)
arel (3.0.2)
builder (3.0.0)
bundler (1.2.1)
coderay (1.0.8)
daemon_controller (1.0.0)
erubis (2.7.0)
fastercsv (1.5.5)
fastthread (1.0.7)
hike (1.2.1)
i18n (0.6.1)
journey (1.0.4)
jquery-rails (2.0.3)
json (1.7.5)
mail (2.4.4)
mime-types (1.19)
multi_json (1.3.6)
mysql (2.8.1)
mysql2 (0.3.11)
net-ldap (0.3.1)
passenger (3.0.17)
pg (0.14.1)
polyglot (0.3.3)
rack (1.4.1)
rack-cache (1.2)
rack-openid (1.3.1)
rack-ssl (1.3.2)
rack-test (0.6.2)
rails (3.2.8)
railties (3.2.8)
rake (0.9.2.2)
rdoc (3.12)
rmagick (2.13.1)
ruby-openid (2.1.8)
rvm (1.11.3.5)
sprockets (2.1.3)
sqlite3 (1.3.6)
thor (0.16.0)
tilt (1.3.3)
treetop (1.4.11)
tzinfo (0.3.33)
/home/redmine/redmine-2.1
中的所有文件归redmine:redmine
所有。所有目录均为0755
,所有文件均为0644
。
现在,当我展示流程时,我注意到了有趣的事情:
redmine@machine:~$ ps -ef | grep "Passenger"
root 21764 21759 0 10:49 ? 00:00:00 PassengerWatchdog
root 21773 21764 0 10:49 ? 00:00:00 PassengerHelperAgent
root 21775 21773 0 10:49 ? 00:00:00 Passenger spawn server
nobody 21778 21764 0 10:49 ? 00:00:00 PassengerLoggingAgent
我当然不是Ruby / Rails / Passenger / Redmine的专家,但我怀疑Passenger运行nobody
而不是redmine
的事实可能是问题。根据这里的文档:http://www.modrails.com/documentation/Users%20guide%20Apache.html#user_switching,Passenger应该将用户切换到拥有/config/environment.ru的用户,只要该用户可以读/写日志而不是root
,正确?从上面可以看出,该文件(实际上整个应用程序)归redmine
所有,包括所有者rwx
的日志和redmine
≠{{1所以,我相信我已经通过Passenger的要求切换到以root
运行。
三个直接问题:
redmine
运行?** 在我尝试修复此问题时,我尝试添加以下行:
PassengerDefaultUser www-data
进入我的/etc/apache2/mods-enabled/passenger.conf(如上所示),但似乎没有生效。一切的结果都是相同的,没有那条线。我不希望它能解决这个问题,但我确实希望它能够像我列出流程时那样显示为Passenger运行的用户。它没有。
其他可能相关的信息:
nobody
答案 0 :(得分:0)
捆绑包是问题所在。你有什么特别的理由使用Ruby 1.8.x吗?我强烈建议你升级到Ruby 1.9.x,最好是1.9.3。否则,您可能想要尝试更古老的bundler version,如0.9.x.此外,您应该将Rubygems降级为1.3.7 or something similar。
理论上,Rubygems可以按如下方式降级:
sudo gem update --system 1.3.7
安装旧的捆绑版本:
sudo gem uninstall bundler
sudo gem install bundler --version=0.9.1
有几次我不得不处理过时的Ruby软件,最好的办法是不安装系统Ruby,而是自己从源代码编译它。 (毕竟不是那么困难,Ruby已经很好地打包了。)然后从源代码安装适当的Rubygems版本。或者看看RVM,虽然这在开始时会很痛苦。
BTW:我还建议使用nginx而不是Apache。安装没有详细记录,但配置文件更简单。