2013-04-20 138 views
1

几个月前,我在Mac OSX 10.6.8上安装了Apache。 Apache自动安装在/ usr/local/apache2。在打嗝后,我成功地让Apache在8080端口上侦听,并且我能够让Apache从/ usr/local/apache2/cgi-bin中执行cgi脚本。Apache:更改httpd.conf的路径

我还没有从那以后使用了Apache,当我使用最近解雇了阿帕奇:

/usr/local/apache2/bin$ sudo apachectl -k start 

,然后进入我的浏览器输入以下网址:

http://localhost:8080 

阿帕奇不会提供index.html页面或/ usr/local/apache2/htdocs中的任何其他页面。但是,如果我用的网址:

http://localhost 

然后阿帕奇也成为了所显示,“它的工作原理”,“一个index.html”页面。我检查了我的httpd.conf文件位于/usr/local/apache2/conf/httpd.conf和Apache设置为监听端口8080:

Listen 8080 

接下来,我改变了文件在/ usr /本地/的Apache2/htdocs中/ index.html的显示,“世界你好”,但是Apache仍然担任了一个页面,说:“它的工作原理”当我用网址:

http://localhost 

我再次检查了我的httpd.conf文件此行:

DocumentRoot "/usr/local/apache2/htdocs" 

所以我得出结论说我的apache安装不使用位于/usr/local/apache2/conf/httpd.conf的httpd.conf文件。我做了一些与谷歌的搜索,我发现这个命令:

/usr/local/apache2/bin$ apachectl -V 

其产生的输出:

Server version: Apache/2.2.22 (Unix) 
Server built: Jul 12 2012 15:09:37 
Server's Module Magic Number: 20051115:30 
Server loaded: APR 1.3.8, APR-Util 1.3.9 
Compiled using: APR 1.3.8, APR-Util 1.3.9 
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" 

httpd.conf中我安装Apache现在使用位于/私人的/ etc /的Apache2/httpd.conf文件,它包含这些行:

ServerRoot "/usr" 

Listen 80 

DocumentRoot "/Library/WebServer/Documents" 

我的问题是:在地狱里怎么会出现这些变化? apache文档说httpd.conf的路径是在编译时设置的。我认为,在/ usr /本地/ Apache2的/斌/的apachectl可能被符号链接到系统apache的可能性,但这种输出:

/usr/local/apache2/bin$ ls -al 
total 2104 
drwxr-xr-x 20 root admin  680 Feb 19 12:36 . 
drwxr-xr-x 15 root admin  510 Feb 19 12:36 .. 
-rwxr-xr-x 1 root admin 57200 Feb 19 12:36 ab 
-rwxr-xr-x 1 7stud staff 3410 Feb 19 12:32 apachectl 

并不表示是这种情况。

+0

在命令提示符处尝试'which apachectl'。 – 2013-04-20 10:05:29

+0

〜$ which apachectl => /usr/sbin/apachectl。那么路径问题呢? – 7stud 2013-04-20 10:08:30

+1

然后你运行系统apachectl,而不是'/ usr/local/apache2/bin'中的你自己的系统。 – 2013-04-20 10:09:08

回答

3

which显示您正在运行系统apachectl而不是您自定义的系统。尝试

sudo /usr/local/apache2/bin/apachectl -k start 

...运行你的并启动你自己的自定义apache。

+0

感谢您参与Apache配置问题。你是个勇敢的人。 ++ – 7stud 2013-04-22 04:22:11