2013-04-20 3 views
1

Несколько месяцев назад я установил Apache на Mac OSX 10.6.8. Apache автоматически устанавливается на/usr/local/apache2. После некоторых икота я успешно получил Apache для прослушивания на порту 8080, и мне удалось заставить Apache выполнить скрипты cgi из/usr/local/apache2/cgi-bin.Apache: Изменение пути к httpd.conf

Я не использовал апач с тех пор, когда я недавно запустил апач с помощью:

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

, а затем вошел в следующий URL-адрес в браузере:

http://localhost:8080 

апач не будет откройте страницу index.html или любую другую страницу в/usr/local/apache2/htdocs. Однако, если я использовал URL:

http://localhost 

затем апач сделал служить вверх «в index.html» страницу, которая отображается, «Она работает». Я проверил мой файл httpd.conf находится в /usr/local/apache2/conf/httpd.conf и апач был установлен слушать на порту 8080:

Listen 8080 

Далее я изменил файл/USR/местные/apache2/HTDOCS/index.html для отображения «Hello World», но апач еще служил на страницу, которая сказала «Она работает», когда я использовал URL:

http://localhost 

Я проверил мой файл httpd.conf снова эта строка:

DocumentRoot "/usr/local/apache2/htdocs" 

Поэтому я пришел к выводу, что моя Установка apache не использовала файл httpd.conf, расположенный по адресу /usr/local/apache2/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" 

httpd.conf, мой апач инсталляцию теперь с использованием находится в/частных/и т.д./apache2/httpd.conf, который содержит следующие строки:

ServerRoot "/usr" 

Listen 80 

DocumentRoot "/Library/WebServer/Documents" 

Мой вопрос: как, черт возьми, происходят эти изменения? Документы apache говорят, что путь к httpd.conf установлен во время компиляции. Я рассматривал возможность того, что/USR/местные/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

Попробуйте 'apachectl' в командной строке. –

+0

~ $, который apachectl => /usr/sbin/apachectl. Так проблема пути? – 7stud

+1

Затем вы запускаете систему apachectl, а не свою собственную в '/ usr/local/apache2/bin'. –

ответ

3

which показывается, что вы используете систему apachectl вместо вашего обычного. Попробуйте

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

... для запуска и создания собственного пользовательского apache.

+0

Спасибо за то, что вы зашли в конфигурационный вопрос Apache. Вы храбрый человек. ++ – 7stud

Смежные вопросы