我习惯使用Ubuntu上的Apache,我正在尝试在OSX上使用Phusion Passenger和rails等配置Apache。
整个地方似乎都有配置文件,我找不到任何一致的文档。
例如,以下位置似乎有conf文件
/etc/apache
/private/etc/apache2
/Library/Server/Web/Config/apache2
以下是grepping httpd
的输出sh-3.2# ps -ef |grep httpd
0 6517 1 0 6:08pm ?? 0:00.22 /usr/sbin/httpd -D FOREGROUND -f /Library/Server/Web/Config/apache2/httpd_server_app.conf -D WEBSERVICE_ON
70 6521 6517 0 6:08pm ?? 0:00.00 /usr/sbin/httpd -D FOREGROUND -f /Library/Server/Web/Config/apache2/httpd_server_app.conf -D WEBSERVICE_ON
这是httpd -V
的输出sh-3.2# httpd -V
Server version: Apache/2.2.24 (Unix)
Server built: Jul 7 2013 18:05:17
Server's Module Magic Number: 20051115:31
Server loaded: APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.4.5, APR-Util 1.3.12
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_FLOCK_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/usr"
-D SUEXEC_BIN="/usr/bin/suexec"
-D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/private/var/run/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"
很多文章都有使用我无法访问的gui的说明,因为我使用ssh登录到无头服务器(运行10.8的Mac-Mini)。
我只需知道要使用哪些配置文件以及如何在Ubuntu上习惯使用等效的a2enmod和a2ensite等
编辑..
我偶然发现的另一个有用的命令是 sudo launchctl list org.apache.httpd。 这给出了以下输出,表明/Library/Server/Web/Config/apache2/httpd_server_app.conf是主配置文件。
{
"Label" = "org.apache.httpd";
"LimitLoadToSessionType" = "System";
"OnDemand" = false;
"LastExitStatus" = 0;
"PID" = 6517;
"TimeOut" = 30;
"ProgramArguments" = (
"/usr/sbin/httpd";
"-D";
"FOREGROUND";
"-f";
"/Library/Server/Web/Config/apache2/httpd_server_app.conf";
"-D";
"WEBSERVICE_ON";
);
};
答案 0 :(得分:0)
我认为配置在此文件中(基于您的输出):
/private/etc/apache2/httpd.conf
在我的情况下,我不需要使用a2enmod和a2ensite。这就是我为我的网站所做的:
在安装乘客宝石之后运行./bin/passenger-install-apache2-module
。
完成后,它会将这样的内容放入您的httpd.conf
文件中:
LoadModule passenger_module /home/shared/anhtd/.rvm/gems/ruby-1.9.3-p484/gems/passenger-4.0.26/buildout/apache2/mod_passenger.so
PassengerRoot /home/shared/anhtd/.rvm/gems/ruby-1.9.3-p484/gems/passenger-4.0.26
PassengerDefaultRuby /home/shared/anhtd/.rvm/wrappers/ruby-1.9.3-p484/ruby
之后重新启动httpd时,您可以使用适用于您网站的乘客,设置虚拟主机,请看一下:http://www.modrails.com/documentation/Users%20guide%20Apache.html#_deploying_a_rack_based_ruby_application_including_rails_gt_3
答案 1 :(得分:0)
答案是/ etc和/ private / etc符号链接,所以实际上是相同的地方。
如果您使用的是server.app,那么位置/ Library / Server / Web / Config / apache2用于apache配置,这将允许您从gui面板配置apache。如果您主要通过ssh管理服务器,那么配置可能不是非常人性化的,并且不太适合。
在Lion中,您可以禁用服务器(文章here)
在Mountain Lion中,文章不起作用,我不得不删除server.app(在我的情况下,通过使用VNC登录并将其拖到垃圾箱。不清楚在终端中执行'rm'是否完全具有同样的效果......)
删除server.app并重新启动apache后,/ etc / apach2 / httpd.conf中的“普通”配置文件等按预期工作。