Я пытаюсь заставить apache запускать скрипты python. У меня MOD_WSGI, Apache, Python установлен на RHEL6. Я даже отредактировал файл httpd.conf, чтобы включить эти строки.
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews ExecCGI
AddHandler cgi-script .cgi
AddHandler wsgi-script .wsgi
AllowOverride None
Order allow,deny
allow from all
</Directory>
Я также перезапустил сервер apache. Но когда я пытаюсь выполнить скрипты python, они просто печатаются в браузере как обычный текст. Его совсем не казнят. Пожалуйста, помогите кому-нибудь.
Проверьте, правильно ли был загружен модуль, выполнив apache2ctl -t -D DUMP_MODULES
или apachectl -t -D DUMP_MODULES
. Если это не так, отредактируйте свой httpd.conf
или включенный файл, чтобы включить следующее (заменить lib
с участием lib64
если нужно):
LoadModule wsgi_module /usr/lib/httpd/modules/mod_wsgi.so
Обратите внимание, что вы не можете выполнить какой-либо скрипт python с WSGI - он должен поддерживать интерфейс с обработчиком WSGI, если я правильно помню. Если вы хотите выполнить какой-либо сценарий Python, возможно, вам следует использовать простой старый CGI, который работает медленно (не используйте его в производстве, если у вас больше пользователей, чем у вас), но легко. Если ваши скрипты в cgi-bin
и они имеют право Shebang вверху они уже должны в значительной степени просто работать.
Если вы хотите использовать mod_python, чтобы Apache выполнял обычные скрипты Python, сначала убедитесь, что вы загружаете модуль:
LoadModule python_module modules/mod_python.so
А затем добавьте это в свою конфигурацию, например, внутри блока Directory, сначала удалив другие изменения:
AddHandler mod_python .py
PythonHandler mod_python.publisher
И mod_python, и mod_wsgi требуют специального кода для работы с соответствующими обработчиками. Если ваша цель - просто выполнить простые сценарии Python, используйте cgi. В Redhat расположение по умолчанию: /var/www/cgi-bin/
, и уже сопоставлен с путем /cgi-bin/
в apache.