几个月前,我在Mac OSX 10.6.8上安装了Apache。 Apache自动安装在/ usr / local / apache2。在经历了一些小问题之后,我成功地让Apache在端口8080上侦听,并且我能够让Apache从/ usr / local / apache2 / cgi-bin执行cgi脚本。
从那以后我没有使用过apache,当我最近使用:
启动apache时/usr/local/apache2/bin$ sudo apachectl -k start
然后在浏览器中输入以下网址:
http://localhost:8080
apache不会提供index.html页面或/ usr / local / apache2 / htdocs中的任何其他页面。但是,如果我使用了网址:
http://localhost
然后apache确实提供了“index.html”页面,显示“它有效”。我检查了位于/usr/local/apache2/conf/httpd.conf的httpd.conf文件,并将apache设置为侦听端口8080:
Listen 8080
接下来,我更改了文件/usr/local/apache2/htdocs/index.html以显示“Hello world”,但是当我使用url时,apache仍然提供了一个页面“It works”:
http://localhost
我再次检查了我的httpd.conf文件:
DocumentRoot "/usr/local/apache2/htdocs"
所以我得出结论,我的apache安装没有使用位于/usr/local/apache2/conf/httpd.conf的httpd.conf文件。我用google做了一些搜索,我找到了这个命令:
/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"
我的apache安装现在使用的httpd.conf位于/private/etc/apache2/httpd.conf,其中包含以下行:
ServerRoot "/usr"
Listen 80
DocumentRoot "/Library/WebServer/Documents"
我的问题是:这些变化到底发生了什么? apache文档说httpd.conf的路径是在编译时设置的。我考虑过/ usr / local / apache2 / bin / apachectl可能是sym链接到系统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 :(得分:3)
which
表示您正在运行系统apachectl
而不是自定义系统。尝试
sudo /usr/local/apache2/bin/apachectl -k start
...运行你的并开始自己的自定义apache。