Passenger Apache'未定义的符号:unixd_config'

时间:2012-07-18 14:44:44

标签: apache passenger

我正试图让apache和乘客一起跑。我做了:

sudo gem install passenger
sudo passenger-install-apache2-module

在安装了其他东西后,它告诉我安装(例如apache2-prefork-dev)我添加了它说要添加到http.conf文件的行,它告诉我LoadModule行有一个语法错误。 / p>

user@machine:~$ sudo /usr/local/apache2/bin/apachectl restart
httpd: Syntax error on line 174 of /usr/local/apache2/conf/httpd.conf: 
Cannot load /var/lib/gems/1.8/gems/passenger-3.0.13/ext/apache2/mod_passenger.so into server: 
/var/lib/gems/1.8/gems/passenger-3.0.13/ext/apache2/mod_passenger.so: undefined symbol: unixd_config

这是指它告诉我要添加的以下代码:

174 LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-3.0.13/ext/apache2/mod_passenger.so
175 PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.13
176 PassengerRuby /usr/bin/ruby1.8

你知道为什么它找不到unixd_config吗?

提前致谢!

一些信息: Rails v3.2.6,Ruby 1.9.2p320,gem v1.8.24,apache2(我不知道如何找到该版本,但我知道它是2.x)

如果重要:

178 <VirtualHost *:80>
179     ServerName www.example.com
180     DocumentRoot /home/dylan/private/project/public
181 
182     <Directory /home/dylan/private/project/public>
183         Order allow,deny
184         Allow from all
185     </Directory>
186 </VirtualHost>

(如果你想帮我解决这个问题,我也不知道要为ServerName添加什么......)

4 个答案:

答案 0 :(得分:3)

如果之前安装了其他apache,则可能需要指定apache。

我尝试了以下命令。

env APXS2=/usr/local/apache2/bin/apxs passenger-install-apache2-module

答案 1 :(得分:0)

这绝对是针对错误的Apache版本编译Phusion Passenger模块的情况。正如banrui所说,您需要使用指向正确的apxs2命令的AXPS2环境变量运行安装程序,即您打算运行的Apache安装。

答案 2 :(得分:0)

看起来红丽是正确的。 获取您的apache版本:  apachectl -V(我必须是root)

http://httpd.apache.org/docs/2.4/developer/new_api_2_4.html unixd_config 这已重命名为ap_unixd_config。

你必须重建乘客: http://www.modrails.com/documentation/Users%20guide%20Apache.html

答案 3 :(得分:0)

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include /usr/include

这对优胜美地有所帮助。显然,通过安装Xcode 6.1不会自动创建符号链接。符号链接指向以前的SDK包含目录。唯一有效的是改变符号链接。