Если вы успешно остановите Apache с помощью команды sudo apachectl stop
, вы все равно увидите вывод, который вы увидели при вводе apachectl status
команды. Например, я вижу, что Apache прослушивает порт 80 в моей системе OS X El Capitan с помощью команды netstat, остановите его, проверьте состояние, которое показывает то же сообщение, которое вы опубликовали, но убедитесь, что Apache больше не прослушивает порт 80 ,
$ netstat -an | grep '.80' | grep -i Listen tcp46 0 0 *.80 *.* LISTEN $ sudo apachectl stop Password: $ apachectl status Go to http://localhost:80/server-status in the web browser of your choice. Note that mod_status must be enabled for this to work. $ netstat -an | grep '.80' | grep -i Listen $
Таким образом, просмотр этого вывода apachectl status
не означает, что Apache все еще работает. Вы можете проверить, что он больше не прослушивает порт 80, с помощью команды netstat -an | grep '.80' | grep -i Listen
или проверить, работает ли процесс Apache httpd, как показано ниже.
$ ps aux | grep httpd | grep -v grep _www 45379 0.0 0.0 2509492 1084 ?? S 6:27PM 0:00.00 /usr/sbin/httpd -D FOREGROUND root 45376 0.0 0.1 2511540 11292 ?? Ss 6:27PM 0:00.19 /usr/sbin/httpd -D FOREGROUND $ sudo apachectl stop Password: $ ps aux | grep httpd | grep -v grep $
Сообщение об ошибке «403 запрещено» может быть связано с проблемой прав доступа к файлу . Если вы поместите какой-нибудь html-файл в каталог DocumentRoot с доступом для чтения всем, например, chmod 644 index.html
и попытаетесь получить к нему доступ, что вы увидите? Вы также можете найти ключ к проблеме, с которой столкнулись, изучив файл журнала ошибок Apache. Вы можете увидеть местоположение файла с помощью apachectl -S
команды. Например:
$ apachectl -S AH00557: httpd: apr_sockaddr_info_get() failed for GSSLA15122293 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message VirtualHost configuration: *:80 myserver.example.com (/private/etc/apache2/extra/httpd-vhosts.conf:24) ServerRoot: "/usr" Main DocumentRoot: "/Library/WebServer/Documents" Main ErrorLog: "/private/var/log/apache2/error_log" Mutex proxy: using_defaults Mutex default: dir="/private/var/run/" mechanism=default Mutex mpm-accept: using_defaults Mutex proxy-balancer-shm: using_defaults PidFile: "/private/var/run/httpd.pid" Define: DUMP_VHOSTS Define: DUMP_RUN_CFG User: name="_www" id=70 not_used Group: name="_www" id=70 not_used
Вывод выше - это то, что я вижу в моей системе. Несмотря на то, что Apache жалуется, что он «не может надежно определить полное доменное имя сервера», я могу получить доступ к файлу index.html, который я поместил в свой каталог DocumentRoot, через http: // localhost, хотя я установил ServerName
и DocumentRoot
в разделе VirtualHost в /private/etc/apache2/extra/httpd-vhosts.conf . «Не удалось надежно определить полное доменное имя сервера» не означает, что Apache не прослушивает соединения. Это происходит, если вы получаете ошибку «403 Forbidden» при попытке доступа к странице на сервере, потому что это сообщение об ошибке, возвращаемое веб-сервером.