OSError: [Errno 98] Адрес уже используется. Запуск приложения Flask на Apache2. - PullRequest
2 голосов
/ 23 сентября 2019

У меня есть код колбы в app.py

/some code//


if __name__ == '__main__':
     app.run()

, и я настроил свой файл wsgi как в пути /var/www/AutomateTests

#!/usr/bin/python3.6


import sys
import logging

sys.path.insert(0,"/var/www/AutomateTests/")

from app import app as application
application.root_path = '/var/www/AutomateTests/'

и у меня есть /etc/apache2/sites-available/automate_tests.conf

VirtualHost *:80>
                ServerName htstool.arubanetworks.com
                ServerAdmin admin@htstool.arubanetworks.com
                ServerAlias htstool.arubanetworks.com
                ErrorLog /var/log/apache2/hts-error.log
                CustomLog /var/log/apache2/htstool-access.log combined
                WSGIDaemonProcess AutomateTests user=www-data group=www-data threads=5
                WSGIScriptAlias / /var/www/AutomateTests/automate_tests.wsgi
                <Directory /var/www/AutomateTests>
                WSGIProcessGroup AutomateTests
                WSGIApplicationGroup %{GLOBAL}
                Order allow,deny
                        Allow from all
                </Directory>
                LogLevel info
</VirtualHost>

Я все правильно настроил и уже несколько недель застрял на этой проблеме.Можете ли вы помочь мне с тем, как вывести его на сервер.Есть ли шаг, который я пропускаю.

я установил ту же ошибку моего порта используется, хотя ЕГО НЕ!Смотрите картинку с моей ошибкой

введите описание изображения здесь

Но, как вы видите, мои порты пусты и не используются.Я проверяю, что с помощью команды netstat -ntlp

вижу, что мои порты прослушиваются и не установлены

Может кто-нибудь, пожалуйста, помогите мне.Я застрял и не отмечаю это как уже отвеченный прежде, чем проверить это полностью.Я перепробовал все ответы, и они не работают!Пожалуйста, будьте терпеливы и позвольте другим помогать мне, потому что я не могу сделать это сам.

Мой сервер работает нормально, и я вижу страницу ubuntu по умолчанию, которая означает, что мой сервер apache2 работает нормально, поэтому что-то не так с конфигурацией или моими портами

1 Ответ

0 голосов
/ 23 сентября 2019

Когда я это вижу, на ум приходят две вещи.

  1. У вас установлен и работает Apache на сервере?Apache может прослушивать порт 80 и предотвращать привязку скрипта Python к этому порту, но способ, которым вы запустили netcat, не покажет этого.Вы можете проверить это на [sever_ip]: 80.

    Но, как вы можете видеть, мои порты пусты и не используются.Я проверяю, что с помощью команды netstat -ntlp

Обратите внимание на первую строку вывода этой команды: (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Apache запускается с повышенными привилегиями, поэтому вам нужно будет запуститьот имени root (добавьте sudo к началу вашей команды), чтобы увидеть привязку порта.Могу поспорить, что это проблема.Как только это будет исправлено, вы можете столкнуться со следующей проблемой:

Вы запускаете скрипт от имени root?В Linux вам нужно использовать sudo для привязки к портам с 0 по 1024 (как объяснено здесь ).

Еще одна вещь, не относящаяся конкретно к сценарию, но выглядиткак будто вы используете AWS EC2 на скриншотах (поправьте меня, если я ошибаюсь).Если вы хотите получить доступ к экземпляру через порт 80 из общедоступного Интернета, вам нужно убедиться, что вы разрешаете его в группе безопасности .Я знаю, что это может вызвать некоторую путаницу у людей, впервые использующих AWS EC2, конечно же, для меня.

Надеюсь, это поможет!

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