配置对XAMPP的外部访问

pti*_*tim 7 apache xampp localhost

我使用XAMPP开发wordpress主题,我想使用ManageWP来管理/克隆网站到生产服务器.我已经按照我可以找到的关于此事的每个教程,但无法设法获得对我的localhost的外部访问!

这个相关的SE答案看起来很简单!

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

我很确定我已经完成了最后三步,(没有防火墙,端口80 TCP和UDP> 80,服务器IP由MAC地址分配)但我不知道如何做第一步(我试过玩在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
Run Code Online (Sandbox Code Playgroud)

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

有什么建议?蒂姆,蒂姆

运行:

  • XAMPP v1.7.3
  • Mac OSX 10.7.4

pti*_*tim 5

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

listen 8080

到httpd.conf并相应调整我的端口,现在我连接好了!

对于那些后来的人,我还在httpd.conf中的〜/ Sites和/ 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);
Run Code Online (Sandbox Code Playgroud)

然后,在我正在配置的网站的虚拟主机中,我已经设置好了<VirtualHost *:8080>...... 任务完成.

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

PS manageWP需要列入白名单以允许通过http basic auth的连接.

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