unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
проблемы с Apache виртуальные хосты [Решено]
проблемы с Apache виртуальные хосты [Решено]
Сообщение BOPOH_Inc » 05.01.2009 00:48
Всем доброго времени суток.
Установил я связку Apache+PHP+MySQL с репозиториев. Настроил PHP, MySQL доустановил все необходимые мне модули и так далее. Всё работает.
При обращении в браузере кпо адресу localhost открывается «It Works». В этой же директории я проверял работу PHP и остальное. Далее потребовалось создать виртуальные хосты. Я начал с малого, создал первый. Используя YaST и документацию на ru.opensuse.org я создал виртуальный хост. Результата не принесло. Хост не открывается. Покопавшись в поиске нашел подоюную тему где посоветовали прописать имя хоста в /etc/hosts в виде 127.0.0.1 name_vhost. Что я и сделал. Виртуальный хост заработал. Но проблема все обращения к localhost идут в директорию этого виртуального хоста. Если создать ещё несколько виртуальных то обращения к любому из них будут вести в директорию первого хоста (это я узнал из /var/log/apache2/error_log), ну а в браузере естественно сообщение — «Object not found! The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again. If you think this is a server error, please contact the webmaster. «. Что это глюк или я что-то намудрил. Подскажите пожалуйста.
. # If possible, avoid changes to this file. It does mainly contain Include # statements and global settings that can/should be overridden in the # configuration of your virtual hosts. # Quickstart guide: # http://www.opensuse.org/Apache_Howto_Quickstart # Overview of include files, chronologically: # # httpd.conf # | # |— uid.conf . . . . . . . . . . . . . . UserID/GroupID to run under # |— server-tuning.conf . . . . . . . . . sizing of the server (how many processes to start, . ) # |— sysconfig.d/loadmodule.conf . . . . . [*] load these modules # |— listen.conf . . . . . . . . . . . . . IP adresses / ports to listen on # |— mod_log_config.conf . . . . . . . . . define logging formats # |— sysconfig.d/global.conf . . . . . . . [*] server-wide general settings # |— mod_status.conf . . . . . . . . . . . restrict access to mod_status (server monitoring) # |— mod_info.conf . . . . . . . . . . . . restrict access to mod_info # |— mod_usertrack.conf . . . . . . . . . defaults for cookie-based user tracking # |— mod_autoindex-defaults.conf . . . . . defaults for displaying of server-generated directory listings # |— mod_mime-defaults.conf . . . . . . . defaults for mod_mime configuration # |— errors.conf . . . . . . . . . . . . . customize error responses # |— ssl-global.conf . . . . . . . . . . . SSL conf that applies to default server _and all_ virtual hosts # | # |— default-server.conf . . . . . . . . . set up the default server that replies to non-virtual-host requests # | |—mod_userdir.conf . . . . . . . . enable UserDir (if mod_userdir is loaded) # | `—conf.d/apache2-manual?conf . . . add the docs (‘?’ = if installed) # | # |— sysconfig.d/include.conf . . . . . . [*] your include files # | (for each file to be included here, put its name # | into APACHE_INCLUDE_* in /etc/sysconfig/apache2) # | # `— vhosts.d/ . . . . . . . . . . . . . . for each virtual host, place one file here # `— *.conf . . . . . . . . . . . . . (*.conf is automatically included) # # # Files marked [*] are created from sysconfig upon server restart: instead of # these files, you edit /etc/sysconfig/apache2 # Filesystem layout: # # /etc/apache2/ # |— charset.conv . . . . . . . . . . . . for mod_auth_ldap # |— conf.d/ # | |— apache2-manual.conf . . . . . . . conf that comes with apache2-doc # | |— mod_php4.conf . . . . . . . . . . (example) conf that comes with apache2-mod_php4 # | `— . . . . . . . . . . . . . . . . other configuration added by packages # |— default-server.conf # |— errors.conf # |— httpd.conf . . . . . . . . . . . . . top level configuration file # |— listen.conf # |— magic # |— mime.types -> ../mime.types # |— mod_autoindex-defaults.conf # |— mod_info.conf # |— mod_log_config.conf # |— mod_mime-defaults.conf # |— mod_perl-startup.pl # |— mod_status.conf # |— mod_userdir.conf # |— mod_usertrack.conf # |— server-tuning.conf # |— ssl-global.conf # |— ssl.crl/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificate Revocation Lists (CRL) # |— ssl.crt/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificates # |— ssl.csr/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificate Signing Requests # |— ssl.key/ . . . . . . . . . . . . . . PEM-encoded RSA Private Keys # |— ssl.prm/ . . . . . . . . . . . . . . public DSA Parameter Files # |— sysconfig.d/ . . . . . . . . . . . . files that are created from /etc/sysconfig/apache2 # | |— global.conf # | |— include.conf # | `— loadmodule.conf # |— uid.conf # `— vhosts.d/ . . . . . . . . . . . . . . put your virtual host configuration (*.conf) here # |— vhost-ssl.template # `— vhost.template ### Global Environment ###################################################### # # The directives in this section affect the overall operation of Apache, # such as the number of concurrent requests. # run under this user/group id Include /etc/apache2/uid.conf # — how many server processes to start (server pool regulation) # — usage of KeepAlive Include /etc/apache2/server-tuning.conf # ErrorLog: The location of the error log file. # If you do not specify an ErrorLog directive within a # container, error messages relating to that virtual host will be # logged here. If you *do* define an error logfile for a # container, that host’s errors will be logged there and not here. ErrorLog /var/log/apache2/error_log # generated from APACHE_MODULES in /etc/sysconfig/apache2 Include /etc/apache2/sysconfig.d/loadmodule.conf # IP addresses / ports to listen on Include /etc/apache2/listen.conf # predefined logging formats Include /etc/apache2/mod_log_config.conf # generated from global settings in /etc/sysconfig/apache2 Include /etc/apache2/sysconfig.d/global.conf # optional mod_status, mod_info Include /etc/apache2/mod_status.conf Include /etc/apache2/mod_info.conf # optional cookie-based user tracking # read the documentation before using it!! Include /etc/apache2/mod_usertrack.conf # configuration of server-generated directory listings Include /etc/apache2/mod_autoindex-defaults.conf # associate MIME types with filename extensions TypesConfig /etc/apache2/mime.types DefaultType text/plain Include /etc/apache2/mod_mime-defaults.conf # set up (customizable) error responses Include /etc/apache2/errors.conf # global (server-wide) SSL configuration, that is not specific to # any virtual host Include /etc/apache2/ssl-global.conf # forbid access to the entire filesystem by default Options None AllowOverride None Order deny,allow Deny from all # use .htaccess files for overriding, AccessFileName .htaccess # and never show them Order allow,deny Deny from all # List of resources to look for when the client requests a directory DirectoryIndex index.html index.html.var ### ‘Main’ server configuration ############################################# # # The directives in this section set up the values used by the ‘main’ # server, which responds to any requests that aren’t handled by a # definition. These values also provide defaults for # any containers you may define later in the file. # # All of these directives may appear inside containers, # in which case these default settings will be overridden for the # virtual host being defined. # Include /etc/apache2/default-server.conf # Another way to include your own files # # The file below is generated from /etc/sysconfig/apache2, # include arbitrary files as named in APACHE_CONF_INCLUDE_FILES and # APACHE_CONF_INCLUDE_DIRS Include /etc/apache2/sysconfig.d/include.conf ### Virtual server configuration ############################################ # # VirtualHost: If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most configurations # use only name-based virtual hosts so the server doesn’t need to worry about # IP addresses. This is indicated by the asterisks in the directives below. # # Please see the documentation at # # for further details before you try to setup virtual hosts. # # You may use the command line option ‘-S’ to verify your virtual host # configuration. # Include /etc/apache2/vhosts.d/*.conf # Note: instead of adding your own configuration here, consider # adding it in your own file (/etc/apache2/httpd.conf.local) # putting its name into APACHE_CONF_INCLUDE_FILES in # /etc/sysconfig/apache2 — this will make system updates # easier
Источник
Почему Apache не запускается
Многие новички, которые пытаются настроить свой домашний веб-сервер на основе Apache часто сталкиваются с ошибкой, что Apache не запускается. Благо сейчас в Ubuntu веб-сервер будет правильно работать по умолчанию и запустится, если вы не будете менять настройки, но раньше и в других дистрибутивах приходилось настраивать различные параметры и возникали ошибки.
В этой небольшой статье мы рассмотрим почему Apache не работает, что может стать причиной этой проблемы и как ее решить. Инструкция подойдет не только для Ubuntu, но и для других Linux дистрибутивов.
Почему не запускается Apache?
Вы можете столкнуться с такой проблемой по разным причинам, давайте сначала рассмотрим основные из них, чтобы вы знали что дальше делать:
- Ошибка в конфигурационном файле — вы меняли конфигурацию и настроили что-то неправильно из-за этого программа не может запустится;
- Права доступа — у программы нет прав доступа к каким-то важным для нее файлам, например, файлам логов, модулей или конфигурационным файлам;
- Не запускается служба apache при загрузке, но при запуске из консоли все работает — проблема в том, что на момент запуска загружены еще не все необходимые службы;
- Неверно указанно доменное имя — такая ошибка довольно часто встречается на локальных компьютерах;
А теперь рассмотрим более подробно почему так происходит и как решить проблему.
Как решить проблему с Apache?
Самое первое что вам нужно сделать в любом случае, если что-то не работает — это смотреть логи и информацию об ошибках. Только там вы сможете точно узнать что произошло. Самый простой способ это сделать, воспользоваться подсказкой systemd, которую она выдает при ошибке запуска:
See «systemctl status apache2.service» and «journalctl -xe» for details
То есть нам нужно выполнить systemctl status apache2.service или journalctl -xe чтобы получить больше сведений. Выполните сначала первую команду:
systemctl status apache2.service
Мы сразу же видим причину проблемы — ошибка в конфигурационном файле, в директиве Listen, а теперь пробуем другую команду:
Только ее нужно выполнять сразу же, как была выполнена попытка перезапуска apache, потому что скоро буфер лога будет затерт и вы там ничего не увидите. Но здесь сообщается то же сообщение об ошибке в конфигурационном файле, даже видно строку — 54. Еще можно посмотреть error.log, но туда сообщения пишутся не всегда:
Дальше вы можете проверить конфигурационный файл на корректность с помощью такой команды:
Тут будут показаны даже предупреждения, которые не влияют на работу сервиса. Все серьезные ошибки нужно исправить если таковые имеются, возможно именно они препятствуют запуску.
Следующая важная проблема — это права доступа. Если Apache запускается от имени пользователя www-data, то у этого пользователя должен быть доступ на чтение к папке где лежат документы веб-сайта, а также ко всем папкам выше нее, также должен быть доступ на чтение и запись для логов и конфигурационных файлов. Проверить права можно с помощью команды namei, это аналог ls, который отображает полное дерево прав:
namei -l /var/www/public_html/
Таким же образом проверяем папку с логами:
namei -l /var/log/apache2/
Как видите, у меня папка /var/www/public_html принадлежит пользователю root, но на папку public_html установлены права чтения и записи для всех пользователей. Поэтому проблем нет, а на папку с логами в качестве группы установлена adm, в эту группу входит пользователь www-data, так что тут тоже проблем нет. Если у вас что-то отличается и вы видите что прав недостаточно, то либо измените владельца папки с файлами веб-сайтов на www-data, либо дайте больше разрешений:
chown -R www-data /var/www/public_html/
Также, если в вашей системе включен SELinux, то вы можете его отключить на время, чтобы понять не в нем ли проблема:
Другой момент, который может вызвать ошибку, это если на порту, который вы хотите использовать для веб-сервера уже запущен какой-то процесс, например, nginx или lighttpd, в таком случае, его нужно остановить:
sudo systemctl stop nginx
sudo systemctl stop lighttpd
Или вы можете попытаться изменить порт на другой, для этого откройте конфигурационный файл веб-сервера и найдите там строку Listen:
Если такой строки еще нет, то вы можете ее создать. Далее просто измените номер порта с 80 на любой удобный, например, 8080
Дальше про ошибку старта при загрузке. Такая ошибка случалась в версиях ниже 2.2.4, если вы используете эту или более новую версию, то эта проблема вам не страшна. Она была вызвана тем, что Apache с SSL не хотел запускаться без папки /var/run/apache2, которой не было на момент загрузки. Самый простой способ решить проблему — отключить модуль ssl:
Второй способ более сложный — добавьте в конфигурационный файл /etc/init.d/apache2 такую строку:
[ -d /var/run/apache2 ] || mkdir /var/run/apache2
Последняя проблема, о которой мы говорили — это когда неверно указанно имя сервера, на котором запускается Apache. Этой ошибке тоже были подвержены только ранние версии программы. Тогда при попытке запуска программа выдавала сообщение:
Failed to resolve server name for localhost
И дальше не запускалась. Чтобы решить эту проблему нужно было либо создавать виртуальные хосты, либо прописать в основном конфигурационном файле директиву ServerName, в которой будет указанно имя этого компьютера:
А также ассоциировать это имя с localhost в файле hosts:
sudo vi /etc/hosts
Дальше было достаточно перезапустить Apache и все начинало работать.
Выводы
В этой статье мы рассмотрели несколько причин почему не запускается Apache и примеров их решения. Причин может быть множество, но мы разобрали только самые главные, которые встречаются наиболее часто. Надеюсь, эта информация была для вас полезной, если у вас остались вопросы, спрашивайте в комментариях! А для тех кого интересует еще один способ решения проблемы xampp apache не запускается для Windows есть видео:
Источник