Разное

Apache install: Install and Configure Apache | Ubuntu

29.06.1988

Содержание

Установка 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, поэтому использовать тот, который предлагает операционная система, нет смысла.

SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config

Для дальнейшей работы понадобится установленный интерпретатор 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

Основы Docker. Большой практический выпуск

Создаем VPS

Регистрируемся на beget.com, в разделе VPS есть кнопка создать VPS:

Для теста можете использовать простой тариф

Прописываем hostname, запоминаем пароль и нажимаем создать сервер. Через минуту сервер готов.

Подключаемся через ssh и подготавливаем среду Docker

На винде есть встроенный ssh, чтобы через встроенный ssh подключиться, необходимо открыть консоль cmd и вбить команду:

ssh [email protected]. 58.178

ssh [email protected]

Далее необходимо запустить набор команд для инсталляции 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

Загружаем текущую стабильную версию 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
  • Безопасные веб-службы

Установка и настройка пакета веб-сервера

  1. Установите пакет httpd и его зависимости.

     sudo dnf установить httpd
     
  2. Включить и запустить службу httpd .

    Эта команда включает и запускает службу httpd для немедленного использования, а также автоматически запускает службу после перезагрузки системы:

     sudo systemctl enable --now httpd.service
     

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

     sudo systemctl статус httpd
     
  3. (необязательно) Если вы используете настраиваемый профиль брандмауэра или экземпляр Oracle Cloud Infrastructure, откройте порт брандмауэра для веб-службы Apache (80).

    Эти команды включают порт брандмауэра для веб-службы Apache и перезагружают службу брандмауэра по умолчанию:

     sudo firewall-cmd --add-service=http --permanent
    sudo firewall-cmd --reload
     
  4. Протестируйте развертывание.

    В веб-браузере перейдите на доменное имя или IP-адрес вашей системы, например, http://myserver.example.com. Веб-сервер Apache открывает тестовую страницу по умолчанию.

Настройка Apache

Чтобы изменить корневой путь для вашего веб-сервера, не редактируйте файл /etc/httpd/conf/httpd.conf напрямую. Вместо этого в качестве предпочтительного метода создайте файл конфигурации для конкретного сайта в каталоге /etc/httpd/conf.d .

В следующем примере создается файл /etc/httpd/conf.d/example.com.conf , содержащий конфигурации для виртуальных хостов.

  1. Создайте виртуальные хосты, добавив следующую информацию в /etc/httpd/conf. d/example.com.conf :

    Прослушать *:80

    <Виртуальный хост *:80>

    ServerName example.com
    ServerAlias ​​www.example.com

    DocumentRoot /var/www/example.com/html/

    ErrorLog /var/log/httpd/example.com_error.log
    CustomLog /var/log/httpd/example.com_access.log в сочетании

    ServerName и ServerAlias ​​ могут быть именами хостов, доменными именами или IP-адресами, которые можно использовать для доступа к службе.

  2. Создайте корневую папку документа.

    В корневой папке находятся веб-страницы, которые 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/
     
  3. Примените свою конфигурацию.

     sudo systemctl перезапустить httpd
     

Защита веб-службы

Рекомендуется защищать все соединения между веб-браузером и сервером Apache с помощью HTTPS. Для безопасной настройки требуется сертификат TLS.

  1. Настройте сертификаты TLS/SSL.

Примечание:
Oracle настоятельно рекомендует использовать сертификат TLS, подписанный внешним центром сертификации (ЦС). Для получения дополнительной информации см. Oracle Linux: управление сертификатами и инфраструктурой открытых ключей.

  1. Установите надстройку HTTPS для Apache.

     sudo dnf установить mod_ssl
    sudo systemctl перезапустить httpd
     
  2. Обновите конфигурацию Apache. Например, в /etc/httpd/conf.d/example.com.conf добавьте следующую конфигурацию:

    Прослушать *:443

    <Виртуальный хост *:443>

    ServerName example.com
    ServerAlias ​​www.example.com

    SSLEngine включен SSLCertificateFile /etc/pki/tls/private/certificate.crt
    SSLCertificateKeyFile /etc/pki/tls/private/private.key

    DocumentRoot /var/www/example.com/html/

    ErrorLog /var/log/httpd/example. com_error.log
    CustomLog /var/log/httpd/example.com_access.log в сочетании

  3. Перенаправить HTTP-запросы на HTTPS.

    Замените существующую конфигурацию HTTP VirtualHost на перенаправление следующим образом:

    <Виртуальный хост *:80>

    ServerName example.com
    ServerAlias ​​www.example.com

    Перенаправление «/» «https://example.com/»

  4. Перезапустите службу Apache, чтобы загрузить новую конфигурацию.

     sudo systemctl перезапустить httpd
     
  5. (Необязательно) Настройте брандмауэр.

    Эти команды включают порт 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 на сервер Ubuntu

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, для создания пользователей для базовой аутентификации.
Список пакетов Apache

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, и у вас она может быть другой.

Проверка установленной версии Apache

8. Наконец, откройте свой любимый веб-браузер и перейдите к 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.
Список профилей приложений, доступных в UFW

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 доступны из любого места.

Проверка состояния брандмауэра UFW

4. Наконец, откройте веб-браузер и попробуйте запросить веб-страницу с сервера 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.

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

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