1

我正在尝试让 apache 与乘客一起运行。我做了:

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

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

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

4 回答 4

3

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

我尝试了以下命令。

env APXS2=/usr/local/apache2/bin/apxs passenger-install-apache2-module
于 2013-02-24T13:29:45.310 回答
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

于 2013-05-21T21:27:47.513 回答
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 包含目录。唯一有效的是更改符号链接。

于 2014-11-16T22:36:27.120 回答
0

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

于 2013-02-27T11:50:41.757 回答