我无法相信我已经让apache启动并运行了多少问题。它显然不是一个开箱即用的东西。
我在CentOS上运行网络服务器,httpd
通过yum
安装。
我在这里创建了一个非常基本的hello world 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-available
和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 :(得分:0)
Fedora(我相信CentOS)默认情况下有一个非常严格的防火墙,你需要使用这样的东西打开端口80:
sudo firewall-cmd --add-service=http
一旦你确定它正常工作,就通过 - 永久。更多详情:http://ask.xmodulo.com/open-port-firewall-centos-rhel.html
Fedora还有一些SELinux设置,默认情况下限制Web服务器实际访问文件,即使它们看起来可读。您可以使用getsebool/setsebool
来调查此http://forums.fedoraforum.org/showthread.php?t=240075