如何从手机访问 Apache 虚拟主机?

如何从手机访问 Apache 虚拟主机?

我正在使用 Django 开发移动 Web 应用程序。目前我可以像这样启动 Django 开发服务器:

python ./manage.py runserver <my-ip>:8000

当我这样做时,我的 Mac 上会弹出一个窗口,上面写着:

Do you want the application "python" to accept incoming network connections?

如果我单击“允许”按钮,然后输入 URI“:8000”,我就可以从我的手机访问该网站。

但是,有时我也想在手机上查看纯 HTML 页面。为此,我创建了一个名为“localdev”的 Apache 虚拟主机,它映射到我的 /www 目录:

# /etc/apache2/httpd.conf
...
DocumentRoot "/www"
...
<Directory "/www">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
...
Include /private/etc/apache2/extra/httpd-vhosts.conf

# /etc/apache2/extra/httpd-vhosts.conf
NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot "/www"
    ServerName localdev
    ErrorLog "/private/var/log/apache2/localdev_error_log"
    CustomLog "/private/var/log/apache2/localdev_access_log" common
    <Directory "/www"> 
        DirectoryIndex index.html 
    </Directory>
</VirtualHost>

如果我在 /www/mysite 中有一个网站,我可以在我的 Mac 上使用此 URI 访问它:

http://localdev/mysite/index.html

但是,如果我尝试通过以下 URI 在手机上访问该虚拟主机站点:

<my-ip>/mysite/index.html

...我收到此消息:

Forbidden
You don't have permission to access /mysite/index.html on this server

我有两个问题,第一个问题更重要:

  1. 我如何通过手机访问此网站?这似乎是一个非常常见的 Apache 错误消息,可能由多种原因引起。我读过很多关于它的文章,但无法解决这个问题。我做错了什么?由于我可以通过电脑浏览器访问该网站,但不能通过手机访问,我想这可能是 OS X 防火墙的问题。

  2. 有什么方法可以配置我的 OS X (Mavericks) 防火墙,以便当我启动 Django 开发网络服务器时,我的计算机将自动允许传入连接,并且我不会收到上述弹出窗口?我进入“系统偏好设置”>“安全和隐私”>“防火墙选项”,并从显示的三个“python”连接中选择“允许传入连接”,但仍然收到弹出窗口。

答案1

您是否确实包含了定义虚拟主机的文件?从您的问题来看:

Include /private/etc/apache2/extra/httpd-vhosts.conf

对比

# /etc/apaches/extra/httpd-vhosts.conf

文件路径不同,导致您看起来实际上并未包含包含虚拟主机定义的文件。

相关内容