2016-03-26 4 views
2

Я не могу поверить, сколько проблем у меня возникло при запуске apache. Очевидно, что это не проблема с готовым типом.Hello World in Apache

Я запускаю веб-сервер на CentOS с httpd, установленный через yum.

Я создал очень простой привет мир index.html здесь (cgi-bin и html был создан установки):

/var/www/ 
├── cgi-bin 
└── html 
    └── index.html 

Каталог httpd конфигурации структурировано таким образом: не

/etc/httpd 
├── conf 
│   ├── httpd.conf 
│   └── magic 
├── conf.d 
│   ├── autoindex.conf 
│   ├── README 
│   ├── userdir.conf 
│   └── welcome.conf 
├── conf.modules.d 
│   ├── 00-base.conf 
│   ├── 00-dav.conf 
│   ├── 00-lua.conf 
│   ├── 00-mpm.conf 
│   ├── 00-proxy.conf 
│   ├── 00-systemd.conf 
│   └── 01-cgi.conf 
├── logs -> ../../var/log/httpd 
├── modules -> ../../usr/lib64/httpd/modules 
├── run -> /run/httpd 
├── sites-available 
│   └── http.conf 
└── sites-enabled 
    └── http.conf -> /etc/httpd/sites-available/http.conf 

Ни один из них файлы были созданы мной, но я установил каталоги и sites-enabled, так как они имеют больше смысла, и я видел это раньше.

Чтобы получить эти каталоги работы, я добавил:

IncludeOptional sites-enabled/*.conf 

до конца httpd.conf.

Файл http.conf я написал выглядит просто так:

<VirtualHost *:80> 
    ServerName domain.name.com 
    DocumentRoot /var/www/html/ 
</VirtualHost> 

Запуск httpd -t отчетов Syntax OK и httpd -S печатает следующее:

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message 
VirtualHost configuration: 
*:80     domain.name.com (/etc/httpd/sites-enabled/http.conf:1) 
ServerRoot: "/etc/httpd" 
Main DocumentRoot: "/var/www/html" 
Main ErrorLog: "/etc/httpd/logs/error_log" 
Mutex proxy: using_defaults 
Mutex authn-socache: using_defaults 
Mutex default: dir="/run/httpd/" mechanism=default 
Mutex mpm-accept: using_defaults 
Mutex authdigest-opaque: using_defaults 
Mutex proxy-balancer-shm: using_defaults 
Mutex rewrite-map: using_defaults 
Mutex authdigest-client: using_defaults 
PidFile: "/run/httpd/httpd.pid" 
Define: DUMP_VHOSTS 
Define: DUMP_RUN_CFG 
User: name="apache" id=48 not_used 
Group: name="apache" id=48 not_used 

Так что все выглядит вполне нормально. Очевидно, что запуск sudo service httpd restart перезапускается без ошибок, а журналы httpd выглядят нормально.

Проверка /etc/httpd/logs/error_log также не показывает ничего интересного.

Но, когда я перехожу на сервер по IP-адресу или имени (используя ping, я определил, что DNS, фактически, правильно переводит имя на IP-адрес), я получаю сообщение об ошибке отказа от соединения.

Я полностью в недоумении, что происходит, и я нахожусь в конце моей отладочной веревки. Есть идеи?

Я очень ценю помощь!

+0

Вы можете получить доступ через localhost с сервера? Если после этого вы можете установить некоторые настройки брандмауэра/ip. – xvan

+0

DANG! Должен был подумать об этом раньше. 'curl -I 'localhost'' возвращает' HTTP/1.1 200 OK'. Спасибо! –

ответ

0

Fedora (и я считаю, CentOS) имеют довольно ограничительный брандмауэр по умолчанию, вам нужно использовать что-то вроде этого, чтобы открыть порт 80:

sudo firewall-cmd --add-service=http 

Pass --permanent, как только вы будете уверены, что он работает. Подробнее здесь: http://ask.xmodulo.com/open-port-firewall-centos-rhel.html

В Fedora также есть некоторые настройки SELinux, которые по умолчанию ограничивают веб-серверы от фактического доступа к файлам, даже если они выглядят читаемыми. Вы можете использовать getsebool/setsebool для изучения этого http://forums.fedoraforum.org/showthread.php?t=240075

+0

Кроме того, я недавно создал конфигурацию Apache с нуля, и она всегда выходила, ничего не делая. Мне потребовалось навсегда, чтобы понять, что мне нужен «» вместе с моим «». – dwks

+0

Да, я должен был подумать об этом раньше, но это правило брандмауэра исправило это. Спасибо огромное! –