我正在尝试使用这种方法为 Ubuntu 11.10 配置 RedmineRedmine 11.10 版但在 apache 的某个地方遇到了一些疯狂的问题。在发出 service apache2 restart 时,我收到以下错误。
* Restarting web server apache2
ulimit: 88: error setting limit (Operation not permitted)
ulimit: 88: error setting limit (Operation not permitted)
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down
Unable to open logs
我一直搞不清楚 apache 到底发生了什么。我了解 ulimit 的作用(监控系统范围内的资源分配),但不知道为什么不允许设置限制?
这是 /etc/apache2/sites-available/default 的内容,问题的根源可能是......
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
# See
# http://www.modrails.com/documentation/Users%20guide%20Apache.html
# for details on what these options do. They will lead to an increase
# in memory usage, but significantly reduced access times.
# Speeds up spawn time tremendously -- if your app is compatible.
# RMagick seems to be incompatible with smart spawning
PassengerSpawnMethod smart
# Keep the application instances alive longer. Default is 300 (seconds)
PassengerPoolIdleTime 300
# Additionally keep a copy of the Rails framework in memory. If you're
# using multiple apps on the same version of Rails, this will speed up
# the creation of new RailsAppSpawners. This isn't necessary if you're
# only running one or 2 applications, or if your applications use
# different versions of Rails.
RailsFrameworkSpawnerIdleTime 0
# Just in case you're leaking memory, restart a listener
# after processing 5000 requests
PassengerMaxRequests 5000
# Only check for restart.txt et al up to once every 5 seconds,
# instead of once per processed request
PassengerStatThrottleRate 5
# Specify the minimum number of instances passenger can keep
# while cleaning idle instances
PassengerMinInstances 3
<Location /redmine>
Options Indexes -ExecCGI FollowSymLinks -MultiViews
# AllowOverride None
Order allow,deny
Allow from all
# mod_rails
# PassengerUser redmine
#RailsEnv edoceo_live
RailsBaseURI /redmine
# environment.rb
# Redmine::Utils::relative_url_root = "/redmine"
</Location>
</VirtualHost>
# Then after the virtualhost is loaded, send it a request
# to initialize the redmine installation
PassengerPreStart http://2222.us/redmine
编辑我偶然得到了错误日志,这是我在 error.log 中收到的错误,这可能会提供一些见解。
[Wed Dec 14 12:06:09 2011] [notice] caught SIGTERM, shutting down
[Wed Dec 14 12:06:10 2011] [error] *** Passenger could not be initialized because of this error: Unable to start the Phusion Passenger watchdog because its executable (/usr/lib/phusion-passenger/agents/PassengerWatchdog) does not exist. This probably means that your Phusion Passenger installation is broken or incomplete, or that your 'PassengerRoot' directive is set to the wrong value. Please reinstall Phusion Passenger or fix your 'PassengerRoot' directive, whichever is applicable.
[Wed Dec 14 12:06:10 2011] [error] *** Passenger could not be initialized because of this error: Unable to start the Phusion Passenger watchdog because its executable (/usr/lib/phusion-passenger/agents/PassengerWatchdog) does not exist. This probably means that your Phusion Passenger installation is broken or incomplete, or that your 'PassengerRoot' directive is set to the wrong value. Please reinstall Phusion Passenger or fix your 'PassengerRoot' directive, whichever is applicable.
[Wed Dec 14 12:06:10 2011] [notice] Apache/2.2.20 (Ubuntu) Phusion_Passenger/3.0.11 PHP/5.3.6-13ubuntu3.2 with Suhosin-Patch configured -- resuming normal operations
答案1
该问题是由于权限错误和 Phusion Passenger 安装不正确造成的。
问题是我试图以普通“用户”而不是 root 身份运行。我通过 sudo 命令或 sudo su 进入 root 并运行 service apache2 restart 解决了这个问题。显然,如果可以的话,以普通用户身份重新启动 apache2,但 Redmine 和 Ruby 需要升级权限才能运行 ulimit 更改。