我有一个空的 CentOS 6.3 盒子。我需要从此服务器运行多个网站。到目前为止,我已经完成了以下工作:
- 按照以下步骤安装 Apache、MySQL、PHP 和 PHP 模块本文。
- 我在 /var/www/html/ 文件夹中创建了一个测试文件 index.html,并尝试通过将浏览器指向服务器的 IP 来访问默认站点。但它没有显示任何内容。
- 我注释了 httpd.conf 文件中的“DocumentRoot /var/www/html”行,并添加了 Virtualhost 设置:
名称虚拟主机 *:80
<VirtualHost *:80>
ServerName abc.com
DocumentRoot /var/www/vhosts/abc.com
DirectoryIndex index.php
<Directory "/var/www/vhosts/abc.com">
DirectoryIndex index.php
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
笔记上面的 abc.com 是我的服务器的主机名,我以以下身份连接到服务器[电子邮件保护]
- 我创建了文件夹 /vhosts/abc.com 并在其中放置了一个文件 index.php
- 然后我使用 service httpd restart 重新启动了服务器
将浏览器指向服务器的 IP 或 abc.com,会显示“无法显示页面”。如果我尝试检查 /var/log/httpd/access_log 或 /var/log/httpd/error_log,则不会显示任何内容。
更新:我的 /etc/hosts 文件如下:
127.0.0.1 localhost.localdomain localhost
108.175.9.103 abc.com
/etc/sysconfig/network 文件是:
NETWORKING=yes
HOSTNAME=localhost.localdomain
我如何检查问题出在哪里?这里可能有什么问题?
更新2:我的 iptables 文件如下所示:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
在最后一行之后(COMMIT 之后),我尝试添加:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
但是重新启动 iptables 服务会引发错误。
答案1
您可能需要在 iptables 防火墙中打开端口 80
iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
如果此操作有效,则需要保存防火墙的状态
service iptables save
如果这个方法可行,因为你似乎要使用标准 /var/www 之外的文档根目录,那么你还需要更改新根目录的 SELinux 上下文,因此请查看这个答案如何做到这一点。