Назад | Перейти на главную страницу

Не удается заставить Apache2 работать

Раньше я устанавливал Apache2, а теперь, когда я попытался запустить его снова, этого не произошло.
Мои настройки Apache2:

jatin@jatin-ubuntu:/var/run$ apache2 -V
Server version: Apache/2.2.14 (Ubuntu)
Server built:   Nov 18 2010 21:17:19
Server's Module Magic Number: 20051115:23
Server loaded:  APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture:   32-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_SYSVSEM_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=""
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"

Когда я это делаю, возникают следующие ошибки:

jatin@jatin-ubuntu:/var/run$ httpd status
No command 'httpd' found, did you mean:
 Command 'dhttpd' from package 'dhttpd' (universe)
 Command 'xttpd' from package 'xtide' (universe)
 Command 'thttpd' from package 'thttpd' (universe)
httpd: command not found

Мой /etc/apache2/ports.conf выглядит как:

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz

#NameVirtualHost *:80
Listen 80

#<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
#    Listen 443
#</IfModule>

#<IfModule mod_gnutls.c>
#    Listen 443
#</IfModule>

Мой sites-available В каталоге есть эти два файла:

jatin@jatin-ubuntu:/etc/apache2$ cd sites-available/
jatin@jatin-ubuntu:/etc/apache2/sites-available$ ls
default  default-ssl

Когда я смотрю в sites-enabled каталог, в нем ничего нет:

jatin@jatin-ubuntu:/etc/apache2/sites-available$ cd ../sites-enabled/
jatin@jatin-ubuntu:/etc/apache2/sites-enabled$ ls

Мой файл /var/log/apache2/error.log показывает это:

[Sat Mar 26 17:54:08 2011] [error] [client 127.0.0.1] File does not exist: /htdocs
[Sat Mar 26 17:54:15 2011] [error] [client 127.0.0.1] File does not exist: /htdocs
[Sat Mar 26 17:54:23 2011] [notice] caught SIGTERM, shutting down
[Sat Mar 26 17:54:26 2011] [notice] Apache/2.2.14 (Ubuntu) DAV/2 SVN/1.6.6 configured -- resuming normal operations

Я читал в Интернете, что это должно делать что-то с неправильным установлением корня сервера, и поэтому он ищет папку / htdocs.

ВОПРОСЫ:

  1. Почему httpd status ничего не показывает ??
  2. Все в моем ports.conf файл правильный ?? У меня есть только одна строка без комментариев для Listen.
  3. Разве в каталоге с поддержкой сайтов не должны быть символьные ссылки по умолчанию ???
  4. Когда я делаю sudo /etc/init.d/apache2 restart/stop/start все работает нормально, но при открытии ничего не отображается http://localhost/ или http://localhost:80/ или http://localhost:8080/???
  5. Что это за штука с корнем сервера, и правильно ли я его установил?
  • Почему статус httpd ничего не показывает?

Потому что у тебя нет httpd установлены. Возможно вы имели в виду /etc/init.d/httpd status? Эквивалентная команда в системе Ubuntu: /etc/init.d/apache2 status.

  • Все ли в моем файле ports.conf правильно?

Если вы собираетесь запустить только один сайт, все в порядке. Если вы хотите, чтобы больше сайтов работали как виртуальные хосты, вам нужно раскомментировать NameVirtualHost линия тоже.

  • Разве в каталоге с поддержкой сайтов не должны быть символьные ссылки по умолчанию?

Они создаются, когда вы используете a2ensite команда для включения сайта, например

a2ensite default

включит веб-сайт по умолчанию, создав ссылку.

  • Когда я делаю sudo /etc/init.d/apache2 restart/stop/start все работает нормально ...

Глядя на сообщения об ошибках в вашем вопросе, они могут указывать на то, что вы ничего не видите. Вы увидите сообщение об ошибке 404 Not Found. Это вызвано тем, что у вас не включены какие-либо сайты.

  • Что это за штука с Server Root, и правильно ли я ее установил

Я подозреваю, что вы имеете в виду DocumentRoot, если DocumentRoot не настроен, то Apache по умолчанию использует / htdocs. Включите сайт с помощью приведенной выше команды и посмотрите, что произойдет. Вы должны получить сообщение вроде "Оно работает ... "

Я помню, какой-то сервис некоторое время назад пожаловался и сказал: «Эй, это не сработает в будущем - вы должны использовать сервис, что-то остановить / запустить / перезапустить»
Я думал, что это apache, но когда я побежал:

sudo /etc/init.d/apache2 restart

Сегодня этого предупреждения не было, но я думаю, что вы тоже можете

sudo service apache2 restart

Я бы проверил / etc / apache2 / sites-available / default и убедился, что для корня документа установлено значение:

DocumentRoot /var/www

Вы устанавливали Apache с помощью tasksel или во время установки?