<p>Я много веду занятий и курсов по подготовке к ЕГЭ по информатике. Среди 27 заданий имеется одно особое, которое я старался обходить стороной — 6 задание. Как правило, его решают в среде Кумир -- это такая старинная IDE для очень древнего Школьного языка программирования. Мне казалось, что этот язык вместе Pascal'ем постепенно отмирает. Но не тут то было. Он упорно продвигается в ГИА. С 2025 года в ОГЭ задание на Кумире, которое было по выбору в прошлые года, теперь становится обязательным. Значит, придется его тоже изучать, хотя бы на примитивном уровне. Короче говоря, эту среду надо как-то поставить на Fedora 40. Просто скачать бинарники и распаковать не получится. Они скомпилированы с Qt версии 4. А сегодня и 5-я версия уже устаревает, так как появились Qt 6. Хорошо, что Кумир можно собрать с пятыми Qt. И да, он будет работать только на Xorg-ах. С Wayland запуск классического интерфейса крашится с Segmentation fault. Короче говоря, разработчикам есть над чем работать, если они вообще собираются допиливать этот проект. Ну а пока будем работать так. Здесь я записал для себя инструкцию о том, как собрать Кумир на Федоре. Если это ещё кому-нибудь понадобится, буду рад.</p>
<p>Для подключения СУБД PostgreSQL с Django- проекту используется модуль Psycopg. Недавно вышла его третья версия и её можно, и даже нужно, использовать в своих Django-проектах. Но для этого Django должен быть версии 4.2+.</p>
<p>Новые мажорные версии PostgreSQL выходят довольно часто. Разработчики добавляют новый функционал с каждой такой версией. А старые версии уже становятся неподдерживаемыми. В этой заметке я расскажу как перейти на более новую версию сервера PostgreSQL на примере ОС Ubuntu. В частности переходить будем с 14-й на 15-ю версию.</p> <p>Это изменённая версия моей статьи по переходу с 13-й версии на 14-ю. Ничего не поменялось за исключением цифр :)</p>
<p>Docker упрощает администрирование процессов с помощью контейнеров. Если необходимо поднимать несколько контейнеров, связанных между собой, то удобно это делать с помощью Docker Compose. Этот инструмент позволяет запускать мульти-контейнерное приложение основываясь на инструкциях, записанных в специальных yml-файлах. В этой статье мы рассмотрим процесс установки Docker Compose из git-репозитория.</p>
<p>Я уже поднимал тему о том, как запускать на продакшне django-проекты, используя <a href="https://alex-math.ru/administrirovaniye/ustanovka-uwsgi-i-nastroyka-nginx-dlya-django-proyektov/">связку uwsgi+nginx</a>. Сегодня рассмотрим другую возможность поднять django-проект на боевом сервере. Для этих целей будем использовать WSGI-сервер <a href="http://gunicorn.org/">Gunicorn</a>. Он представляет собой портированный на Python проект Unicorn для Ruby. Gunicorn прост в настройке, лекго устанавливается. Многие админы рекомендуют его в качестве WSGI-сервера для Django-проектов.</p>
<p> Настройка почтовой системы в Linux считается одной из самых сложных. Такое мнение сложилось ещё со времён, когда единственным MTA был Sendmail. Его конфигурирование действительно сложно. Сегодня у владельцев Linux-серверов есть замечательные альтернативы: Postfix и Exim. Они гораздо проще в настраивании, хотя и требует определённой квалификации со стороны системного администратора. В этой замете я опишу процесс установки и настройки сервера Postfix, который будет работать в связке с Dovecot - IMAP и POP3 сервером. Также мы установим и настроим Postfixadmin - удобный и простой веб-интерфейс к нашей почтовой системе, позволяющий довольно просто создавать почтовые домены и почтовые ящики. В качестве СУБД мы будем использовать PostgreSQL. </p>
<p> Сегодня редко какой сервер общается с клиентом по незащищённому каналу, через 80-й порт. Такие сервера устанавливают, как правило, локально, где шифровать данные особого смысла не имеет. Другое дело - WWW. Правилом хорошего тона на текущий момент является использование защищённого соединения, чаще всего через 443-й порт Для того, чтобы веб-сервер мог начать работу в таком режиме, необходимо каким-то образом получить SSL сертификаты и указать серверу, где они лежат. Для локальных задач можно использовать самоподписанные сертификаты. Однако, если таким сертификатом пользоваться в интернете, браузер заблокирует показ страниц, закодированных с помощью самоподписанного сертификата. И далеко не каждый пользователь сможет открыть такие страницы. Поэтому возникает задача получения сертификата, подписанного доверенной организацией, известной браузеру. Раньше эта услуга была платной. Теперь с конца 2015 года появилась возможность получить на 90 дней бесплатный криптографический сертификат от открытого Центр Сертификации Let's Encrypt. Я расскажу, как можно получить и установить такой сертификат у себя на сайте. Веб-сервер - Nginx, ОС - Ubuntu Server 18.04. </p>
<p>Часто необходимо добавить пользователя в Linux в определённую группу. Делается это с помощью команды usermod.</p>
<p>Самым популярным фреймворком для веб-разработки на Python является Django. Бекэнд пишется очень быстро, работа с БД очень простая. В процессе отладки на локальном компьютере можно пользоваться встроенным в него простым веб-сервером через вызов</p> <p><kbd>python manage.py runserver</kbd></p> <p>Однако для реального "боевого" сервера нужно решение понадежнее. Чаще всего выбирают связку Nginx + uWSGI. Как нам говорит Википедия uwsgi - веб-сервер и сервер веб-приложений, первоначально реализованный для запуска приложений Python через протокол WSGI. В свою очередь WSGI (Web Server Gateway Interface) - стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, и самим веб-сервером. В этой заметке я рассматриваю как развернуть uWSGI на сервере (CentOS 7). Предполагается, что Nginx уже установлен, также предполагается, что установлен Python 3. Если он <a href="https://alex-math.ru/administrirovaniye/ustanovka-python-3-iz-ishodnikov/">ставился из исходников</a>, то исполняемые файлы лежат, скорее всего, в /usr/local/bin. Исходя из всего этого, давайте установим uWSGI в нашу систему.</p>
<p>CentOS 7 - стабильная операционная система, основанная на RedHat Enterprise Linux. Эти системы работают по принципу "если работает - не трогай". Поэтому они поставляются с довольно старыми, но зато проверенными версиями пакетов. Во многих случаях этот подход себя оправдывает, но иногда хочется видеть на своём сервере пакеты более свежих версий. Это касается, например, Python 3. Его вообще нет официальных репозиториях (есть только версии 2.7). А 3-й пайтон нужен для фреймворка Django. Поэтому приходится прилагать некоторые усилия, чтобы поставить на сервер Python самой последней версии.</p>
<p>Установка на сервере программ из исходников считается дурным тоном. Пакеты принято устанавливать через пакетные менеджеры (yum на RHEL / CentOS / Oracle или dpkg на Ubuntu Server / Debian). Но на домашней машине установка из исходников вполне себя оправдывает. В этом случае мы полностью контролируем процесс компиляции и самой установки: указываем в какой каталог устанавливать файлы, какие модули компилировать, какие библиотеки подключать и т.д. Вообщем, такой себе путь Gentoo или даже LFS. Итак, займемся компилированием из исходников PostgreSQL самой свежей версии на текущий момент - 13.1.</p>