Не удалось запустить Ec2-сервер на порту 80 - PullRequest
0 голосов
/ 25 сентября 2018

Я могу запустить сервер на порту 8000, но когда я пытаюсь использовать 80 с python manage.py runserver myip:80, я получаю:

У вас нет разрешения на доступ к этому порту.

Если я использую sudo python manage.py runserver myip:80, я получаю:

File "manage.py", line 14
    ) from exc
         ^
SyntaxError: invalid syntax

Если я пишу python в консоли, я получаю версию 3.5.5 и мой env активируется.

РЕДАКТИРОВАТЬ:

Использование sudo python3 manage.py runserver myip:80 Я получаю:

Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ImportError: No module named 'django'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    ) from exc
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Вы получаете это, потому что вы не используете Python 3. Самый простой способ исправить это - создать virtualenv, который использует python3 в качестве исполняемого файла python.

sudo pip3 install virtualenv
virtualenv -p python3 envname
workon envname
pip install django
pip install your_other_dependencies

Тем не менее, как уже говорили другие, работа веб-сервера Django в производственной среде в лучшем случае сопряжена с большими издержками, а затрачивание некоторого времени на настройку Gunicorn / Nginx (или соответствующей замены) принесет дивиденды в долгосрочной перспективе.

0 голосов
/ 25 сентября 2018

Здесь происходит несколько вещей.Прежде всего, только привилегированные пользователи (например, root или другие пользователи через sudo) могут связываться с портами менее 1024.

Но, что более важно, manage.py runserver никогда не должно использоваться в производстве :

НЕ ИСПОЛЬЗУЙТЕ ЭТО СЕРВЕР В НАСТРОЙКЕ ПРОИЗВОДСТВА.Он не прошел аудит безопасности или тесты производительности.(И так оно и останется. Мы занимаемся созданием веб-фреймворков, а не веб-серверов, поэтому улучшение этого сервера для обработки производственной среды выходит за рамки Django.)

I Настоятельно советую вам вместо этого настроить правильный веб-сервер.Если вы ищете «EC2 Django», вы найдете множество пошаговых инструкций о том, как сделать это правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...