Можно ли запустить apache с одновременным запуском mod_wsgi и mod_php для обслуживания страниц python и php?
Если да, то где я могу найти информацию об этом?
Да, тогда можно смешивать. Смотрите рецепты в конце раздела:
http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apache_Alias_Directive
В частности, метод исправления сценария 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-fu слишком слаб, чтобы найти инструкции о том, как его скомпилировать, настроить или использовать.
В противном случае просто настройте оба, следуя их указаниям: mod_wsgi, mod_php5. Если ваш дистрибутив предоставляет пакеты для apache, mod_php и mod_wsgi, используйте их и пропустите шаги компиляции, если в этом нет необходимости. Если ваш дистрибутив предоставляет a2enmod
он должен выполнить большую часть настройки за вас (по крайней мере, часть загрузки модуля), но вам нужно будет установить WSGIScriptAlias
сами.