Я использую CentOS 8.1 с Python 3.6.8 и Apache / 2.4.37.
Я новичок в mod_wsgi. Я нашел этот пример "привет, мир" и заставил его работать:
Проблема, с которой я столкнулся, заключается в том, что для этого, похоже, требуется, чтобы каждый файл .py был добавлен в свой собственный файл .conf для добавления в conf.d, как показано в /etc/httpd/conf.d/helloworld.conf:
WSGIScriptAlias /helloworld /var/www/python/helloworld.py
<Directory /var/www/python/>
Order allow,deny
Allow from all
</Directory>
И запускать скрипты python (.py) из / var / www / python.
Это очень неудобно, поскольку кажется, что каждую программу Python необходимо жестко запрограммировать, а не запускать каталоги / var / www / html. У нас есть разработка на Python 2, где файлы .py выполняются в одном каталоге вместе с файлами .html и .php. В CentOS 7 мы только что добавили запись в httpd.conf, чтобы распознать все файлы .py и убедиться, что они выполняются Python.
Я вижу, что автор упомянул, что это было сделано для безопасности. Есть ли способ сделать это по-прежнему безопасным, но чтобы мне не нужно было собирать все файлы .py на сервере и создавать для них файлы .conf, как показано в этом примере "hello world"?
Если мой взгляд на использование mod_wsgi полностью неверен, пожалуйста, просветите меня.
Mod_wsgi также имеет WSGIScriptAliasMatch
это может быть полезно в вашем случае, например
WSGIScriptAliasMatch ^/([^/]+).py /var/www/python/$1.py
Если вам не нужны более короткие пути, вы также можете использовать WSGIScriptAlias
для всей папки:
WSGIScriptAlias /python/ /var/www/python/
Это было бы эквивалентно:
Alias /python/ /var/www/python/
<Location /python>
SetHandler wsgi-script
Options +ExecCGI
</Location>
Это похоже на то, как вы использовали бы mod_python Издатель Handler:
<Directory /var/www/python>
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
Дополнительные примеры см. mod_wsgi Руководство по настройке