Назад | Перейти на главную страницу

Как получить доступ к виртуальному хосту Apache с мобильного телефона?

Я разрабатываю мобильное веб-приложение с помощью Django. В настоящее время я могу запустить сервер разработки Django следующим образом:

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

Когда я это сделаю, на моем Mac появится всплывающее окно, в котором говорится:

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

Если я нажму кнопку "Разрешить" и затем введу URI ": 8000", я смогу получить доступ к веб-сайту со своего мобильного телефона.

Однако бывают случаи, когда мне также хотелось бы просматривать простые HTML-страницы на своем телефоне. С этой целью я создал вызов виртуального хоста Apache "localdev", который сопоставлен с моим каталогом / 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», но у меня все еще появляется всплывающее окно.

Вы действительно включаете файл, в котором определены ваши виртуальные хосты? Из вашего вопроса:

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

против

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

Пути к файлам различаются, поэтому создается впечатление, что вы на самом деле не включаете файл, в котором есть определения вашего виртуального хоста.