Установка Linux, Apache, MySQL, PHP (LAMP)
Перед установкой программного обеспечения обновите информацию в репозиториях командой
root@i:~# apt update - для ОС Debian, root@i:~# yum makecache - для ОС CentOS
После этого приступайте к установке нужного ПО.
Apache
ОС Debian
Выполните установку Apache Prefork при помощи команды
root@i:~# apt install apache2
Apache Worker при помощи команды
root@i:~# apt install apache2-mpm-worker
Apache ITK при помощи команды
root@i:~# apt install apache2-mpm-itk
ОС CentOS
Выполните установку Apache Prefork при помощи команды
root@i:~# yum install httpd
Для обновления версии Apache до Worker остановите веб-сервер командой
systemctl stop httpd
Затем откройте для редактирования файл /etc/sysconfig/httpd и отмените комментирование строки HTTPD=/usr/sbin/httpd.worker. Добавьте в этот файл следующие строки, если их нет:
<IfModule worker. c> StartServers 6 MinSpareServers 6 MaxSpareServers 15 ServerLimit 156 MaxClients 156 MaxRequestsPerChild 3000 </IfModule>
Значения директив установите нужными для вас величинами.
Для обновления версии Apache до ITK отмените комментирование строки HTTPD=/usr/sbin/httpd.itk. Добавьте в этот файл следующие строки, если их нет:
<IfModule itk.c> StartServers 6 MinSpareServers 6 MaxSpareServers 15 ServerLimit 156 MaxClients 156 MaxRequestsPerChild 3000 </IfModule>
Значения директив установите нужными для вас величинами.
MySQL
ОС Debian
Выполните установку сервера баз данных MySQL командой
root@i:~# apt install mysql-server mysql-client
Во время установки необходимо будет ввести пароль для пользователя root MySQL сервера. Используйте сложные пароли, которые содержат заглавные и строчные буквы, цифры и служебные символы.
ОС CentOS
Выполните установку сервера баз данных MySQL командой
root@i:~# yum install mariadb mariadb-server
Когда завершится установка, запустите MySQL и добавьте его в автозагрузку командой
root@i:~# systemctl start mysql && systemctl enable mysql
и смените пароль командой
root@i:~# /usr/bin/mysqladmin -u root password 'mynewpassword'
PHP
Следующие команды устанавливают основные расширения PHP и модуль для Apache.
ОС Debian
Проверьте какая версия php доступна для вашей операционной системы командой
apt show php
В нашем примере это php 7.4
Установите PHP, указав в команде вашу версию пакетов
root@i:~# apt install php7.4 php7.4-mysql
ОС CentOS
Для установки PHP выполните команду
root@i:~# yum install php php-mysql
Сайт
ОС Debian
Для каждого добавляемого домена создайте отдельный конфигурационный файл и назовите именем этого домена командой
touch /etc/apache2/sites-enabled/mydomain.com где mydomain - имя вашего домена.
Откройте его для редактирования любым редактором и добавьте секцию:
<VirtualHost 1.0.0.1:80 > ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /var/www/sites/mydomain.com CustomLog /var/www/httpd-logs/mydomain.com.access.log combined ErrorLog /var/www/httpd-logs/mydomain.com.error.log AddType application/x-httpd-php .php </VirtualHost> где 1.0.0.1 - IP-адрес сервера, mydomain.com - ваш домен.
Выполните перезагрузку веб-сервера
systemctl reload apache2
Если для работы сайта необходима база данных (в примере MySQL), подключитесь к серверу командой
mysql -u root -p
и создайте базу данных командой
create database db;
Создайте пользователя для доступа к базе данных с неограниченными правами командой
grant all privileges on mydb.* to 'myuser'@'localhost' identified by 'mypassword'; где mydb - имя базы данных, myuser - имя пользователя, mypassword - пароль.
Создайте директории для сайта командами
mkdir /var/www/sites/ mkdir /var/www/sites/mydomain.com chown -R www-data:www-data /var/www/sites/ mkdir /var/www/httpd-logs touch /var/www/httpd-logs/mydomain.com.access.log touch /var/www/httpd-logs/mydomain.com.error.log chown -R www-data:www-data /var/www/httpd-logs
При необходимости установите нужную вам CMS, перейдя в директорию сайта командой
cd /var/www/sites/mydomain.com
Для CMS Joomla скачайте дистрибутив командой
wget https://downloads.joomla.org/cms/joomla4/4-0-3/Joomla_4-0-3-Stable-Full_Package.zip
Распакуйте архив командой
unzip Joomla_4.0.3-Stable-Full_Package.zip
При верной конфигурации DNS вы сможете зайти на ваш сайт по имени домена через браузер, в обратном случае — по IP-адресу.
ОС CentOS
Для каждого добавляемого домена создайте отдельный конфигурационный файл и назовите именем этого домена командой
touch /etc/httpd/sites-enabled/mydomain.com.conf где mydomain - имя вашего домена.
Откройте его для редактирования любым редактором и добавьте секцию:
<VirtualHost 1.0.0.1:80 > ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /var/www/sites/mydomain.com CustomLog /var/www/httpd-logs/mydomain.com.access.log combined ErrorLog /var/www/httpd-logs/mydomain.com.error.log AddType application/x-httpd-php .php </VirtualHost> где 1.0.0.1 - IP-адрес сервера, mydomain.com - ваш домен.
Если для работы сайта необходима база данных (в примере MySQL), подключитесь к серверу командой
mysql -u root -p
и создайте базу данных командой
create database db;
Создайте пользователя для доступа к базе данных с неограниченными правами командой
grant all privileges on mydb.* to 'myuser'@'localhost' identified by 'mypassword'; где mydb - имя базы данных, myuser - имя пользователя, mypassword - пароль.
Создайте директории для сайта командами
mkdir /var/www/sites/ mkdir /var/www/sites/mydomain.com chown -R apache:apache /var/www/sites/ mkdir /var/www/httpd-logs touch /var/www/httpd-logs/mydomain.com.access.log touch /var/www/httpd-logs/mydomain.com.error.log chown -R apache:apache /var/www/httpd-logs
При необходимости установите нужную вам CMS, перейдя в директорию сайта командой
cd /var/www/sites/mydomain.com
Для CMS Joomla скачайте дистрибутив командой
wget https://downloads. joomla.org/cms/joomla4/4-0-3/Joomla_4-0-3-Stable-Full_Package.zip
Распакуйте архив командой
Joomla_4.0.3-Stable-Full_Package.zip
При верной конфигурации DNS вы сможете зайти на ваш сайт по имени домена через браузер, в обратном случае — по IP-адресу.
установка и запуск первого DAGа / Хабр
Привет! Меня зовут Алексей Карпов, я прикладной администратор (MLOps) отдела сопровождения моделей машинного обучения в Альфа-Банке. Хочу поделиться опытом в работе с Apache Airflow. Расскажу, как установить интерпретатор Python и сам Airflow, а также как отладить его работу. Всё это — на примере запуска простейшего DAGа.
Моя статья будет полезна дата-инженерам и разработчикам, которым необходимо автоматизировать запуск скриптов и установить возможность автоматического выполнения по расписанию.
В этой статье:вы познакомитесь с основными понятиями Airflow;
научитесь собирать интерпретатор Python из исходного кода;
установите базу данных PostgreSQL;
создадите сервисы для Airflow;
запустите первый DAG.
Что такое Apache Airflow
Apache Airflow — это решение с открытым исходным кодом. Это оркестратор, который позволяет наладить разработку, планирование и мониторинг сложных рабочих процессов. Также он работает как планировщик ETL/ELT-процессов и использует язык программирования Python.
В основе концепции Airflow лежит DAG — направленный ациклический граф. Он описывает процессы обработки данных и позволяет объединять задачи, определяя правила их совместной работы.
Вот базовый пример DAG:
Он описывает четыре задачи — A, B, C и D и определяет порядок, в котором они должны выполняться, а также настраивает взаимосвязи между задачами. Можно указать, как часто требуется запускать DAG: например, «каждые 5 минут, начиная с завтрашнего дня» или «каждый день с 1 января 2023 года». Почитать об этом подробнее можно в документации.
Airflow состоит из нескольких компонентов, но главные из них — scheduler и webserver. Без них ничего не запустится.
Scheduler (планировщик) отслеживает все задачи и DAGs, а затем запускает экземпляры задач после установки их зависимостей. В фоновом режиме планировщик запускает подпроцесс, который отслеживает и синхронизирует все DAGs в указанном каталоге. По умолчанию он раз в минуту собирает результаты синтаксического анализа DAGs и проверяет, необходимо ли запустить какие-либо активные задачи. Почитать об этом подробнее можно в документации.
WebServer (веб-сервер) отвечает за отображение веб-интерфейса и аутентификацию пользователей, а также решает, к какой группе должен относиться тот или иной пользователь в соответствии с конфигурационным файлом. И снова ссылка на документацию.
Установка и запуск
Рассмотрим процесс установки и отладки этого чудесного инструмента, существенно облегчающего жизнь разработчика.
Допустим, вам необходимо выполнять определённые шаги с каким-то интервалом. Для автоматизации этой рутинной работы прекрасно подходит Airflow (но на самом деле его функциональность намного шире). Работа проводится на CentOS Stream 8 с правами суперпользователя. Также есть настроенный внешний firewall, поэтому использовать тот, который предлагает операционная система, нет смысла.
Для дальнейшей работы понадобится установленный интерпретатор python последней версии. В репозиториях его нет, но исходный код наиболее свежей версии доступен на официальном сайте языка. На момент написания статьи наиболее свежая стабильная версия — 3.10.5.
Перед началом нужно установить пакеты, необходимые для сборки python из исходного кода:
dnf -y install gcc \ make \ openssl-devel \ bzip2-devel \ libffi-devel \ wget \ sqlite-devel \ zlib-devel \ ncurses-devel \ gdbm-devel \ readline-devel\ tar
Скачиваем исходный код python и распаковываем архив:
wget https://www.python.org/ftp/python/3.10.5/Python-3.10.5.tgz tar xf Python-3.10.5.tgz
Переходим в директорию с исходным кодом и проводим конфигурирование файлов:
cd Python-3. 10.5 ./configure --enable-optimizations
Проведём компиляцию:
make -j $(nproc)
Устанавливаем python:
make altinstall
Правилом хорошего тона будет оставить исходный код собранный из исходных файлов утилит: в случае, если будет необходимо удалить утилиты, понадобится директория, откуда всё собиралось.
Запретим изменение и удаление файлов. Для этого выполним команду:
chattr +i ../Python-3.10.5
Проверяем версию python:
python3.10 --version
Теперь у вас на сервере установлен интерпретатор Python актуальной на данный момент версии.
Установка базы данных PostgreSQL-14
По умолчанию Airflow работает с базой данных SQLite. Её функциональности вполне достаточно для пробного запуска и демонстрации процесса работы, но не хватит для использования в Production-среде, поскольку с этой базой данных невозможно распараллеливание задач. Один из способов решения данной проблемы — использование базы данных PostgreSQL.
В стандартных репозиториях уже содержится встроенный модуль PostgreSQL, но более старой версии. Отключим его для избежания конфликтов версий:
dnf -qy module disable postgresql
Установим последнюю версию репозитория PostgreSQL:
dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Установим сами пакеты PostgreSQL:
dnf install -y postgresql14-server postgresql14-contrib
После установки пакетов для экономии места на сервере необходимо очистить кэш пакетов DNF:
dnf clean all
Инициализируем базу данных PostgreSQL и добавим её в автозагрузку:
/usr/pgsql-14/bin/postgresql-14-setup initdb systemctl enable --now postgresql-14
Создадим базу данных Airflow и пользователя к ней. Предоставим пользователю права на БД:
sudo -iu postgres psql -c "CREATE DATABASE airflow;" sudo -iu postgres psql -c "CREATE USER airflow WITH PASSWORD 'alfa-digital';" sudo -iu postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE airflow TO airflow;"
Для обеспечения безопасности создадим непривилегированного системного пользователя airflow, под которым будут работать непосредственно сами сервисы:
useradd airflow
Получим права пользователя airflow:
su - airflow
В Python есть правило: для каждого приложения используется своё виртуальное окружение. Это позволит избежать проблем с зависимостями в дальнейшей работе.
Создадим виртуальное окружение и активируем его:
python3.10 -m venv .venv source .venv/bin/activate
Установим необходимые библиотеки. Для экономии места на сервере используем ключ --no-cache-dir
:
pip3.10 install --no-cache-dir apache-airflow psycopg2-binary virtualenv kubernetes
Чтобы не прописывать переменные каждый раз, добавим их в файл .bashrc
. Это позволит не прописывать переменные при каждом входе в систему.
cat >> /home/airflow/.bashrc << EOF export AIRFLOW_HOME=/home/airflow export AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:alfa-digital@localhost/airflow export AIRFLOW__WEBSERVER__DEFAULT_UI_TIMEZONE=Europe/Moscow EOF source ~/.bashrc
Проведём миграции базы данных Airflow. Также будут созданы все необходимые конфигурационные файлы для работы:
airflow db init
Создадим пользователя для работы с UI Apache Airflow:
airflow users create --username admin \ --firstname Aleksey\ --lastname Karpov \ --role Admin \ --email akarpov5@alfabank. ru \ --password alfa-digital
Поправим конфигурационный файл airflow.cfg
:
sed -i '/executor/s/SequentialExecutor/LocalExecutor/' /home/airflow/airflow.cfg
Список пользователей Apache Airflow можно посмотреть командой:
airflow users list
Выйдем из пользователя Airflow:
exit
Теперь создадим хук, который позволяет сохранять права на pid-файл Airflow, а также сервисы для scheduler и webserver. Воспользуемся официальным репозиторием:
curl https://raw.githubusercontent.com/apache/airflow/main/scripts/systemd/airflow.conf -o /etc/tmpfiles.d/airflow.conf curl https://raw.githubusercontent.com/apache/airflow/main/scripts/systemd/airflow-webserver.service -o /etc/systemd/system/airflow-webserver.service curl https://raw.githubusercontent.com/apache/airflow/main/scripts/systemd/airflow-scheduler.service -o /etc/systemd/system/airflow-scheduler.service
Учитывая то, что Airflow работает в виртуальном окружении, поправим файлы сервисов:
sed -i 's/\/bin/\/home\/airflow\/. venv\/bin/g' /etc/systemd/system/airflow-scheduler.service /etc/systemd/system/airflow-webserver.service
Создадим файл для переменных среды, чтобы они автоматически подключались во время работы сервисов:
cat > /etc/sysconfig/airflow << EOF AIRFLOW_HOME=/home/airflow AIRFLOW_CONFIG=/home/airflow/airflow.cfg AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:alfa-digital@localhost/airflow AIRFLOW__WEBSERVER__DEFAULT_UI_TIMEZONE=Europe/Moscow PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/home/airflow/.venv/bin EOF
Дадим права на данный файл пользователю airflow, иначе сервисы не смогут его прочитать:
chown airflow:airflow /etc/sysconfig/airflow
Перезагрузим демон systemctl
, чтобы изменения подтянулись системой:
systemctl daemon-reload
Запустим сервисы Apache Airflow и добавим их в автозагрузку:
systemctl enable --now airflow-scheduler systemctl enable --now airflow-webserver
Теперь у вас на сервере есть полноценный Airflow, который будет автоматически включаться при старте системы.
Дебаг
Что-то не работает? Занимаемся дебагом!
Посмотрим состояние WebServer:
systemctl status airflow-webserver -l
Вывод:
airflow-webserver.service - Airflow webserver daemon Loaded: loaded (/etc/systemd/system/airflow-webserver.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2022-07-09 17:01:02 MSK; 2h 38min ago Main PID: 6542 (airflow) Tasks: 6 (limit: 23630) Memory: 592.1M CGroup: /system.slice/airflow-webserver.service ├─ 6542 /home/airflow/.venv/bin/python3.10 /home/airflow/.venv/bin/airflow webserver --pid /run/airflow/webserver.pid ├─ 6594 gunicorn: master [airflow-webserver] ├─ 6603 [ready] gunicorn: worker [airflow-webserver] ├─ 6604 [ready] gunicorn: worker [airflow-webserver] ├─ 6605 [ready] gunicorn: worker [airflow-webserver] └─47985 [ready] gunicorn: worker [airflow-webserver]
Посмотрим состояние Scheduler:
systemctl status airflow-scheduler -l
Вывод:
airflow-scheduler. service - Airflow scheduler daemon Loaded: loaded (/etc/systemd/system/airflow-scheduler.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2022-07-09 17:00:56 MSK; 2h 39min ago Main PID: 6286 (/home/airflow/.) Tasks: 72 (limit: 23630) Memory: 1.7G CGroup: /system.slice/airflow-scheduler.service ├─6286 /home/airflow/.venv/bin/python3.10 /home/airflow/.venv/bin/airflow scheduler ├─6288 gunicorn: master [gunicorn] ├─6289 gunicorn: worker [gunicorn] ├─6290 airflow executor -- LocalExecutor ├─6293 gunicorn: worker [gunicorn] ├─6299 airflow worker -- LocalExecutor ├─6301 airflow worker -- LocalExecutor ├─6303 airflow worker -- LocalExecutor ├─6305 airflow worker -- LocalExecutor ├─6308 airflow worker -- LocalExecutor ├─6310 airflow worker -- LocalExecutor ├─6313 airflow worker -- LocalExecutor ├─6314 airflow worker -- LocalExecutor ├─6318 airflow worker -- LocalExecutor ├─6319 airflow worker -- LocalExecutor ├─6322 airflow worker -- LocalExecutor ├─6325 airflow worker -- LocalExecutor ├─6326 airflow worker -- LocalExecutor ├─6329 airflow worker -- LocalExecutor ├─6331 airflow worker -- LocalExecutor ├─6334 airflow worker -- LocalExecutor ├─6338 airflow worker -- LocalExecutor ├─6339 airflow worker -- LocalExecutor ├─6342 airflow worker -- LocalExecutor ├─6343 airflow worker -- LocalExecutor ├─6346 airflow worker -- LocalExecutor ├─6347 airflow worker -- LocalExecutor ├─6349 airflow worker -- LocalExecutor ├─6350 airflow worker -- LocalExecutor ├─6353 airflow worker -- LocalExecutor ├─6354 airflow worker -- LocalExecutor ├─6355 airflow worker -- LocalExecutor ├─6359 airflow worker -- LocalExecutor ├─6361 airflow worker -- LocalExecutor ├─6366 airflow worker -- LocalExecutor ├─6372 airflow worker -- LocalExecutor ├─6373 airflow worker -- LocalExecutor └─6375 airflow scheduler -- DagFileProcessorManager
Посмотрим последние логи:
journalctl -eu airflow-webserver journalctl -eu airflow-scheduler
Запуск DAG
Веб-сервер можно открыть напрямую в браузере. Он будет доступен по порту 8080, например:
http://192.168.232.32:8080
Введём данные пользователя, который был создан выше, и нажмём кнопку Sign In.
После входа вам будет представлен набор DAGs, предназначенных для демонстрации функциональности Airflow. Зайдём в DAG example_bash_operator
:
На рисунке представлен непосредственно код самого DAG. Теперь запустим его:
Посмотрим на граф DAGа. Жмём на Graph:
Посмотрим, как отработал DAG. Для этого нажмём Grid:
Увидим, что DAG выполнился успешно. Зелёным цветом обозначено то, что должно было быть исполнено, а розовым — то, что не должно:
Итак, вы узнали, что такое Apache Airflow: познакомились с его основными понятиями, научились собирать интерпретатор Python из исходного кода, установили базу данных PostgreSQL, создали сервисы для Airflow, а также запустили первый DAG.
В следующей статье я расскажу о видах Airflow Operators, чем они отличаются, для чего они нужны и как ими пользоваться.
Как установить на Ubuntu Apache Superset
Contents
- 1 Введение
- 2 Краткий экскурс в Docker и Docker-Compose
- 2.1 Разница между Docker и Docker-Compose
- 2.2 Список команд для Docker
- 2.3 Список команд для Docker-Compose
- 2.4 Где хранятся контейнеры и образы Docker?
- 2.5 Видео-подборка по теме Docker
- 3 Установка Apache Superset на VPS с помощью image Docker
- 3.1 Создаем VPS
- 3.2 Подключаемся через ssh и подготавливаем среду Docker
- 3.3 Как установить и настроить Apache Superset Docker
- 3.4 Как остановить контейнер, удалить образ Docker
- 4 Как развернуть Apache Superset с помощью Docker-Compose
- 4.1 Устанавливаем Docker (все как в предыдущем разделе)
- 4.2 Устанавливаем docker-compose
- 4.3 Устанавливаем Apache Superset версии 1.1.0 через docker-compose
- 5 Установка Apache Superset на VPS на чистую Ubuntu 20.04
На рынке появились ряд open-source решений, которые могут конкурировать в рамках небольших задач с промышленными BI системами (ввиду их условной бесплатности, условной т. к. зарплату разработчикам никто не отменял).
В этой статье я опишу процесс инсталляции Apache Superset на VPS от Beget (это не реклама, просто сам пользуюсь ими). Инсталляцию выполним двумя способами — при помощи Docker и Docker-Compose.
Канал в телеграме Apache Superset BI:
В первую очередь рекомендую почитать статьи:
- Основы Docker за Х часов и Y дней
- Руководство по Docker Compose для начинающих
- Learn Docker in Y minutes
- Архитектура Docker и ее компоненты для начинающих
Docker — это инструмент контейнеризации с открытым исходным кодом, используемый для упрощения создания и развертывания приложений с использованием концепции контейнеров.
Контейнеры позволяют нам упаковать все части приложения и развернуть его как единое целое.
Docker Compose — это инструмент Docker, который используется для развертывания многоконтейнерных приложений.
Разница между Docker и Docker-Compose
Docker используется для управления отдельным контейнером (службой) вашего приложения.
Docker-Compose используется для управления несколькими контейнерами одновременно для одного и того же приложения. Этот инструмент предлагает те же функции, что и Docker, но позволяет создавать более сложные приложения.
Docker (индивидуальный контейнер) VS Docker-Compose (несколько контейнеров):
Список команд для Docker
attach Attach local standard input, output, and error streams to a running container build Build an image from a Dockerfile commit Create a new image from a container’s changes cp Copy files/folders between a container and the local filesystem create Create a new container diff Inspect changes to files or directories on a container’s filesystem events Get real time events from the server exec Run a command in a running container export Export a container’s filesystem as a tar archive history Show the history of an image images List images import Import the contents from a tarball to create a filesystem image info Display system-wide information inspect Return low-level information on Docker objects kill Kill one or more running containers load Load an image from a tar archive or STDIN login Log in to a Docker registry logout Log out from a Docker registry logs Fetch the logs of a container pause Pause all processes within one or more containers port List port mappings or a specific mapping for the container ps List containers pull Pull an image or a repository from a registry push Push an image or a repository to a registry rename Rename a container restart Restart one or more containers rm Remove one or more containers rmi Remove one or more images run Run a command in a new container save Save one or more images to a tar archive (streamed to STDOUT by default) search Search the Docker Hub for images start Start one or more stopped containers stats Display a live stream of container(s) resource usage statistics stop Stop one or more running containers tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE top Display the running processes of a container unpause Unpause all processes within one or more containers update Update configuration of one or more containers version Show the Docker version information wait Block until one or more containers stop, then print their exit codes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | attach Attach local standard input, output, and error streams to a running container build Build an image from a Dockerfile commit Create a new image from a container’s changes cp Copy files/folders between a container and the local filesystem create Create a new container diff Inspect changes to files or directories on a container’s filesystem events Get real time events from the server exec Run a command in a running container export Export a container’s filesystem as a tar archive history Show the history of an image images List images import Import the contents from a tarball to create a filesystem image info Display system-wide information inspect Return low-level information on Docker objects kill Kill one or more running containers load Load an image from a tar archive or STDIN login Log in to a Docker registry logout Log out from a Docker registry logs Fetch the logs of a container pause Pause all processes within one or more containers port List port mappings or a specific mapping for the container ps List containers pull Pull an image or a repository from a registry push Push an image or a repository to a registry rename Rename a container restart Restart one or more containers rm Remove one or more containers rmi Remove one or more images run Run a command in a new container save Save one or more images to a tar archive (streamed to STDOUT by default) search Search the Docker Hub for images start Start one or more stopped containers stats Display a live stream of container(s) resource usage statistics stop Stop one or more running containers tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE top Display the running processes of a container unpause Unpause all processes within one or more containers update Update configuration of one or more containers version Show the Docker version information wait Block until one or more containers stop, then print their exit codes |
Список команд для Docker-Compose
build Build or rebuild services config Validate and view the Compose file create Create services down Stop and remove resources events Receive real time events from containers exec Execute a command in a running container help Get help on a command images List images kill Kill containers logs View output from containers pause Pause services port Print the public port for a port binding ps List containers pull Pull service images push Push service images restart Restart services rm Remove stopped containers run Run a one-off command scale Set number of containers for a service start Start services stop Stop services top Display the running processes unpause Unpause services up Create and start containers version Show version information and quit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | build Build or rebuild services config Validate and view the Compose file create Create services down Stop and remove resources events Receive real time events from containers exec Execute a command in a running container help Get help on a command images List images kill Kill containers logs View output from containers pause Pause services port Print the public port for a port binding ps List containers pull Pull service images push Push service images restart Restart services rm Remove stopped containers run Run a one-off command scale Set number of containers for a service start Start services stop Stop services top Display the running processes unpause Unpause services up Create and start containers version Show version information and quit |
Где хранятся контейнеры и образы Docker?
Содержимое /var/lib/docker
каталога зависит от драйвера, который Docker использует для хранения.
- Контейнеры лежат в каталоге
/var/lib/docker/containers
/var/lib/docker/{driver-name}
будет содержать специфичное для драйвера хранилище для содержимого images.
Видео-подборка по теме Docker
Docker-compose что это? Первое знакомство
Docker compose — группы контейнеров. Docker
Docker Compose in 12 Minutes
youtube.com/embed/Qw9zlE3t8Ko?feature=oembed» frameborder=»0″ allow=»accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture» allowfullscreen=»»>Основы Docker. Большой практический выпуск
Создаем VPS
Регистрируемся на beget.com, в разделе VPS есть кнопка создать VPS:
Для теста можете использовать простой тариф
Прописываем hostname, запоминаем пароль и нажимаем создать сервер. Через минуту сервер готов.
Подключаемся через ssh и подготавливаем среду Docker
На винде есть встроенный ssh, чтобы через встроенный ssh подключиться, необходимо открыть консоль cmd и вбить команду:
ssh [email protected]. 58.178
Далее необходимо запустить набор команд для инсталляции Docker
1 Обновляем существующий список пакетов
sudo apt update
sudo apt update |
2 Далее устанавливаем пакеты, которые позволят apt
использовать пакеты через HTTPS:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
sudo apt install apt-transport-https ca-certificates curl software-properties-common |
3 Далее добавим ключ GPG для официального репозитория Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add —
curl -fsSL https://download.docker. com/linux/ubuntu/gpg | sudo apt-key add — |
4 Добавляем ремозиторий докер в источники apt
sudo add-apt-repository «deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable»
sudo add-apt-repository «deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable» |
5 Обновляем базу данных пакетов и добавим в нее пакеты Docker из недавно добавленного репозитория:
sudo apt update
sudo apt update |
6 Далее проверим, что установка будет выполняться из репозитория Docker, а не из репозитория Ubuntu по умолчанию:
apt-cache policy docker-ce
apt-cache policy docker-ce |
Мы должны получить следующий ответ (номер версии Docker может отличаться):
root@apache1superset:~# apt-cache policy docker-ce docker-ce: Installed: (none) Candidate: 5:20. 10.6~3-0~ubuntu-focal Version table: 5:20.10.6~3-0~ubuntu-focal 500 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages 5:20.10.5~3-0~ubuntu-focal 500 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages 5:20.10.4~3-0~ubuntu-focal 500 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages 5:20.10.3~3-0~ubuntu-focal 500 …
1 2 3 4 5 6 7 8 9 10 11 12 13 | root@apache1superset:~# apt-cache policy docker-ce docker-ce: Installed: (none) Candidate: 5:20.10.6~3-0~ubuntu-focal Version table: 5:20.10.6~3-0~ubuntu-focal 500 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages 5:20.10.5~3-0~ubuntu-focal 500 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages 5:20. 10.4~3-0~ubuntu-focal 500 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages 5:20.10.3~3-0~ubuntu-focal 500 … |
или картинка
docker-ce
пока еще не установлен (Installed: none), но является кандидатом на установку из репозитория Docker для Ubuntu 20.10.4 (версия focal
).
Далее устанавливаем докер командой (на доп.вопрос отвечаем «yes«):
sudo apt install docker-ce
sudo apt install docker-ce |
Docker будет автоматически установлен, также запустится демон-процесс и будет активирован запуск при загрузке. Проверьте статус докера (что он running/active):
sudo systemctl status docker
sudo systemctl status docker |
Теперь у вас есть доступ к службе Docker (демон-процесс) и к утилите командной строки docker
.
Как установить и настроить Apache Superset Docker
Ссылка на официальный докер образ https://hub.docker.com/r/apache/superset
Запускаем команду:
docker pull apache/superset
docker pull apache/superset |
Начнется процесс скачивания последнего образа
Результат команды:
Для того, чтобы посмотреть список образов Docker, которые были загружены на ваш сервер VPS, введите команду:
docker images
docker images |
Результат:
Далее необходимо стартовать superset instance для порта 8080. Запускаем команду:
docker run -d -p 8080:8088 —name superset apache/superset
docker run -d -p 8080:8088 —name superset apache/superset |
Результат:
Теперь мы можем зайти по url в Superset, в моем случае это http://45. 67.58.178:8080/login/. Отображается
Теперь нам нужно донастроить наш инстанс.
Устанавливаем админский аккаунт
docker exec -it superset superset fab create-admin \ —username admin \ —firstname Superset \ —lastname Admin \ —email [email protected] \ —password admin
1 2 3 4 5 6 | docker exec -it superset superset fab create-admin \ —username admin \ —firstname Superset \ —lastname Admin \ —email [email protected] \ —password admin |
Результат:
Далее обновляем local DB до последней версии:
docker exec -it superset superset db upgrade
docker exec -it superset superset db upgrade |
Загружаем примеры в наш инстанс:
docker exec -it superset superset load_examples
docker exec -it superset superset load_examples |
Загрузился один пример:
Далее устанавливаем роли:
docker exec -it superset superset init
docker exec -it superset superset init |
результат:
Теперь заходим на страницу http://45. 67.58.178:8080/login/ с логином и паролем (я установил стандартный admin/admin для презентации).
Установилась старая версия
Развернуть исправно образ с более новой версией 1.1.0 с помощью команды:
docker pull apache/superset:1.1.0
docker pull apache/superset:1.1.0 |
у меня не вышло. Для ознакомления с возможностями Apache Superset можете воспользоваться версией 0.999.0dev, по-крайней мере развертывание этой версии самое простое.
Далее рассмотрим более сложный пример с docker-compose.
Как остановить контейнер, удалить образ Docker
docker stop superset docker rm -v superset docker image rm apache/superset
docker stop superset
docker rm -v superset
docker image rm apache/superset |
Для разворачивания Apache-Superset рекомендую увеличить мощности сервера VPS, мне 1 ядра и 1 Гб памяти не хватило. По ощущениям должно хватить 2 ядра и 2 Гб памяти:
Видео по инсталляции Apache Superset с помощью Docker-Compose:
Устанавливаем Docker (все как в предыдущем разделе)sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add — sudo add-apt-repository «deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable» sudo apt update apt-cache policy docker-ce sudo apt install docker-ce sudo systemctl status docker
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download. docker.com/linux/ubuntu/gpg | sudo apt-key add —
sudo add-apt-repository «deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable»
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
sudo systemctl status docker |
Загружаем текущую стабильную версию Docker Compose:
sudo curl -L «https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)» -o /usr/local/bin/docker-compose
sudo curl -L «https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)» -o /usr/local/bin/docker-compose |
Результат команды:
docker-compose файл на сервере:
Применяем разрешения для исполняемого файла к двоичному файлу:
sudo chmod +x /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose |
Чтобы протестировать docker-compose (установилась версия или нет), запустим команду:
docker-compose —version
docker-compose —version |
Результат команды:
Устанавливаем Apache Superset версии 1. 1.0 через docker-composeПример инсталляции из youtube:
Клонируем репозиторий, переключаемся на версию 1.1.0, проверяем статус.
git clone https://github.com/apache/superset.git cd superset git checkout 1.1.0 git status
1 2 3 4 5 6 7 | git clone https://github.com/apache/superset.git
cd superset
git checkout 1.1.0
git status |
Результат:
Через менеджер в папке root/superset в файле docker-compose-non-dev.yml меняем версию latest-dev на 1.1.0
Заходим в директорию superset:
cd superset
cd superset |
Запускаем процесс зарвертывания контейнеров через docker-compose:
docker-compose -f docker-compose-non-dev. yml up
docker-compose -f docker-compose-non-dev.yml up |
или устанавливаем в фоновом режиме:
docker-compose -f docker-compose-non-dev.yml up -d
docker-compose -f docker-compose-non-dev.yml up -d |
Вывести информацию по контейнерам и логи:
docker ps docker logs -f superset_app
docker ps
docker logs -f superset_app |
Результат:
Для установки Apache Superset требуется Python версии 3.7.9. Пока не удалось до конца настроить Apache Superset через Anaconda3, но приведу код, который позволил успешно инсталлировать Superset (без запуска).
//Install Anaconda3 на Ubuntu 20.04 sudo apt update sudo apt install build-essential cd /tmp curl https://repo.anaconda.com/archive/Anaconda3-2020. 11-Linux-x86_64.sh —output anaconda.sh sha256sum anaconda.sh bash anaconda.sh source ~/.bashrc conda list //Create and activate an conda environment conda create —name py379 python=3.7.9 conda activate py379 python —version pip install apache-superset superset db upgrade export FLASK_APP=superset superset fab create-admin superset load_examples superset init
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | //Install Anaconda3 на Ubuntu 20.04
sudo apt update
sudo apt install build-essential
cd /tmp
curl https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh —output anaconda.sh
sha256sum anaconda. sh
bash anaconda.sh
source ~/.bashrc
conda list
//Create and activate an conda environment conda create —name py379 python=3.7.9
conda activate py379
python —version
pip install apache-superset
superset db upgrade
export FLASK_APP=superset
superset fab create-admin
superset load_examples
superset init |
Компиляция и установка — HTTP-сервер Apache версии 2.4
HTTP-сервер Apache версии 2.4
Доступные языки: de | ru | да | фр | я | ко | tr
Этот документ описывает компиляцию и установку HTTP-сервера Apache. только в Unix и Unix-подобных системах. Для составления и установка в Windows, см. Использование HTTP-сервера Apache с Microsoft Windows и компиляция Apache для Microsoft Windows. Для других платформ см. документацию по платформе.
Apache httpd использует libtool
и autoconf
для создания среды сборки, похожей на многие другие Open Source
проекты.
Если вы обновляете одну минорную версию до следующей (для например, с 2.4.8 по 2.4.9), перейдите к разделу обновления.
- Обзор для нетерпеливый
- Требования
- Скачать
- Экстракт
- Настройка исходного дерева
- Сборка
- Установить
- Настроить
- Тест
- Модернизация
- Сторонние пакеты
См. также
- Настройка исходного дерева
- Запуск Apache httpd
- Остановка и перезапуск
- Комментарии
- Установка на Fedora/CentOS/Red Hat5 Enterprise Linux
sudo yum установить httpd sudo systemctl включить httpd sudo systemctl начать httpd
Более новые версии этих дистрибутивов используют
dnf
вместоyum
. См. Документация проекта Fedora для заметок по платформе.- Установка в Ubuntu/Debian
sudo apt установить apache2 запуск службы sudo apache2
См. документацию Ubuntu для примечаний по конкретным платформам.
- Установка из исходников
Скачать Загрузите последнюю версию с http://httpd.apache.org/download.cgi. Экстракт $ gzip -d httpd- NN .tar.gz
$ tar xvf httpd- NN .tar
$ cd httpd- NNНастройка $ ./configure --prefix= ПРЕФИКС
Компиляция $ сделать
Установить $ сделать установить
Настройка $ vi ПРЕФИКС /conf/httpd. conf
Тест $ ПРЕФИКС /bin/apachectl -k start
NN необходимо заменить на текущую версию номер, а ПРЕФИКС необходимо заменить на путь файловой системы, под которым должен быть установлен сервер. Если ПРЕФИКС не указывается, по умолчанию
/usr/local/apache2
.Каждый раздел процесса компиляции и установки более подробно описано ниже, начиная с требований для компиляции и установки Apache httpd.
Ваша любимая платформа не упоминается здесь? Приходите помочь нам улучшить этот документ.
Для сборки Apache httpd существуют следующие требования:
- APR и APR-Util
- Убедитесь, что на вашем компьютере уже установлены APR и APR-Util.
ваша система. Если вы не используете или предпочитаете не использовать предоставленную системой
версии, загрузите последние версии как APR, так и APR-Util
из Apache APR, распаковать
их в
/httpd_source_tree_root/srclib/apr
и/httpd_source_tree_root/srclib/apr-util
(убедитесь, что в именах каталогов нет номеров версий; например, дистрибутив APR должен находиться в /httpd_source_tree_root/srclib/apr/) и использовать. /configure
s--with-included-apr
вариант. На некоторых платформах вам, возможно, придется установить соответствующие пакеты-dev
, позволяющие httpd собирать против вашей установленной копии APR и APR-Util. - Perl-совместимая библиотека регулярных выражений (PCRE)
- Эта библиотека необходима, но больше не входит в состав httpd.
Загрузите исходный код с http://www.pcre.org,
или установите порт или пакет. Если ваша система сборки не может найти
скрипт pcre-config, установленный сборкой PCRE, укажите на него
используя
--with-pcre
параметр. На некоторых платформах возможно, вам придется установить соответствующий-dev
пакет, позволяющий httpd собираться против вашей установленной копии ПКРЕ. - Место на диске
- Убедитесь, что у вас есть не менее 50 МБ временного свободного места на диске. доступное пространство. После установки сервер занимает около 10 МБ дискового пространства. Фактическое место на диске требования будут значительно различаться в зависимости от выбранного вами параметры конфигурации, любые сторонние модули и, конечно же, размер веб-сайта или сайтов, которые у вас есть на сервере.
- Компилятор ANSI-C и система сборки
- Убедитесь, что у вас установлен компилятор ANSI-C. GNU C
компилятор (GCC) от Free Software Foundation (FSF)
Рекомендовано. Если у вас нет GCC
тогда хотя бы убедитесь, что компилятор вашего поставщика — ANSI
совместимый. Кроме того, ваш
PATH
должен содержать основные инструменты сборки, такие как, делают
. - Точное время
- Элементы протокола HTTP выражаются в виде времени
день. Итак, пришло время исследовать настройку какое-то время
средства синхронизации в вашей системе. Обычно
9Программы 0009 ntpdate или
xntpd
используются для этой цели, которые основаны на протоколе сетевого времени (NTP). См. НПТ домашняя страница для получения более подробной информации о программном обеспечении NTP и общедоступных серверы времени. - Перл 5 [ДОПОЛНИТЕЛЬНО]
- Для некоторых сценариев поддержки, таких как
apxs
илиdbmmanage
(которые написан на Perl) требуется интерпретатор Perl 5 (версии 5.003 или новее достаточно). Если интерпретатор Perl 5 не найденнастроить скрипт
, вы не сможете использовать затронутые сценарии поддержки. Конечно, вы еще сможете собрать и использовать Apache httpd.
HTTP-сервер Apache можно загрузить с HTTP-сервера Apache.
сайт загрузки, в котором перечислены несколько зеркал. Большинство пользователей
Apache в unix-подобных системах будет лучше загружать и
компиляция исходной версии. Процесс сборки (описан ниже)
легко, и это позволяет настроить сервер в соответствии с вашими потребностями.
Кроме того, бинарные версии часто не соответствуют последним
исходные релизы. Если вы загружаете бинарный файл, следуйте инструкциям
в Файл INSTALL.bindist
внутри дистрибутива.
После загрузки важно убедиться, что у вас есть полная и неизмененная версия HTTP-сервера Apache. Этот можно выполнить, протестировав загруженный tarball на соответствие PGP-подпись. Подробности о том, как это сделать, доступны для скачивания странице и доступен расширенный пример, описывающий использование ПГП.
Извлечение исходного кода из tar-архива HTTP-сервера Apache — это простой вопрос распаковки, а затем распаковки:
$ gzip -d httpd- NN .tar.gz
$ tar xvf httpd- NN .tar
Это создаст новый каталог в текущем каталоге
содержащий исходный код дистрибутива. Вам следует cd
в этот каталог, прежде чем продолжить
компиляция сервера.
Следующим шагом является настройка исходного дерева Apache для вашего
конкретной платформы и личных требований. Это делается с помощью
сценарий настроить
включено в
корневой каталог дистрибутива. (Разработчики скачивают
неизданная версия исходного дерева Apache должна иметь autoconf
и libtool
установлены и будут
необходимо запустить buildconf
, прежде чем переходить к следующему
шаги. Для официальных выпусков это не требуется.)
Чтобы настроить исходное дерево, используя все параметры по умолчанию,
просто введите ./configure
. Чтобы изменить значение по умолчанию
варианты, настроить
принимает различные переменные
и параметры командной строки.
Самый важный параметр — адрес --префикс
где Apache должен быть установлен позже, потому что Apache должен быть
настроен для правильной работы этого местоположения. Более тонкая настройка
контроль расположения файлов возможен при дополнительном конфигурировании
опции.
Также на этом этапе вы можете указать, какие функции вы
хотите включить в Apache, включив и отключив модули. Apache поставляется с широким набором модулей.
включены по умолчанию. Они будут составлены как
общие объекты (DSO), которые можно загрузить
или выгружается во время выполнения.
Вы также можете выбрать статическую компиляцию модулей, используя опцию --enable- модуль =статический
.
Дополнительные модули включаются с помощью --enable- модуль
опция, где модуль имя модуля с mod_
удалена строка и преобразовано любое подчеркивание
до тире. Точно так же вы можете отключить модули с помощью --отключить- модуль
опция. Будьте осторожны, когда
используя эти параметры, поскольку configure
не может вас предупредить
если указанный вами модуль не существует; он просто проигнорирует
вариант.
Кроме того, иногда необходимо предоставить настроить сценарий
с дополнительной информацией о
расположение вашего компилятора, библиотек или заголовочных файлов. Это
делается путем передачи либо переменных среды, либо командной строки
опции настроить
. Для получения дополнительной информации см. настроить страницу руководства
. Или вызвать настроить
с помощью опции --help
.
Для краткого ознакомления с вашими возможностями здесь
это типичный пример, который компилирует Apache для установки
дерево /sw/pkg/apache
с определенным компилятором и флагами
плюс два дополнительных модуля mod_ldap
и mod_lua
:
$ CC="pgcc" CFLAGS="-O2" \
./configure --prefix=/sw/pkg/apache \
--enable-ldap=shared \
--enable-lua=shared
При запуске configure
потребуется несколько минут для
проверить наличие функций в вашей системе и собрать
Makefiles, которые позже будут использоваться для компиляции сервера.
Подробная информация обо всех различных параметрах configure
приведена
доступно на странице руководства configure
.
Теперь вы можете создавать различные части, из которых состоит Apache. package, просто выполнив команду:
$ make
Пожалуйста, будьте терпеливы, так как базовая конфигурация требует несколько минут для компиляции, и время будет сильно различаться в зависимости от вашего оборудования и количества модулей, которые вы включили.
Теперь пришло время установить пакет под настроенным
установка ПРЕФИКС (см. параметр --prefix
выше), выполнив:
$ make install
Этот шаг обычно требует привилегий root, поскольку ПРЕФИКС обычно является каталогом с ограниченной записью. разрешения.
Если вы обновляете, установка не перезапишет ваши конфигурационные файлы или документы.
Далее вы можете настроить HTTP-сервер Apache, отредактировав
файлы конфигурации под ПРЕФИКС /conf/
.
$ vi ПРЕФИКС /conf/httpd. conf
См. руководство Apache в разделе ПРЕФИКС /docs/manual/
или посетите http://httpd.apache.org/docs/2.4/ для получения последней
версия этого руководства и полный справочник доступных директив конфигурации.
Теперь вы можете запустить свой Apache HTTP-сервер, сразу запустив:
$ ПРЕФИКС /bin/apachectl -k start
После этого вы сможете запросить свой первый документ
через URL-адрес http://localhost/
. Веб-страница, которую вы видите, расположена
под DocumentRoot
,
обычно это ПРЕФИКС /htdocs/
.
Затем снова остановите сервер,
работает:
$ ПРЕФИКС /bin/apachectl -k stop
Первым шагом в обновлении является чтение объявления о выпуске
и файл CHANGES
в исходном дистрибутиве на
найти любые изменения, которые могут повлиять на ваш сайт. При переключении между
основные выпуски (например, с 2. 0 до 2.2 или с 2.2 до 2.4),
скорее всего, будут большие различия во времени компиляции и
конфигурации во время выполнения, которая потребует ручных корректировок. Все
модули также необходимо будет обновить, чтобы учесть изменения в
API модуля.
Обновление с одной минорной версии на другую (например, с
2.2.55 до 2.2.57) проще. сделать установить
процесс не перезапишет ни один из ваших существующих документов, журнал
файлы или файлы конфигурации. Кроме того, разработчики делают
все усилия, чтобы избежать несовместимых изменений в настроить параметры
, конфигурацию во время выполнения или
модуль API между младшими версиями. В большинстве случаев вы должны быть в состоянии
используйте идентичный настроить
командную строку, идентичную
файл конфигурации, и все ваши модули должны продолжать
Работа.
Чтобы обновить младшие версии, начните с поиска файла config.nice
в каталоге build
ваш установленный сервер или в корне исходного дерева для вашего
старая установка. Это будет содержать точное настроить
командную строку, которую вы использовали для
настроить исходное дерево. Затем, чтобы перейти с одной версии на
следующий, вам нужно только скопировать файл config.nice
в
исходное дерево новой версии, отредактируйте его, чтобы сделать любой желаемый
изменения, а затем запустите:
$ ./config.nice
$ make
$ make install
$ ПРЕФИКС /bin/apachectl -k graceful-stop
$ ПРЕФИКС /bin/apachectl -k start
Вы всегда должны тестировать любую новую версию в твоей
окружающей среды, прежде чем запускать его в производство. Например, вы
можно установить и запустить новую версию вместе со старой,
использовать другой --префикс
и
другой порт (путем настройки директивы Listen
) для проверки любого
несовместимости перед окончательным обновлением.
Вы можете передать дополнительные аргументы в config. nice
,
который будет добавлен к вашему исходному configure
опции:
$ ./config.nice --prefix=/home/test/apache --with-port=90
Большое количество третьих сторон предоставляют свои собственные упакованные дистрибутивы HTTP-сервера Apache для установки на конкретные платформы. Сюда входят различные дистрибутивы Linux, различные сторонние пакеты Windows, Mac OS X, Solaris и многие другие более.
Наша лицензия на программное обеспечение не только разрешает, но и поощряет такие действия. перераспределения. Однако это приводит к ситуации, когда макет конфигурации и значения по умолчанию для вашей установки сервера может отличаться от заявленного в документации. Пока к сожалению, эта ситуация вряд ли изменится в ближайшее время скоро.
Описание этих сторонних дистрибутивов поддерживается в HTTP серверной вики и должно отражать текущее состояние этих сторонние дистрибутивы. Тем не менее, вам необходимо ознакомиться себя с управлением пакетами вашей конкретной платформы и процедуры установки.
Уведомление:
Это не раздел вопросов и ответов. Комментарии, размещенные здесь, должны указывать на предложения по улучшению документации или сервера и могут быть удалены нашими модераторами, если они реализованы или считаются недействительными/не по теме. Вопросы о том, как управлять HTTP-сервером Apache, следует направлять либо на наш IRC-канал #httpd, на Libera.chat, либо в наши списки рассылки.
Установить веб-сервер Apache
Введение
Apache находится в активной разработке с 1993 года и со временем стал одним из самых популярных веб-серверов в мире. Веб-сервер Apache является ключевым компонентом программного стека LAMP (Linux, Apache, Oracle MySQL и Perl/PHP) и продолжает широко использоваться сегодня.
Веб-сервер Apache доступен непосредственно из репозитория Application Streams в Oracle Linux 8 или более поздней версии и прост в развертывании и настройке.
Предпосылки
- Любая система с установленным Oracle Linux 8
Цели
В конце этого руководства вы должны уметь делать следующее:
- Установите и настройте пакет Apache
- Настроить брандмауэр
- Применить конфигурации Apache
- Безопасные веб-службы
Установка и настройка пакета веб-сервера
Установите пакет
httpd
и его зависимости.sudo dnf установить httpd
Включить и запустить службу
httpd
.Эта команда включает и запускает службу
httpd
для немедленного использования, а также автоматически запускает службу после перезагрузки системы:sudo systemctl enable --now httpd.service
Чтобы проверить статус службы, введите:
sudo systemctl статус httpd
(необязательно) Если вы используете настраиваемый профиль брандмауэра или экземпляр Oracle Cloud Infrastructure, откройте порт брандмауэра для веб-службы Apache (80).
Эти команды включают порт брандмауэра для веб-службы Apache и перезагружают службу брандмауэра по умолчанию:
sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --reload
Протестируйте развертывание.
В веб-браузере перейдите на доменное имя или IP-адрес вашей системы, например, http://myserver.example.com. Веб-сервер Apache открывает тестовую страницу по умолчанию.
Настройка Apache
Чтобы изменить корневой путь для вашего веб-сервера, не редактируйте файл /etc/httpd/conf/httpd.conf
напрямую. Вместо этого в качестве предпочтительного метода создайте файл конфигурации для конкретного сайта в каталоге /etc/httpd/conf.d
.
В следующем примере создается файл /etc/httpd/conf.d/example.com.conf
, содержащий конфигурации для виртуальных хостов.
Создайте виртуальные хосты, добавив следующую информацию в
/etc/httpd/conf. d/example.com.conf
:Прослушать *:80
<Виртуальный хост *:80>
ServerName example.com
ServerAlias www.example.comDocumentRoot /var/www/example.com/html/
ErrorLog /var/log/httpd/example.com_error.log
CustomLog /var/log/httpd/example.com_access.log в сочетаниивиртуальный хост>
ServerName и ServerAlias могут быть именами хостов, доменными именами или IP-адресами, которые можно использовать для доступа к службе.
Создайте корневую папку документа.
В корневой папке находятся веб-страницы, которые Apache предоставляет браузерам.
sudo mkdir -p /var/www/example.com/html sudo echo "example.com" > /var/www/example.com/html/index. html sudo chown -R apache:apache /var/www/example.com/html
В системах, где SELinux включен в принудительном режиме и страницы не обслуживаются из каталога
/var/www
, необходимо применить правильный контекст безопасности к каталогу DocumentRoot. Например, чтобы обслуживать веб-страницы из каталога/mnt/example.com
, введите:sudo semanage fcontext -a -t httpd_sys_content_t "/mnt/example.com(/.*)?" sudo restorecon -Rv /mnt/example.com/
Примените свою конфигурацию.
sudo systemctl перезапустить httpd
Защита веб-службы
Рекомендуется защищать все соединения между веб-браузером и сервером Apache с помощью HTTPS. Для безопасной настройки требуется сертификат TLS.
- Настройте сертификаты TLS/SSL.
Примечание:
Oracle настоятельно рекомендует использовать сертификат TLS, подписанный внешним центром сертификации (ЦС). Для получения дополнительной информации см. Oracle Linux: управление сертификатами и инфраструктурой открытых ключей.
Установите надстройку HTTPS для Apache.
sudo dnf установить mod_ssl sudo systemctl перезапустить httpd
Обновите конфигурацию Apache. Например, в
/etc/httpd/conf.d/example.com.conf
добавьте следующую конфигурацию:Прослушать *:443
<Виртуальный хост *:443>
ServerName example.com
ServerAlias www.example.comSSLEngine включен SSLCertificateFile /etc/pki/tls/private/certificate.crt
SSLCertificateKeyFile /etc/pki/tls/private/private.keyDocumentRoot /var/www/example.com/html/
ErrorLog /var/log/httpd/example. com_error.log
CustomLog /var/log/httpd/example.com_access.log в сочетаниивиртуальный хост>
Перенаправить HTTP-запросы на HTTPS.
Замените существующую конфигурацию HTTP VirtualHost на перенаправление следующим образом:
<Виртуальный хост *:80>
ServerName example.com
ServerAlias www.example.comПеренаправление «/» «https://example.com/»
виртуальный хост>
Перезапустите службу Apache, чтобы загрузить новую конфигурацию.
sudo systemctl перезапустить httpd
(Необязательно) Настройте брандмауэр.
Эти команды включают порт 443 брандмауэра для службы Apache HTTPS и перезагружают службу брандмауэра по умолчанию:
sudo firewall-cmd --add-service=https --постоянный sudo firewall-cmd --reload
Дополнительные учебные ресурсы
Ознакомьтесь с другими лабораторными работами на странице docs. oracle.com/learn или получите доступ к дополнительным бесплатным учебным материалам на канале Oracle Learning YouTube. Кроме того, посетите http://education.oracle.com/learning-explorer/, чтобы стать исследователем обучения Oracle.
Для получения документации по продукту посетите Справочный центр Oracle.
Информация о названии и авторских правах
Как установить Apache на Ubuntu для управления трафиком
Вы ищете веб-сервер с открытым исходным кодом для обработки ваших потребностей в большом трафике? Установите Apache на Ubuntu, и он станет идеальным решением!
Apache является наиболее широко используемым веб-сервером и может легко обрабатывать большие объемы трафика. В этом руководстве вы узнаете, как установить Apache на сервер Ubuntu Linux и настроить виртуальные хосты.
Попробуйте Apache сегодня и избавьтесь от простоев веб-сервера!
Содержание
Предварительные условияЭтот учебник представляет собой практическую демонстрацию. Если вы хотите продолжить, убедитесь, что у вас есть следующее.
- Сервер Ubuntu — в этом руководстве используется Ubuntu 20.04.
- Учетная запись пользователя с привилегиями root.
Apache предоставляет множество мощных функций, таких как динамически загружаемые модули, универсальная система конфигурации и широкие возможности ведения журналов. И чтобы воспользоваться этими функциями, начните с установки Apache на свой сервер.
По умолчанию пакет Apache доступен в репозиториях Ubuntu, и вы можете установить Apache, выполнив одну команду с помощью диспетчера пакетов apt
.
1. Запустите приведенную ниже команду apt update
, чтобы убедиться, что ваш сервер обновлен и установлены все исправления безопасности.
sudo apt update -y
Обновление индекса пакетов сервера
2. Запустите приведенную ниже команду apt-cache
, чтобы выполнить поиск
и вывести список всех доступных пакетов Apache в вашей системе.
sudo apt-cache search apache2
На снимке экрана ниже вы можете увидеть все доступные пакеты Apache, и наиболее распространенными пакетами являются:
- apache2 — Apache HTTP Server — этот пакет является стандартным веб-сервером Apache.
- libapache2-mod-php — этот пакет обеспечивает поддержку PHP для веб-сервера Apache.
- apache2-ssl-dev — этот пакет обеспечивает поддержку соединений SSL/TLS в Apache 9.0018
- apache2-utils — этот пакет предоставляет различные утилиты для веб-сервера Apache, такие как htpasswd, для создания пользователей для базовой аутентификации.
3. Выполните следующую команду apt install
, чтобы установить Apache на свой сервер.
sudo apt install -y apache2
Установка Apache 4. После установки пакета запустите приведенную ниже команду systemctl
для start
Apache ( apache2
). У этой команды нет вывода, но вы проверите статус службы Apache на следующих шагах.
sudo systemctl start apache2
5. Теперь выполните следующую команду, чтобы включить
Apache для запуска во время загрузки, поскольку установка Ubuntu по умолчанию не запускает службу Apache автоматически.
sudo systemctl enable apache2
Включение автоматического запуска Apache при загрузке 6. Затем выполните приведенную ниже команду systemctl
, чтобы проверить статус
службы Apache ( apache2
).
sudo systemctl status apache2
Вы увидите следующий вывод. Активное (работающее) состояние указывает на то, что служба Apache запущена и работает должным образом.
Проверьте состояние службы Apache.7. Запустите приведенную ниже команду, чтобы проверить версию Apache, установленную на вашем сервере.
apache2 -version
На момент написания этой статьи последняя стабильная версия Apache — 2. 4.41, и у вас она может быть другой.
Проверка установленной версии Apache8. Наконец, откройте свой любимый веб-браузер и перейдите к IP-адресу или имени хоста вашего сервера Ubuntu (например, 192.168.1.100 ).
Ниже вы можете увидеть веб-страницу Apache по умолчанию, созданную в процессе установки. Эта страница подтверждает, что Apache установлен и работает должным образом.
Проверка установки Apache путем доступа к странице Apache по умолчаниюЕсли по какой-то причине вы получили сообщение об ошибке, перейдите к следующему разделу и настройте брандмауэр.
Настройка брандмауэра UFW для защиты сервера Apache
В предыдущем разделе вы запросили веб-страницу с вашего сервера Apache, которая отображала веб-страницу Apache по умолчанию. Но что, если вы получили сообщение об ошибке «отказ в подключении», как показано ниже? Эта ошибка может быть связана с тем, что ваш брандмауэр блокирует доступ к серверу Apache.
Ошибка получения отказа в подключенииЧтобы устранить эту ошибку подключения, вы настроите свой брандмауэр, чтобы разрешить доступ к серверу Apache. И установка Ubuntu по умолчанию включает брандмауэр под названием UFW, который помогает защитить ваш сервер от несанкционированного доступа.
1. Запустите приведенную ниже команду, чтобы вывести список всех профилей приложений, включенных в UFW.
список приложений sudo ufw
Ниже вы можете увидеть различные доступные приложения в UFW:
- Apache Full — этот профиль позволяет получить доступ ко всему диапазону портов, необходимых для веб-сервера Apache (порты 80 и 443).
- Apache — профиль по умолчанию, разрешающий доступ к незащищенному порту 80.
Этот профиль не следует использовать в рабочей среде, поскольку он менее безопасен.
- Apache Secure — этот профиль более безопасен, поскольку ограничивает доступ только к порту для зашифрованного трафика TLS/SSL (порт 443).
- OpenSSH — этот профиль разрешает доступ к порту SSH (порт 22) для подключения SSH.
2. Затем выполните следующие команды, чтобы включить ( allow
) профиль Apache Full
вместе с SSH
.
Эти команды разрешают доступ ко всем портам, что полезно в среде разработчика.
sudo ufw разрешить «Apache Full»
sudo ufw allow 'OpenSSH'
Включение полного профиля Apache вместе с SSHВозможно, вы хотите отключить приложение, измените параметр разрешения на параметр отключения, например: sudo ufw disable ‘app_profile’
3. Запустите приведенную ниже команду ufw status
, чтобы проверить состояние вашего брандмауэра UFW.
sudo ufw status verbose
Ниже вы можете увидеть доступные правила брандмауэра, указывающие, что Apache Full и OpenSSH доступны из любого места.
Проверка состояния брандмауэра UFW4. Наконец, откройте веб-браузер и попробуйте запросить веб-страницу с сервера Apache. На этот раз вы увидите веб-страницу Apache по умолчанию, созданную в процессе установки.
Проверка установки Apache путем доступа к странице Apache по умолчанию Настройка виртуальных хостов для обслуживания веб-сайтовВаш сервер Apache запущен, так что пришло время для самой захватывающей части — размещения вашего веб-приложения. Как? Вы будете настраивать виртуальные хосты на своем сервере Ubuntu. Виртуальный хост — это файл конфигурации, который позволяет размещать несколько веб-сайтов на одном сервере с одним IP-адресом.
Обратите внимание, что для создания файлов и каталогов, начиная с этого пункта руководства, требуется доступ sudo.
Чтобы начать настройку виртуальных хостов:
1. Запустите приведенную ниже команду, чтобы создать новый каталог с именем /var/www/example. com
. Вы будете использовать этот каталог для хранения контента вашего веб-сайта. Замените example.com
фактическим доменным именем, которое вы хотите использовать.
Эта команда не имеет выходных данных, но вы можете проверить каталог, выполнив следующую команду: ls /var/www
sudo mkdir -p /var/www/example.com
2. Далее , запустите ниже chown
, чтобы изменить владельца каталога /var/www/example.com
на вашу учетную запись пользователя. Эта команда не имеет вывода, но позволяет вам управлять контентом вашего сайта.
sudo chown -R $USER:$USER /var/www/example.com
3. Запустите приведенную ниже команду chmod
, чтобы изменить права доступа к каталогу /var/www/example.com
на 755.
. Эта команда не имеет вывода, но предоставляет вашей учетной записи пользователя доступ для чтения и записи к содержимому вашего веб-сайта.
sudo chmod -R 755 /var/www/example.com
4. Теперь создайте файл с именем index.html в каталоге /var/www/example.com с помощью предпочитаемого вами редактора. Заполните файл приведенным ниже кодом, сохраните изменения и закройте файл. Файл index.html служит страницей вашего веб-сайта по умолчанию.
Приведенный ниже код создает простую веб-страницу, на которой отображается текст Hello World! Ваш виртуальный хост работает!.
<голова>
Добро пожаловать на example.com!
голова>
<тело>
Привет, мир! Ваш виртуальный хост работает!
тело>
5. Создайте новый файл конфигурации виртуального хоста с именем example.com.conf в каталоге /etc/apache2/sites-available .
Вы можете отредактировать файл по умолчанию /etc/apache2/sites-available/000-default.conf, чтобы он содержал ваш новый виртуальный хост. Но лучше создать новый файл для вашего сайта. Такое поведение помогает вам поддерживать порядок в файлах конфигурации.
Скопируйте/вставьте приведенную ниже конфигурацию в example.com.conf 9файл 0089. Но обязательно замените example.com и [email protected] фактическими значениями для вашего веб-сайта.
Сохраните изменения и закройте файл.
<Виртуальный хост *:80>
ServerAdmin [email защищен]
Имя сервера example.com
Псевдоним сервера www.example.com
DocumentRoot /var/www/example.com
Журнал ошибок ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log вместе
6. Теперь выполните каждую команду ниже, чтобы отключить файл виртуального хоста по умолчанию и включить новый файл виртуального хоста.
Файл виртуального хоста по умолчанию включен по умолчанию, и вы не сможете использовать новый файл виртуального хоста, если не отключите файл виртуального хоста по умолчанию.
# Отключить файл виртуального хоста по умолчанию
sudo a2dissite 000-по умолчанию
# Включите файл вашего виртуального хоста
sudo a2ensite example.com.conf
Отключение файла виртуального хоста по умолчанию и включение нового виртуального хоста 7. Запустите команду service
ниже, чтобы перезапустить
ваш сервер Apache ( apache2
), чтобы применить изменения.
sudo service apache2 перезапуск
8. Наконец, откройте веб-браузер и перейдите на свой веб-сайт ( example.com ).
Если конфигурация вашего сервера Apache верна, вы увидите такое же сообщение, как показано ниже, в веб-браузере.
Доступ к размещенному веб-сайтуЗаключение
Из этого руководства вы узнали, как установить Apache на Ubuntu и настроить виртуальные хосты для обслуживания вашего веб-сайта на одном сервере. Теперь вы можете эффективно размещать несколько веб-сайтов на своем сервере Ubuntu.