Python apache mysql windows

Как настроить веб-сервер Apache на запуск Python в Windows

Скрипты Python можно запускать в окружении Apache аналогично запуску скриптов PHP. Для этого нужно сделать небольшую настройку.

Я устанавливал веб-сервер по этой инструкции, если вы устанавливали по другой инструкции, то отредактируйте пути под свои значения.

1. Установите Python

Если у вас ещё не установлен Python, то скачайте установщик здесь: https://www.python.org/downloads/windows/ (файл Windows x86-64 executable installer).

Я установил в предлагаемый путь, но также выбрал добавление папки с исполнимыми файлами Python в переменные окружения (возможно, это делать необязательно).

Забегая вперёд скажу — путь до папки с установленным Python нужно будет указывать в начале каждого Python cgi скрипта, поэтому или выберите более простую папку, куда вы устанавливаете Python, либо запомните имя путь до предложенной директории.

В конце программа установки предложила снять максимальное ограничение на длину пути — я согласился (возможно, это делать необязательно):

2. Настройка Apache на запуск Python CGI

Теперь откройте для редактирования файл httpd.conf, у меня он расположен по пути C:\Server\bin\Apache24\conf\httpd.conf.

Найдите там строку

и добавьте к ней ExecCGI. Должна получиться такая строка (ВНИМАНИЕ: набор опций у вас может быть другим):

Теперь найдите строку:

Раскомментируйте её, то есть удалите символ # в начале строки и добавьте к концу строки .py. Новая строка будет выглядеть примерно так:

3. Перезапустите Apache

4. Запустите тестовую страницу Python

В папке для ваших сайтов (у меня это C:\Server\data\htdocs\) создайте файл test.py и скопируйте в него:

Обратите внимание на самую верхнюю строку, то есть на C:\Users\Alex\AppData\Local\Programs\Python\Python37\python.exe — вам нужно заменить её на своё значение, указав путь до файла python.exe. Даже если вы выбрали предложенную по умолчанию папку, как минимум, вам нужно заменить имя пользователя Alex на имя своего пользователя.

ПРИМЕЧАНИЕ: обратите внимание, что путь до файла python.exe может различаться в зависимости от выбранной папки для установки, имени пользователя (если вы установили в C:\Users\), а также в зависимости от версии, например, это может быть папка Python39:

Отредактируйте самую верхнюю строку в соответствии с вашей установкой.

Django CMS Обучение

среда, 26 декабря 2012 г.

Установка сервера Apache, mod_python, Django, MySQL и Sqlite3 на Windows

Сегодня я расскажу вам, как собрать полноценный сервер для Django приложений. Для написания и тестирования вполне хватает встроенного сервера, но часто бывает, что работа приложения на деволоперском сервере запускаемом командой (django-admin.py runserver) отличается от работы на боевом хостинге, проявляются разнообразные баги глюки и остальная нечисть.
И сегодняшней нашей целью является создание полноценного сервера, что бы проверить работу нашего сайта в условиях максимально приближенным к боевым.

Конечно, можно воспользоваться уже готовыми решениями типа Bitnami Djangostack это замечательная сборка из Apache HTTP Server, MySQL, Python, SQLite после установки вы получите работающий сервер, но мы, же не ищем лёгких путей и будем устанавливать, и настраивать это всё сами.

Связка будет выглядеть, таким образом: Apache+Mysql+mod_python+Django+Sqlite и сие чудо мы будем ставить на Windows.

Что нам надо:
0. Windows
1. Apach v.2.2.11
2. Mysql v.5.1.31
3. Sqlite v.3.6.11
4. Python v.3.0.1
5. Django v.1.0.2
6. mod_python v.3.3.1

Читайте также:  Драйвер для сканера benq s2w 3300u драйвер windows

ШАГ 1
Надеюсь, Windows у вас уже установлен и я опущу этот этап и начну с установки Apache.

Установить http сервер не сложно: просто запускаем скачанный инсталлер apache_2.2.11-win32-x86-no_ssl.msi

Клацаем по кнопке “Next” до тех пор, пока установщик не попросит нас ввести Network Domain и Server name, так как мы делаем сервер исключительно для себя, то в обоих случаях вводим localhost или 127.0.0.1 кому как нравится.

Это значит, что наш сервер будет видно только для данного компьютера. Если же вы хотите, что бы он был доступен для всех, введите свой IP адрес, или домен. После того как все заполнили выбираем “For All Users” и жмём Next и смотрим как устанавливается. По окончанию установки он должен запустится автоматически как сервис. Для проверки набираем в браузере http://localhost, если вы видите надпись “It works!” всё готово и можете читать дальше.


Если же нет то
1.Попробуйте перезагрузить компьютер.
2.Проверьте, а не запущен ли у вас другой http сервер, если да то остановите его.
3.Может фаерволом (брендмуаром) у вас заблокирован порт 80, необходимо этот порт разблокировать.
4.Попробуйте просмотреть через нормальный браузер НЕ Internet Explorer
5.Если ни одно из вышеуказанных действий не помогло, то стучите в бубен, наверняка это проделки демонов мешают запуску нашего сервера.
Теперь нам понадобится конфигурационный файл, который находится
C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf
открываем его в блокноте:
строка 170 расскоментируйте (уберите знак #)
ServerName localhost:80
строка 177 и 204 замените параметр DocumentRoot на свой, например C:/www
DocumentRoot “C:/www”
Сохраняем файл httpd.conf и перезапускаем сервер вуаля все должно работать.

ШАГ 2 — Установка MySql
MySql установить не сложнее, чем Apache. Для начала запускаем mysql-5.1.31-win32.msi и снова кнопка next->

Выбираем способ установки (я советую Typical)

После того все файлы установились, будим конфигурировать mysql

Выбираем “Detailed Configuratin”(детальная настройка)

Клацаем на пункте “Developer Machine”, мы же не просто пользователи, а Разработчики

Потом выбираем “Multifunctional Database”, тоесть мы сможем работать как с таблицами типа InnoDB, так и со скоростными MyISAM в большинстве случаев используются последние.

Выбираем диск для хранения таблиц типа InnoDB, оставляем всё как есть и жмем “Дальше

Далее мы должны выбрать, сколько будет одновременных подключений к нашему серверу. Думаю 20 для нас будет предостаточно, поэтому выбираем “Decision Support (DSS)/OLAP”,

Следующий этап оставляем по умолчанию, должно быть отмечено “Enable TCP/IP Networking” и “Enable Strict Mode”

Выбираем кодировку, которую MySql сервер будет использовать по умолчанию
“Manual Selected Default Character Set / Collation” и выделяем utf-8

Будет ли наш сервер запускаться как сервис или нет, мы выбираем на этом этапе, а так же рекомендую включить Include Bin Directory in Windows PATH” — это позволит нам работать с сервером из командной строки.

Завершающий этап — это ввод пароля (хотя можно и без него, но крайне нежелательно, поэтому введите что нибудь).

Далее идём в C:\Program Files\MySQL\MySQL Server 5.1\my.ini

Здесь нам необходимо заменить строку 84, что бы использовалась по “default” MYISAM
меняем
default-storage-engine=INNODB
на
default-storage-engine=MYISAM
Пуск -> программы -> MySQL -> MySQL Server 5.1 -> MySQL Comand Line Client
Появляется консоль с запросом ввести пароль. Вводим и получаем

Проверяем, что у нас за базы у нас есть! Вводим: SHOW DATABASES;

Все, с установкой MySql закончили!

Читайте также:  Running daemons on linux

С установкой python думаю проблем у вас не возникнет, так как вся установка заключается из двух этапов, скачать дистрибутив и запустить его, а вот на остальных моментах остановлюсь подробнее. Сразу скажу, что установка связки Apache + mod_python омрачила меня одним моментами, бинарник mod_python под Windows подходит только для Python 2.5. Если хотите установить его на Python 2.6 и выше, то придется устраивать ритуальные пляски с бубнами.

Приступим к установке mod_python (я надеюсь, python 2.5 вы уже установили)!!
Идем на офф сайт и закачиваем последнюю версию на сегодня это 3.3.1. Запускаем приложение.

Если вылетает окно с ошибкой типа “не найден MSVCR71.dll повторная установка приложения может решить проблему” то надо закачать отсюда MSVCR71.dll и положить его в C:\WINDOWS\system32 это должно решить проблему. Повторно запускаем mod_python-3.3.1.win32-py2.5-Apache2.2.exe.
В процессе указываем корневой каталог Apach и ждем окончания установки.

Теперь установим Django framework, есть несколько способов установки Django. Мы пойдем простейшим — установим из svn последнею версию дистрибутива. Для этого нам потребуется svn клиент (я взял Slik) Устанавливаем клиент!! После этого открываем консоль(cmd) заходим в каталог site-packages
cd C:\Python25\Lib\site-packages
И скачиваем django командой
svn co http://code.djangoproject.com/svn/django/trunk/django django

Теперь наш свежеиспечённый django находится в C:\Python25\Lib\site-packages\django. Если у вас уже есть установленный, то надо его обновить командой.
svn update
при этом находясь в директории django. Вот и все!

Установка связки Apache+MySQL+Python без фреймворка на сервер Ubuntu 14.04

Данное руководство покажет, как установить Python 3, MySQL и Apache2 без фреймворка. В результате вы сможете запускать базовую систему в производство.

Как правило, для работы с Python используется Django; этот фреймворк совместим со всеми версиями Python, поставляется с пользовательским сервером и даже позволяет установить базу данных в один клик.

Данное руководство будет пользоваться только менеджерами пакетов (apt-get и Pip).

Примечание: Менеджеры (или инсталляторы) пакетов – это небольшие программы, которые упрощают код установки и делают его более управляемым. Без них поддержка библиотек, модулей и остального кода была бы гораздо сложнее.

Требования

Чтобы следовать руководству, понадобится:

  • Сервер Ubuntu 14.04;
  • Пользователь с правами sudo (подробнее – здесь).

1: Настройка стандартной версии Python

Сначала нужно настроить Python 3 как стандартную версию, которая будет запускаться командой python.

Проверьте текущую стандартную версию Python.

На свежем сервере Ubuntu 14.04 результат будет таким:

Теперь нужно изменить текущую стандартную версию Python 3. Для начала удалите бинарные файлы Python 2.7:

sudo rm /usr/bin/python

Затем создайте символьную ссылку на бинарные файлы Python 3.

sudo ln -s /usr/bin/python3 /usr/bin/python

Снова проверьте текущую версию Python.

На экране должно появиться:

2: Установка Pip

Теперь можно приступать к установке Pip, менеджера пакетов Python. Сначала нужно обновить список пакетов системы, чтобы устаревшие пакеты не повлияли на установку.

sudo apt-get update

Pip позволяет управлять всеми пакетами Python 3. Для установки менеджера пакетов Pip запустите:

sudo apt-get install python3-pip

3: Установка MySQL

На данном этапе нужно становить и настроить СУБД MySQL.

Система MySQL проста в установке:

sudo apt-get install mysql-server

Установите надёжный пароль для root-пользователя MySQL. Сервер MySQLбудет запущен сразу после завершения установки. Запустите:

Этот скрипт задаст ряд вопросов. Укажите только что созданный root-пароль. Скрипт спросит, нужно ли изменить root-пароль, но поскольку он был создан только что, введите n. В ответ на остальные вопросы можно просто нажать Enter, чтобы принять стандартные настройки.

Python 3 требует настройки для подключения к MySQL. Существует множество вариантов настройки (например, MySQLclient), но для простоты в данном руководстве используется pymysql. Установите этот модуль при помощи Pip:

Читайте также:  Панель для windows как mac

sudo pip3 install pymysql

4: Установка Apache 2

Теперь нужно установить Apache 2 и убедиться, что веб-сервер распознаёт файлы Python как исполняемые.

Установите Apache с помощью apt-get:

sudo apt-get install apache2

Как и MySQL, сервер Apache запустится разу после установки.

Примечание: После установки веб-сервера появляются открытые порты.

Теперь нужно поместить root-каталог сайта в надёжную точку системы. Стандартный каталог находится в /var/www/html. Следуя конвенции, создайте тестовый подкаталог по имени test в этом каталоге.

sudo mkdir /var/www/test

В завершение нужно настроить взаимодействие Python и Apache. Отключите многопоточные процессы.

sudo a2dismod mpm_event

После этого предоставьте Apache расширенные права на запуск скриптов.

sudo a2enmod mpm_prefork cgi

Затем измените настройки Apache, чтобы явно объявить файлы Python как исполняемые и разрешить запускать их. Откройте конфигурационный файл с помощью nano или любого другого текстового редактора.

sudo nano /etc/apache2/sites-enabled/000-default.conf

После строки добавьте следующий код:

Options +ExecCGI
DirectoryIndex index.py

AddHandler cgi-script .py

Убедитесь, что блок помещён в блок .

/etc/apache2/sites-enabled/000-default.conf

Options +ExecCGI
DirectoryIndex index.py

AddHandler cgi-script .py
.

Этот блок Directory позволяет настроить поведение Apache для этого каталога. Он сообщает Apache, что каталог /var/www/test содержит исполняемые файлы, задаёт index.py в качестве стандартного файла и затем определяет исполняемые файлы.

Также нужно разрешить исполняемые файлы в каталоге сайта. Для этого измените путь для DocumentRoot. Найдите строку, которая начинается с DocumentRoot /var/www/html, и измените её:

Теперь файл имеет такой вид:

/etc/apache2/sites-enabled/000-default.conf

Options +ExecCGI
DirectoryIndex index.py

AddHandler cgi-script .py
.
DocumentRoot /var/www/test
.

Сохраните и закройте файл. Чтобы изменения вступили в силу, перезапустите Apache.

sudo service apache2 restart

Примечание: Apache 2 может вывести предупреждение о FQDN сервера. Его можно проигнорировать, так как директива ServerName еще не настроена.

Если в конце вывода находится строка [ OK ], Apache успешно перезапущен.

5: Тестирование настройки

Теперь нужно проверить, работает ли связка должным образом. Для этого создайте тестовую веб-страницу и БД.

Для начала создайте БД. Войдите в MySQL, введя root-пароль.

Теперь создайте тестовую БД (для примера назовём её example):

CREATE DATABASE example;

Откройте новую БД:

Добавьте таблицу для данных Python:

CREATE TABLE numbers (num INT, word VARCHAR(20));

Нажмите CTRL+D, чтобы выйти.

Затем создайте новый файл для простого приложения Python.

sudo nano /var/www/test/index.py

Скопируйте и внесите в него следующий код. В строке passwd укажите свой root-пароль MySQL.

#!/usr/bin/python
# Turn on debug mode.
import cgitb
cgitb.enable()
# Print necessary headers.
print(«Content-Type: text/html»)
print()
# Connect to the database.
import pymysql
conn = pymysql.connect(
db=’example’,
user=’root’,
passwd=’your_root_mysql_password’,
host=’localhost’)
c = conn.cursor()
# Insert some example data.
c.execute(«INSERT INTO numbers VALUES (1, ‘One!’)»)
c.execute(«INSERT INTO numbers VALUES (2, ‘Two!’)»)
c.execute(«INSERT INTO numbers VALUES (3, ‘Three!’)»)
conn.commit()
# Print the contents of the database.
c.execute(«SELECT * FROM numbers»)
print([(r[0], r[1]) for r in c.fetchall()])

Сохраните и закройте файл.

Затем установите права на новый файл.

Примечание: Более подробную информацию о правах можно найти в руководстве «Основы привилегий Linux».

sudo chmod 755 /var/www/test/index.py

При помощи браузера откройте http://ip_адрес_сервера. Появится такой вывод:

http://your_server_ip
[(1, ‘One!’), (2, ‘Two!’), (3, ‘Three!’)]

Заключение

Теперь сервер поддерживает Python 3 с надёжной базой данных на бэкэнде. Кроме того, управление пакетами стало гораздо проще, поскольку на сервере установлены удобные менеджеры пакетов.

Однако на данном этапе сервер несколько уязвим и требует дополнительной настройки. SSL-шифрование не является обязательным компонентом для работы сервера, однако это может значительно повысить уровень безопасности. Чтобы узнать, как получить и установить SSL-сертификат на веб-сервер Apache, читайте это руководство.

Оцените статью