Пришла необходимость, что бы некоторые скрипты работали на сервере
Apache. Задачу решал подобным образомПредпологается, что уже установлены Apache2, PHP, Python, mySQL и phpmyadmin.
Необходимо доустановить модуль:
sudo apt-get install libapache2-mod-wsgiПосле установки активируйте модуль:
sudo a2enmod mod-wsgi
Перезапустите Apache2:
sudo /etc/init.d/apache2 restartМодуль готов к работе. На виртульном домене необходимо добавить ассоциацию расширения ".wsgi" с данным модулем,
что заставит файлы с расширениями .wsgi обрабатываться модулем wsgi.
Откройте /etc/apache2/sites-available/default:
sudo gedit /etc/apache2/sites-available/default
Найдите похожее на:
<directory var="" www=""> Options Indexes FollowSymLinks MultiViews ExecCGI AllowOverride None Order allow,deny allow from all </directory>
Замените на:
<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>
Если вы не хотите всё заменять, вам необходимо добавить "ExecCGI" в
список настроек, и добавить на обработчики cgi и wsgi скриптов, как показано выше.
Перезапустите Apache:
sudo /etc/init.d/apache2 restart
Пример пробной программы:
def application(environ, start_response): status = '200 OK' output = 'Hello World!' response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output]Это всё!
если вы желаете, что бы "index.wsgi" работал как index вашей директории
(так же как index.htm, index.html, index.php), откройте /etc/apache2/mods-enabled/dir.conf:
sudo gedit /etc/apache2/mods-enabled/dir.confИзмените строку с опцией DirectoryIndex на:
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm index.wsgi
Статья взята с форума
sudo a2enmod mod-wsgi - ERROR: Module mod-wsgi does not exist!
ОтветитьУдалитьУ меня так:
a2enmod wsgi