Запуск PHP-скрипта в среде Python WSGI - PullRequest
1 голос
/ 29 января 2010

У меня есть простой PHP-скрипт, который выводит каталог dir в формате XML. Я использую его, чтобы показать слайд-шоу во флэш-памяти, какие файлы доступны для показа.

Я только что добавил флэш-память на веб-сайт, работающий на Django, и файл PHP теперь обслуживается как есть, а не анализируется.

Он находится в каталоге с изображениями в моем медиа-каталоге.

Сервер, который я использую, запускает plesk, поэтому я делаю свою конфигурацию для каждого домена в файле vhost.conf (который, я думаю, включается в основную конфигурацию приложения)

Это выглядит так:

WSGIScriptAlias / /var/www/vhosts/<domain>/conf/django.wsgi
Alias /media/ /var/www/vhosts/<domain>/httpdocs/media/

Я думал, что это означает, что запросы на что-либо в / передаются в django для обработки.
За исключением случаев, когда они предназначены для / media / ..., они обслуживаются apache как обычно из указанного каталога.

Это работает для изображений, но не анализирует файл PHP.

Что мне делать?

Ответы [ 4 ]

3 голосов
/ 29 января 2010

Возможно, прочитайте эту ветку и перенесите ваш PHP-скрипт на Python:

os.walk () python: xml представление структуры каталогов, рекурсия

1 голос
/ 13 февраля 2010

Таким образом, выясняется, что проблема была в двух вещах, затрудняющих поиск.

Благодаря Игнасио Васкес-Абрамсу, мои строки были неверными.

Как только это будет решено, PHP не будет обслуживать мой файл, потому что он был в директории, которая была символической ссылкой снаружи allowed path(s). Я решил эту проблему, отключив ограничения open_basedir для этого vhost. Мой новый vhost.conf ниже.

<Directory /var/www/vhosts/<domain>/httpdocs>
    php_admin_flag engine on
    php_admin_value open_basedir none
</Directory>

Alias /media/ /var/www/vhosts/<domain>/httpdocs/media/

WSGIScriptAlias / /var/www/vhosts/<domain>/conf/django.wsgi
1 голос
/ 29 января 2010

Директива WSGIScriptAlias там поглощает URL, предназначенные для Alias.Обменять заказ.

1 голос
/ 29 января 2010

Если вы не настроили Apache так, чтобы он знал, что файлы .php в каталоге '/ media' должны как-то обрабатываться PHP, они не будут. Итак, с конфигурацией mod_wsgi все в порядке, проблема, скорее всего, в вашей конфигурации PHP.

Как вы настраиваете PHP? Вы используете mod_php или PHP через fastcgi? Как Apache настроен так, что он знает, что нужно обрабатывать файлы .php как PHP и для каких каталогов применяется эта конфигурация?

...