mod_wsgi и mod_php, работающие вместе - возможно?

Можно ли запустить apache с работающими вместе mod_wsgi и mod_php для обслуживания страниц python и php?

Если да, где я могу найти информацию о том, как это сделать?

2 ответа

Да, вы можете смешать тогда. Смотрите рецепты к концу раздела:

http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines

В частности, метод исправления сценария AddHandler/mod_rewrite/WSGI.

Это позволит страницам сайта PHP иметь приоритет перед любыми URL-адресами, для которых PHP или статические ресурсы не попадают в приложение Python WSGI.

Единственное, о чем я могу думать, - это то, что запрос может быть обработан только одним или другим модулем, поэтому вы не можете смешивать код PHP и WSGI. Это означает, что если вы используете WSGIScriptAlias /myapp /some/where/app.wsgi, http://example.com/myapp/foo.php будет обрабатываться либо mod_wsgi, либо mod_php, но не обоими (скорее всего, mod_wsgi). Это также означает, что ваше приложение WSGI не может быть /,

Теоретически, если вы можете заставить mod_php работать как фильтр Apache, ваше приложение на python может вывести соответствующий заголовок типа контента PHP (application/x-httpd-php) и PHP-код и mod_php обработают его, но я не уверен, что это можно сделать на самом деле. Я вижу много вещей о том, как mod_perl работает таким образом, но, вероятно, вам нужно будет скомпилировать PHP, используя apache2filter SAPI вместо стандартного apache2handler, но поиск apache2filter вызывает много сообщений об ошибках и других помехах, но мой Google-фу слишком слаб, чтобы найти инструкции о том, как его скомпилировать, настроить или использовать.

В противном случае, просто установите оба, следуя их указаниям: mod_wsgi, mod_php5. Если ваш дистрибутив предоставляет пакеты для apache, mod_php и mod_wsgi, используйте их и пропустите этапы компиляции, если в этом нет особой необходимости. Если ваш дистрибутив предоставляет a2enmod он должен выполнить большую часть настройки для вас (по крайней мере, часть загрузки модуля), но вам нужно будет установить WSGIScriptAlias сам.

Другие вопросы по тегам