配置对 XAMPP 的外部访问

Posted

技术标签:

【中文标题】配置对 XAMPP 的外部访问【英文标题】:Configuring external access to XAMPP 【发布时间】:2012-06-09 18:26:28 【问题描述】:

我使用 XAMPP 开发 wordpress 主题,我想使用 ManageWP 来管理/克隆网站到生产服务器。我已经按照我能找到的关于此事的所有教程进行操作,但无法设法从外部访问我的本地主机!

This related SE answer 看起来很简单!

    将 Web 服务器配置为侦听您的外部网络接口(Apache 通常配置为默认仅侦听 localhost)。 在您计算机的防火墙中为入站连接打开端口 80。 如果您希望局域网外的人访问您的服务器,请在您的路由器/网关中启用端口转发,以便将端口 80 转发到您的计算机。 如果您在网络中使用 DHCP,请将 DHCP 服务器配置为每次都为您的计算机提供相同的地址(例如,通过 MAC 地址)。

我很确定最后三个步骤正确,(没有防火墙,端口 80 TCP&UDP > 80,由 MAC 地址分配的服务器 IP)但我不知道如何做第一个(我已经尝试通过将 ServerName 设置为我的外部 IP 地址来在 httpd.conf 中玩耍,但这只是一个疯狂的随机失败:)

虽然端口转发处于活动状态,但当我在本地网络上时,我可以在以下位置看到网站:##.###.64.188/mysite.dev(我的外部 IP),但如果我通过我的 3g 移动连接进行连接我明白了:

Not Found
The requested URL http://<snip> was not found on this server
Apache Server at ##.###.64.188 Port 3128

这似乎表明我就在附近的某个地方!但不知道从这里去哪里......

有什么建议吗? TIA,蒂姆

跑步:

XAMPP v1.7.3 Mac OSX 10.7.4

【问题讨论】:

检查您的服务器的访问日志以查看该 404 错误是来自您的服务器还是来自其他地方。您的 3g 链接可能会转到完全不同的地方。 感谢@MarcB - 谁知道我在打什么!我从本地网络访问##.###.64.188/mysite.dev时发现正常访问记录,但是从我的3g链接没有访问记录...回到绘图板.. 【参考方案1】:

这里的简单答案:我的 ISP Optus 阻止了端口 80 上的传入连接。所以,我添加了:

listen 8080

到httpd.conf并相应调整我的端口转发,现在我可以正常连接了!

对于后面的人,我还在我的 ~/Sites 和 httpd.conf 中的 /phpmyadmin 条目中设置了 http auth 指令,以提高安全性。

为了让 WP 网站和链接正常工作,我正在动态设置 WP_SITEURL:

// wp-config.php
$host = $_SERVER['SERVER_NAME'];
if($host == 'subdomain.mysite.com')
    $url = 'http://subdomain.mysite.com:8080';
else
     $url = 'http://mysite.dev';

define('WP_HOME', $url);
define('WP_SITEURL', $url);

然后,在我正在配置的站点的虚拟主机中,我设置了&lt;VirtualHost *:8080&gt;.. 工作得很好!任务完成。

(编辑:我不再安装 XAMPP,并且忘记了它的目录结构,但是虚拟主机的定义类似于 apache2 默认值:extra/httpd-vhosts.conf,它包含在 httpd.conf 的末尾)

PS manageWP 需要被列入白名单以允许通过 http 基本身份验证的连接。

非常感谢 Garth 和 River 在 FB 上接听了我的电话...

【讨论】:

这里完全相同的问题并更改为 :8080 修复了它。感谢您发布您的解决方案。 你能解释一下把 VirtualHost *:8080 部分放在哪里吗?

以上是关于配置对 XAMPP 的外部访问的主要内容,如果未能解决你的问题,请参考以下文章

从外部地址访问 XAMPP

无法从外部网络访问 XAMPP Web 服务器

如何使用我的 xampp 服务器,以便外部网络的每个人都可以访问它

xampp 403 禁止访问 问题解决

主机 - 使用外部设备访问本地网站

配置 IIS Express 以实现对 VS2010 项目的外部访问