7

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

这个相关的 SE 答案似乎很简单!

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

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

虽然端口转发处于活动状态,但当我在本地网络上时,我可以在以下位置看到网站:##.###.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
4

1 回答 1

5

这里的简单答案:我的 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);

然后,在我正在配置的站点的虚拟主机中,我设置<VirtualHost *:8080>了 .. 工作!任务完成。

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

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

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

于 2012-06-08T19:52:29.787 回答