在osx 10.8上配置apache的文档在哪里

时间:2013-12-13 05:28:08

标签: ruby-on-rails macos apache

我习惯使用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";
    );
};

2 个答案:

答案 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中的“普通”配置文件等按预期工作。