Apache 使用localhost(127.0.0.1)可以访问,使用本机IP(局域网)不能访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache 使用localhost(127.0.0.1)可以访问,使用本机IP(局域网)不能访问相关的知识,希望对你有一定的参考价值。

Apache 使用localhost(127.0.0.1)可以访问,使用本机IP(局域网)不能访问 ,请各位大侠赐教!
问题已解决,谢谢各位的支持,(最直接重装)

参考技术A 未知原因,换个版本tomcat看看tomcat服务器web设置Tomcat不允许通过IP直接访问若公布于外网的服务器IP地址未备案,就有可能被工信部查封。这样备案的域名也会无法访问。

若是tomcat服务,可通过简单的配置屏蔽IP地址直接访问。

比如,有服务器,IP地址是 192.168.1.2 ,相应域名是 www.myTest.com

打开 %TOMCAT_HOME%/conf/server.xml文件
找到 Engine节点作如下

<Engine name="Catalina" defaultHost="www.myTest.com">
<Host name="www.myTest.com" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"/>
<Host name="192.168.1.2" appBase="ipapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"/>
</Engine>
相关的点是:
1. Engine 节点配置的 defaultHost 表明缺省访问的Host。defaultHost对应的名称必须存在于Engine节点下配置的host节点中。
当一台机器有多个IP,而按照规定只允许通过一个指定的域名访问时很有用。此时,把defaultHost指定为非域名对应的host,这样不通过域名访问时就都定位到指定的非域名HOST了

2. Host 节点 name 对应IP地址,以及域名。一个Host只有指定一个IP或域名。

3. Host 节点的 appBase ,对应的是存放web应用的目录。这里输入的目录相对于 %TOMCAT_HOME%,
如上面的www.myTest.com对应的目录是 %TOMCAT_HOME%/webapps,而192.168.1.2 对应的目录是 %TOMCAT_HOME%/ipapps

4.如果想通过IP访问是给用于一个提示,比如:“您好!不允许通过IP直接访问本网站,请通过域名www.myTest.com访问”
此时可以在%TOMCAT_HOME%/ipapps目录下创建一个名为 ROOT web工程(可以从 webapps目录下拷贝),同时将里面的 index.html文件修改成想要展示给用于的界面。追问

我没有开通tomcat,只是打开了apache,mysql,ftp,没有开能tomcat它的xml文件应该没有调用,所以我想不是这个原因,当然了我也不太了解tomcat.

使用 Debian 在 apache2 中设置自定义 localhost 目录

【中文标题】使用 Debian 在 apache2 中设置自定义 localhost 目录【英文标题】:set up custom localhost directory in apache2 using Debian 【发布时间】:2013-07-26 13:21:30 【问题描述】:

抱歉,我对这个 virtualbox 的东西很陌生。 我使用的是 Oracle Virtualbox,我使用的是 Debian 系统。

我现在已经在 debian 系统上安装了 php、apache 和 mysql。

我想在我创建的目录中测试我的网站。我希望能够从浏览器访问“localhost/phpmyadmin/”,就像我在 Windows 系统中正常使用 wamp 的方式一样。

现在当我转到 localhost 时,我可以看到文本:'it works!...'

这个网络文件在我的虚拟机中到底在哪里?

更重要的是,我不知道如何在 userdir.conf 模块中指定正确的自定义目录。我试图 gedit userdif.conf 和 php5.conf 文件。我收到警告: Gtk-WARNING **: Attempting to store changes into '/root/.local/share/recently-used.xbel.TX1V0W':No such file or directory

还有几个类似的警告

这是我的 userdir.conf 代码:

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
        AllowOverride All
        Options MultiViews Indexes SymLinksIfOwnerMatch
        <Limit GET POST OPTIONS>
                Order allow,deny
                Allow from all
        </Limit>
        <LimitExcept GET POST OPTIONS>
                Order deny,allow
                Deny from all
        </LimitExcept>
        </Directory>
</IfModule>

而php5.conf文件是这样的:

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
    SetHandler application/x-httpd-php-source
    # Deny access to raw php sources by default
    # To re-enable it's recommended to enable access to the files
    # only in specific virtual host or directory
    Order Deny,Allow
    Deny from all
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(p[345]?|t|tml|ps)$">
    Order Deny,Allow
    Deny from all
</FilesMatch>

# Running PHP scripts in user directories is disabled by default
# 
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_value engine Off
#    </Directory>
#</IfModule>

它显然不起作用,我仍然无法获取 phpmyadmin。我现在该怎么办?

【问题讨论】:

【参考方案1】:

这里有几个问题:

虚拟盒子

您的问题中绝对没有与虚拟化相关的内容。

apache 有VirtualHosts,它允许一个 apache 网络服务器对多个域具有不同的配置(例如,http://mysite.comhttp://widerwachs.org 可能由同一个 apache 实例提供服务,但在其他方面完全不同。然后您可以配置一个每个域的虚拟主机)。

命名可能会令人困惑,但 apache 的 VirtualHost 早于任何合理的硬件虚拟化。

用户目录

userdir 真的是针对每个用户的网站,即http://localhost/~foo/http://localhost/~bar/ 分别针对用户foobar.

任何“普通”网站(例如http://localhost/sudel)通常与userdir 无关。

所以它很可能不是您想要的。 (至少它与你的其他问题无关)

网站根目录

可以使用DocumentRoot 指令设置您网站的文件系统根目录。 在 debian 系统上,它通常默认为 /var/www

别名

您很可能在/var/www 中找不到与phpmyadmin 相关的任何内容。 你可能不应该。 相反,您应该阅读 phpmyadmin 软件包附带的文档,尤其是。 README.Debian

你会发现你应该在你的 apache 配置中添加一个像 Alias /phpmyadmin /foo/bar/baz 这样的行,这将使 http://localhost/phpmyadmin/ 在你的文件系统上查找文件到 /foo/bar/baz`。

但是,这很可能是通过创建从 /etc/phpmyadmin/apache2.conf/etc/apache2/conf.d/phpmyadmin.conf 的符号链接来完成的(未经测试)

文件编辑

您似乎以root 用户(又名superuser)的身份运行X。出于安全原因,您可能不应该这样做。而是尝试学习一个适用于 cmdline 的合理文本编辑器。

堆栈溢出

Stack Overflow 真的是关于编程问题。您应该在 Server Fault 上向系统管理员提问。

【讨论】:

以上是关于Apache 使用localhost(127.0.0.1)可以访问,使用本机IP(局域网)不能访问的主要内容,如果未能解决你的问题,请参考以下文章

Apache2“localhost”可以工作,但对于 127.0.0.1,我得到“无法访问此站点,拒绝连接”。 SSL 也返回授权错误

解决127.0.0.1 localhost 劫持问题

PHP_PHP环境搭建_01_localhost能访问apache,但127.0.0.1却不能。

wampserver 中127.0.0.1可以访问,但localhost无法访问

WIN2008 R2 64位 系统下的PhpStudy 安装的apache 环境下 localhost 和127.0.0.1 拒绝访问错误403

mysql_connect (localhost / 127.0.0.1) 在 Windows 平台上慢