我有一个空的 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 是我服务器的主机名,我以 [email protected] 连接到服务器
- 我创建了文件夹 /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
我如何检查问题出在哪里?这里可能有什么问题?
Update2:我的 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
在 las 行之后(在 COMMIT 之后),我尝试添加:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
但是重新启动 iptables 服务会引发错误。
您可能需要在 iptables 防火墙中打开端口 80
如果这有效,那么您需要保存防火墙的状态
如果这可行,因为看起来您将使用标准 /var/www 之外的文档根目录,那么您还应该需要更改新根目录的 SELinux 上下文,因此请查看此答案以了解如何执行此操作。