Я разрабатываю мобильное веб-приложение с помощью 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
У меня два вопроса, первый из которых важнее:
Как я могу получить доступ к этому сайту со своего телефона? Это довольно распространенное сообщение об ошибке Apache, которое может быть вызвано множеством причин. Я прочитал много статей об этом, но не смог решить проблему. Что я делаю не так? Поскольку я могу получить доступ к сайту через компьютерный браузер, но не со своего телефона, я думаю, что, возможно, это проблема с брандмауэром OS X.
Есть ли способ настроить мой брандмауэр OS X (Mavericks), чтобы при запуске веб-сервера разработки Django мой компьютер автоматически разрешал входящие соединения, и я не получал всплывающее окно, описанное выше? Я зашел в Системные настройки> Безопасность и конфиденциальность> Параметры брандмауэра и выбрал «Разрешить входящие подключения» из трех показанных подключений «python», но у меня все еще появляется всплывающее окно.
Вы действительно включаете файл, в котором определены ваши виртуальные хосты? Из вашего вопроса:
Include /private/etc/apache2/extra/httpd-vhosts.conf
против
# /etc/apaches/extra/httpd-vhosts.conf
Пути к файлам различаются, поэтому создается впечатление, что вы на самом деле не включаете файл, в котором есть определения вашего виртуального хоста.