- Запуск веб-сервера Apache в связке с Python 3 и СУБД на Debian 11 и Ubuntu Server 21.10
- Добро пожаловать на страницу Python
- Похожие посты:
- Как настроить сервер Apache, MySQL и Python (LAMP) без фреймворков в Ubuntu 14.04
- Предпосылки
- Шаг 1 — Установка Python 3 по умолчанию
- Шаг 2 — Установка Пипа
- Шаг 3 — Установка MySQL
- Шаг 4 — Установка Apache 2
- Шаг 5 — Тестирование конечного продукта
- Заключение
Запуск веб-сервера Apache в связке с Python 3 и СУБД на Debian 11 и Ubuntu Server 21.10
Краткое руководство по быстрому запуску веб-сервера Apache HTTP Server с Python 3 и системами управления базами данных MariaDB (MySQL) и PostgreSQL на ОС Debian GNU/Linux и Ubuntu Server 21.10.
Для начала необходимо установить СУБД MariaDB и/или PostgreSQL. Инструкции по установкам находятся по следующим ссылкам:
- СУБД MariaDB на Debian GNU/Linux и Ubuntu Server — https://dondub.com/2021/05/zapusk-subd-mariadb-na-debian-10-9-i-ubuntu-server-21-04/
- СУБД PostgreSQL на Debian GNU/Linux — https://dondub.com/2021/05/zapusk-subd-postgresql-v-debian-10-9/
- СУБД PostgreSQL на Ubuntu Server — https://dondub.com/2021/05/zapusk-subd-postgresql-na-ubuntu-server-21-04/
Затем устанавливаем Apache и Python 3, а также PIP
# apt install python3 python3-pip apache2
После этого устанавливаем коннекторы к СУБД.
# apt install python3-psycopg2
для MariaDB (MySQL) — с помощью PIP
# pip install mysql-connector-python
и перезапускаем службу apache2
# systemctl restart apache2
Каталог для хранения Python-скриптов: /usr/lib/cgi-bin/
Создадим в нём файл welcome.py, зададим ему необходимые права
# touch /usr/lib/cgi-bin/welcome.py # chmod 755 /usr/lib/cgi-bin/welcome.py
# nano /usr/lib/cgi-bin/welcome.py
#!/usr/bin/python3 print('Content-Type: text/html; charset=utf-8') print('') print('Добро пожаловать на страницу Python
')
После этого на другой машине в сети в адресной строке вводим: http://IP_илиимяхоста/cgi-bin/welcome.py
Должна появиться страница с текстом приветствия «Добро пожаловать на страницу Python»
Похожие посты:
Как настроить сервер Apache, MySQL и Python (LAMP) без фреймворков в Ubuntu 14.04
В этой статье вы узнаете, как настроить сервер с Python 3, MySQL и Apache2 без помощи фреймворка. К концу этого руководства вы будете полностью способны запустить базовую систему в производство.
Django часто является универсальным магазином для всего, что связано с Python; он совместим почти со всеми версиями Python, поставляется в комплекте с настраиваемым сервером и даже имеет базу данных, которую можно установить одним щелчком мыши. Настройка ванильной системы без этого мощного инструмента может быть сложной задачей, но вы получите бесценное представление о структуре сервера с нуля.
В этом руководстве используются только установщики пакетов, а именно apt-get и Pip. Установщики пакетов — это просто небольшие программы, которые делают установку кода более удобной и управляемой. Без них поддержка библиотек, модулей и других фрагментов кода может стать чрезвычайно грязным делом.
Предпосылки
Чтобы следовать этому руководству, вам понадобятся:
- Одна капля Ubuntu 14.04.
- Пользователь sudo без полномочий root, которого можно настроить, следуя этому руководству.
Шаг 1 — Установка Python 3 по умолчанию
На этом шаге мы установим Python 3 по умолчанию для нашей команды python .
Сначала проверьте текущую версию Python.
На новом сервере Ubuntu 14.04 это выведет:
Мы хотели бы, чтобы python запускал Python 3. Итак, сначала давайте удалим старый двоичный файл 2.7.
Затем создайте вместо него символическую ссылку на бинарный файл Python 3.
Если вы снова запустите python —version , вы увидите Python 3.4.0 .
Шаг 2 — Установка Пипа
В этом разделе мы установим Pip, рекомендуемый установщик пакетов для Python.
Во-первых, обновите системный индекс пакетов. Это гарантирует, что старые или устаревшие пакеты не будут мешать установке.
Pip позволяет нам легко управлять любым пакетом Python 3, который нам нужен. Чтобы установить его, просто запустите следующее:
Для обзора Pip вы можете прочитать это руководство.
Шаг 3 — Установка MySQL
В этом разделе мы установим и настроим MySQL.
Введите надежный пароль для пользователя root MySQL, когда будет предложено, и запомните его, потому что он понадобится нам позже.
Сервер MySQL запустится после завершения установки. После установки запустите:
Эта настройка проведет вас через ряд не требующих пояснений шагов. Во-первых, вам нужно будет ввести пароль root, который вы выбрали минуту назад. Первый вопрос спросит, хотите ли вы изменить пароль root, но поскольку вы только что его установили, введите n. На все остальные вопросы нажмите ENTER, чтобы принять ответ по умолчанию.
Однако для Python 3 требуется способ подключения к MySQL. Существует несколько вариантов, таких как MySQLclient, но для простоты модуля в этом руководстве будет использоваться pymysql . Установите его с помощью Pip:
Шаг 4 — Установка Apache 2
В этом разделе мы установим Apache 2 и убедимся, что он распознает файлы Python как исполняемые файлы.
Установите Apache с помощью apt-get:
Как и MySQL, сервер Apache запустится после завершения установки.
Примечание. После установки несколько портов открыты для доступа в Интернет. Обязательно ознакомьтесь с заключением этого руководства для ресурсов по безопасности.
Мы хотим разместить корневой каталог нашего сайта в безопасном месте. По умолчанию сервер находится в /var/www/html . Для соблюдения соглашения мы создадим новый каталог для целей тестирования с именем test в том же месте.
Наконец, мы должны зарегистрировать Python в Apache. Для начала отключим многопоточные процессы.
Затем мы даем Apache явное разрешение на запуск скриптов.
Затем мы изменяем фактическую конфигурацию Apache, чтобы явно объявить файлы Python как исполняемые файлы и разрешить такие исполняемые файлы. Откройте файл конфигурации с помощью nano или вашего любимого текстового редактора.
Добавьте следующее сразу после первой строки, которая читается как .
test> Options +ExecCGI DirectoryIndex index.py AddHandler cgi-script .py
Убедитесь, что ваш блок вложен внутри блока , например. Также убедитесь, что отступ правильный с вкладками.
test> Options +ExecCGI DirectoryIndex index.py AddHandler cgi-script .py .
Этот блок Directory позволяет нам указать, как Apache обрабатывает этот каталог. Он сообщает Apache, что каталог /var/www/test содержит исполняемые файлы, считает index.py файлом по умолчанию, а затем определяет исполняемые файлы.
Мы также хотим разрешить исполняемые файлы в каталоге нашего веб-сайта, поэтому нам также нужно изменить путь для DocumentRoot . Найдите строку с текстом DocumentRoot /var/www/html , расположенную несколькими строками ниже длинного комментария вверху файла, и измените ее на /var/www/test вместо этого.
Теперь ваш файл должен выглядеть следующим образом.
test> Options +ExecCGI DirectoryIndex index.py AddHandler cgi-script .py . DocumentRoot /var/www/test .
Сохраните и закройте файл. Чтобы эти изменения вступили в силу, перезапустите Apache.
Примечание. Apache 2 может выдать предупреждение о полном доменном имени сервера; это можно игнорировать, так как директива ServerName на данный момент мало применима. В конечном итоге они используются для определения хостинга поддоменов после создания необходимых записей.
Если в последней строке вывода указано [ OK ] , Apache успешно перезапущен.
Шаг 5 — Тестирование конечного продукта
В этом разделе мы подтвердим, что отдельные компоненты (Python, MySQL и Apache) могут взаимодействовать друг с другом, создав пример веб-страницы и базы данных.
Во-первых, давайте создадим базу данных. Войдите в MySQL. Вам нужно будет ввести корневой пароль MySQL, который вы установили ранее.
Добавьте пример базы данных с именем example.
Переключитесь на новую базу данных.
Добавьте таблицу для некоторых примеров данных, которые мы добавим в приложение Python.
Нажмите CTRL+D, чтобы выйти. Для получения дополнительных сведений об SQL вы можете прочитать это руководство по MySQL.
Теперь создайте новый файл для нашего простого приложения Python.
Скопируйте и вставьте следующий код. Встроенные комментарии описывают, что делает каждый фрагмент кода. Обязательно замените значение passwd корневым паролем 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.
Теперь получите доступ к своему серверу, перейдя по адресу http:// your_server_ip в своем любимом браузере. Вы должны увидеть следующее:
Поздравляем! Теперь ваш сервер онлайн.
Заключение
Теперь у вас есть работающий сервер, на котором может работать Python 3 с надежной базой данных SQL. Сервер теперь также настроен для легкого обслуживания с помощью хорошо документированных и установленных установщиков пакетов.
Однако в текущем состоянии сервер уязвим для посторонних. Хотя такие элементы, как шифрование SSL, не являются обязательными для работы вашего сервера, они являются незаменимыми ресурсами для надежного и безопасного сервера. Узнайте больше, прочитав о том, как защитить свой сервер Linux.