2013-04-20 2 views
1

몇 달 전 Mac OSX 10.6.8에 Apache를 설치했습니다. Apache는/usr/local/apache2에 자동으로 설치됩니다. 약간의 딸꾹질 후에 아파치가 성공적으로 포트 8080에서 청취하도록했고 아파치가/usr/local/apache2/cgi-bin에서 cgi 스크립트를 실행하도록 할 수있었습니다.Apache : 경로를 httpd.conf로 변경합니다.

나는 그 이후로 아파치를 사용하고, 나는 최근에 사용하여 아파치를 해고하지 않은 : 다음

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

을 내 브라우저에 다음 URL을 입력 :

http://localhost:8080 

아파치는 않을 것/usr/local/apache2/htdocs에있는 index.html 페이지 또는 다른 페이지를 제공하십시오. 그러나 URL을 사용한 경우 :

http://localhost 

apache는 "작동합니다"라는 "index.html"페이지를 제공합니다. 나는 내 httpd.conf 파일이 /usr/local/apache2/conf/httpd.conf에있는 확인하고, 아파치가 포트 8080에서 수신하도록 설정 :

Listen 8080 

다음으로,이 파일을 변경/로컬/USR/아파치/htdocs에/"안녕하세요 세계"를 표시하는 index.html을하지만, 아파치는 여전히 내가 URL을 사용할 때 "그것은 작동한다"고 말했다 페이지까지 제공 :

http://localhost 

나는 다시 내 httpd.conf 파일을 확인을 이 줄 :

DocumentRoot "/usr/local/apache2/htdocs" 

그래서 나는 결론 내 apache install은 /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에 내 아파치는 이제 개인 /에 있습니다 사용하고 설치합니다/등/apache2/httpd.conf에는 다음 줄이 포함되어 있습니다.

ServerRoot "/usr" 

Listen 80 

DocumentRoot "/Library/WebServer/Documents" 

내 질문은 어떻게 이러한 변경 사항이 발생 했습니까? Apache 문서는 httpd.conf에 대한 경로가 컴파일 타임에 설정된다고 말합니다.

/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 

가 그런 경우이다 아닙니다 : 나는/usr/지방/아파치/빈/apachectl을이 시스템 아파치에 연결 SYM 될 수있는 가능성이 있지만,이 출력을 고려했다.

+0

명령 프롬프트에서'which apachectl'을 시도하십시오. –

+0

~ $ which apachectl => /usr/sbin/apachectl. 그래서 경로 문제? – 7stud

+1

그러면/usr/local/apache2/bin에 자신의 시스템이 아닌 apachectl 시스템을 실행하고 있습니다. –

답변

3

which은 사용자 정의 시스템 대신 apachectl 시스템을 실행하고 있음을 보여줍니다.

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

...을 실행하고 나만의 맞춤 apache를 시작하십시오.

+0

아파치 구성 질문을 던져 줘서 고마워. 당신은 용감한 사람입니다. ++ – 7stud

관련 문제