Настройка Apache для работы с Python 3.4 в CentOS 6.5


Для установки последей версии Python 3.4 на CentOS 6.5 можно воспользоваться предыдущей статьей.

Для работы с python 3.4 вэб сервер apache требует модуль wsgi. Если у Вас в системе имеется два питона (2.7 и 3.4), тогда этот модуль нужно собрать из исходинков. Я предполагаю, что для работы сайта нужна именно последняя версия Python.

Установим нужные пакеты:

yum install httpd-devel -y

Создадим необходимые симлинки:

ln -s /usr/local/lib/libpython3.so /usr/lib64/libpython3.4.so
ln -s /usr/local/lib/libpython3.4m.so.1.0 /usr/lib64/libpython3.4m.so.1.0
cp /usr/local/lib/libpython3.4m.so /usr/lib/

Скачиваем, конфигурируем, устанавливаем:

wget https://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz
tar -xf mod_wsgi-3.4.tar.gz
cd mod_wsgi-3.4
./configure --with-python=/usr/local/bin/python3.4
make
make install

Все установлено в папку

/usr/lib64/httpd/modules

Осталось включить модуль.

echo "LoadModule wsgi_module modules/mod_wsgi.so" >> /etc/httpd/conf.d/wsgi.conf

создаем конфиг файл для Django:

nano /etc/httpd/conf.d/django.conf

Приводим его к следующему виду:

WSGIPythonPath /var/www/website

<VirtualHost *:80>
ServerName website.com

WSGIScriptAlias / /var/www/website/website/wsgi.py
<Directory /var/www/website/>
   <Files wsgi.py>
      Order deny,allow
      Allow from all
   </Files>
</Directory>
</VirtualHost>

Если у Вас несколько проэктов в разных директориях:

WSGIPythonPath /var/www/website:/var/www/website2:/var/www/website3

Файл wsgi.py должен быть исполняемым:

chmod +x /var/www/website/website/wsgi.py

Нужно удостовериться, что апач исправен:

apachectl -t

Перезапускаем его, если все хорошо:

/etc/init.d/httpd restart

Из-за включенного selinux, могут быть проблемы:

setenforce 0

Подредактируйте файл /etc/selinux/config и измените:

SELINUX=enforcing

на

SELINUX=disabled

Share Button
(Visited 1 001 times, 1 visits today)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.