One place for hosting & domains

      Запуск нескольких версий PHP на одном сервере с использованием Apache и PHP-FPM в CentOS 7


      Автор выбрал COVID-19 Relief Fund для получения пожертвования в рамках программы Write for DOnations.

      Введение

      Веб-сервер Apache использует виртуальные хосты для управления несколькими доменами в одной системе. PHP-FPM использует демона для управления несколькими версиями PHP в одной системе. Вы можете использовать Apache и PHP-FPM для одновременного хостинга на одном сервере нескольких веб-приложений PHP на основе разных версий PHP. Эта возможность полезна, поскольку разным приложениям могут требоваться разные версии PHP, но некоторые серверные комплексы, в том числе комплекс LAMP в стандартной конфигурации, могут работать только с одной версией. Сочетание Apache с PHP-FPM более экономично по сравнению с хостингом каждого приложения на отдельном экземпляре сервера.

      Также PHP-FPM предлагает разные варианты конфигурации для регистрации данных stderr и stdout, аварийной перезагрузки и адаптивного создания процессов, что полезно для сайтов с высокой нагрузкой. Использование Apache с PHP-FPM — один из лучших вариантов хостинга приложений PHP, особенно с точки зрения производительности.

      В этом обучающем руководстве мы настроим два сайта PHP для работы на одном экземпляре сервера. Каждый сайт будет использовать собственный домен, и на каждом домене будет использоваться собственная версия PHP. Первый сайт site1.your_domain развернет PHP 7.0. Второй сайт site2.your_domain развернет PHP 7.2.

      Предварительные требования

      • Один сервер CentOS 7 с не менее чем 1 ГБ оперативной памяти, настроенный согласно руководству Начальная настройка сервера CentOS 7, с пользователем non-root user с привилегиями sudo и брандмауэром.
      • Веб-сервер Apache, установленный и настроенный в соответствии с указаниями руководства Установка веб-сервера Apache в CentOS 7​​​.
      • Доменное имя, настроенное так, чтобы указывать на ваш сервер CentOS 7. Информацию о том, как сделать так, чтобы домены указывали на дроплеты DigitalOcean, можно найти в руководстве Создание указаний на серверы имен DigitalOcean из общих реестров доменов. Для целей настоящего обучающего модуля мы используем два субдомена, каждый из которых указан с записью A в наших настройках DNS: site1.your_domain и site2.your_domain.

      Шаг 1 — Установка PHP версий 7.0 и 7.2 с помощью PHP-FPM

      После выполнения предварительных требований мы установим версии PHP 7.0 и 7.2. Репозиторий SCL (Software Collections) содержит множество версий стеков PHP для систем CentOS 7. Если вам нужна абсолютно новая версия PHP, которой нет на SCL, проверьте remi PPA (персональные архивы пакетов).

      Начнем с установки репозитория SCL в вашу систему:

      • sudo yum install centos-release-scl -y

      Сначала узнаем, какие версии PHP 7 доступны в SCL:

      • sudo yum list rh-php7[0-9].x86_64

      Вывод будет выглядеть следующим образом:

      Output

      Available Packages rh-php70.x86_64 2.3-1.el7 centos-sclo-rh rh-php71.x86_64 1-1.el7 centos-sclo-rh rh-php72.x86_64 1-2.el7 centos-sclo-rh rh-php73.x86_64 1-1.el7 centos-sclo-rh

      Вы заметите, что доступна также новейшая версия, PHP 7.3. Но в наших примерах мы установим версии 7.0 и 7.2.

      Начнем с более ранней версии. Установите rh-php70 и rh-php70-php-fpm​​​:

      • sudo yum install rh-php70 rh-php70-php-fpm -y
      • rh-php70 — это метапакет, который запускает приложения PHP.
      • rh-php70-php-fpm​​​ предоставляет интерпретатор Fast Process Manager, который работает как демон и принимает запросы Fast/CGI.

      Повторите процедуру для PHP версии 7.2. Установите rh-php72 и rh-php72-php-fpm​​​.

      • sudo yum install rh-php72 rh-php72-php-fpm -y

      Далее запустите следующие команды для начала использования обеих коллекций Software Collections:

      • sudo scl enable rh-php70 bash
      • sudo scl enable rh-php72 bash

      По умолчанию обе версии PHP прослушивают порт 9000. Но в этом обучающем руководстве мы хотим запустить две версии одновременно. Поэтому назначим два новых порта:

      Для этого откройте /etc/opt/rh/rh-php70/php-fpm.d/www.conf в предпочитаемом текстовом редакторе и измените каждое представление 9000 на 9002. Затем сохраните и закройте файл и повторите процедуру для /etc/opt/rh/rh-php72/php-fpm.d/www.conf, только сейчас замените 9000 на 9003. Вы можете использовать эти две команды sed​​​ поочередно, чтобы выполнить замены:

      • sudo sed -i 's/:9000/:9002/' /etc/opt/rh/rh-php70/php-fpm.d/www.conf
      • sudo sed -i 's/:9000/:9003/' /etc/opt/rh/rh-php72/php-fpm.d/www.conf

      Сейчас вы назначили выделенный порт для каждой из ваших служб PHP. Перед выполнением этих изменений необходимо, тем не менее, добавить порты в вашу конфигурацию SELinux.

      SELinux — это сокращение от Security Enhanced Linux, которое активируется по умолчанию на CentOS 7. Необходимо добавить новые порты 9002 и 9003 в вашу базу данных SELinux и назначить их для ваших служб httpd, иначе ваши приложения не будут запускаться. Для выполнения этой задачи используйте команду semanage:

      • sudo semanage port -a -t http_port_t -p tcp 9002
      • sudo semanage port -a -t http_port_t -p tcp 9003

      Флаг -a указывает на то, что вы добавляете объект в базу данных. Флаг -t указывает тип объекта, которым в данном случае является http_port_t​​​. А флаг -p определяет протокол tcp​​​. Дополнительную информацию о SELinux и команде semanage можно найти в этом обучающем руководстве или обратившись к официальной документации SELinux.

      Теперь вы готовы запустить и активировать ваши службы PHP. Начнем со службы rh-php70-php-fpm и активируем ее запуск во время загрузки:

      • sudo systemctl start rh-php70-php-fpm
      • sudo systemctl enable rh-php70-php-fpm

      Затем проверьте статус службы rh-php70-php-fpm:

      • sudo systemctl status rh-php70-php-fpm

      Вывод будет выглядеть следующим образом:

      Output

      ● rh-php70-php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/rh-php70-php-fpm.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2020-04-18 04:49:59 UTC; 1min 6s ago Main PID: 1852 (php-fpm) Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec" CGroup: /system.slice/rh-php70-php-fpm.service ├─1852 php-fpm: master process (/etc/opt/rh/rh-php70/php-fpm.conf) ├─1853 php-fpm: pool www ├─1854 php-fpm: pool www ├─1855 php-fpm: pool www ├─1856 php-fpm: pool www └─1857 php-fpm: pool www Apr 18 04:49:59 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Starting The PHP FastCGI Process Manager... Apr 18 04:49:59 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Started The PHP FastCGI Process Manager.

      Повторите эту процедуру, запустите службу rh-php72-php-fpm и активируйте ее запуск во время загрузки:

      • sudo systemctl start rh-php72-php-fpm
      • sudo systemctl enable rh-php72-php-fpm

      Затем проверьте статус службы rh-php72-php-fpm:

      • sudo systemctl status rh-php72-php-fpm

      Другой вывод будет выглядеть следующим образом:

      Output

      ● rh-php72-php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/rh-php72-php-fpm.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2020-04-18 04:50:04 UTC; 1min 59s ago Main PID: 1876 (php-fpm) Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec" CGroup: /system.slice/rh-php72-php-fpm.service ├─1876 php-fpm: master process (/etc/opt/rh/rh-php72/php-fpm.conf) ├─1877 php-fpm: pool www ├─1878 php-fpm: pool www ├─1879 php-fpm: pool www ├─1880 php-fpm: pool www └─1881 php-fpm: pool www Apr 18 04:50:04 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Starting The PHP FastCGI Process Manager... Apr 18 04:50:04 centos-s-1vcpu-1gb-blr1-01 systemd[1]: Started The PHP FastCGI Process Manager.

      Мы установили на сервере две версии PHP. Теперь создадим структуру каталогов для каждого сайта, который будем развертывать.

      Шаг 2 — Создание структур каталогов для обоих сайтов

      В этом разделе мы создадим корневой каталог документов и страницу индекса для каждого из двух сайтов.

      Вначале создайте корневые каталоги документов для site1.your_domain и site2.your_domain:

      • sudo mkdir /var/www/site1.your_domain
      • sudo mkdir /var/www/site2.your_domain

      По умолчанию веб-сервер Apache работает как пользователь apache и группа apache. Поэтому /var/www/ и все его файлы и подкаталоги также должны принадлежать им. Запустите следующие команды для проверки правильности владения и разрешений корневых каталогов вашего веб-сайта:

      • sudo chown -R apache:apache /var/www/site1.your_domain
      • sudo chown -R apache:apache /var/www/site2.your_domain
      • sudo chmod -R 755 /var/www/site1.your_domain
      • sudo chmod -R 755 /var/www/site2.your_domain

      Команда chown меняет владельца двух каталогов веб-сайта на пользователя apache и группу apache. Команда chmod меняет разрешения, связанные с этим и другими пользователями и группами.

      Далее вы создадите файл info.php в корневом каталоге каждого сайта. В нем будет отображаться информация о версии PHP для каждого сайта. Начнем с site1:

      • sudo vi /var/www/site1.your_domain/info.php

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

      /var/www/site1.your_domain/info.php

      <?php phpinfo(); ?>
      

      Сохраните и закройте файл. Скопируйте созданный файл info.php в site2:

      • sudo cp /var/www/site1.your_domain/info.php /var/www/site2.your_domain/info.php

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

      Шаг 3 — Настройка Apache для обоих сайтов

      В этом разделе мы создадим два файла конфигурации виртуального хоста. Это позволит двум нашим сайтам одновременно работать с двумя разными версиями PHP.

      Для обслуживания этого контента Apache необходимо создать файл виртуального хоста с правильными директивами. Вы создадите два новых файла конфигурации виртуального хоста внутри каталога /etc/httpd/conf.d/.

      Вначале создайте новый файл конфигурации виртуального хоста для сайта site1.your_domain. Здесь вы предписываете Apache использовать для рендеринга содержимого PHP 7.0:

      • sudo vi /etc/httpd/conf.d/site1.your_domain.conf

      Добавьте в файл следующее: Убедитесь, что путь к каталогу сайта, имя сервера, порт и версия PHP соответствуют вашей настройке:

      /etc/httpd/conf.d/site1.your_domain.conf

      
      <VirtualHost *:80>
           ServerAdmin admin@site1.your_domain
           ServerName site1.your_domain
           DocumentRoot /var/www/site1.your_domain
           DirectoryIndex info.php
           SetHandler "proxy:fcgi://127.0.0.1:9002
           ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
           AddHandler php70-fcgi .php
           Action php70-fcgi /cgi-bin/php70.fcgi
           ErrorLog /var/log/httpd/site1.your_domain_error.log
           CustomLog /var/log/httpd/site1.your_domain_access.log combined
      </VirtualHost>
      

      Для DocumentRoot вы указываете путь корневого каталога вашего веб-сайта. Для ServerAdmin вы добавляете адрес электронной почты, к которому имеет доступ администратор сайта your_domain. Для ServerName вы добавляете url для вашего первого субдомена. Для SetHandler вы указываете порт 9002. Остальные директивы также настраивают вашу службу для развертывания PHP 7.0.

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

      Теперь создайте новый файл конфигурации виртуального хоста для сайта site2.your_domain. Для этого субдомена мы будем развертывать PHP 7.2:

      • sudo vi /etc/httpd/conf.d/site2.your_domain.conf

      Добавьте в файл следующее: Убедитесь, что путь к каталогу сайта, имя сервера, порт и версия PHP соответствуют уникальным параметрам вашей системы:

      /etc/httpd/conf.d/site2.your_domain.conf

      <VirtualHost *:80>
           ServerAdmin admin@site2.your_domain
           ServerName site2.your_domain
           DocumentRoot /var/www/site2.your_domain
           DirectoryIndex info.php
           SetHandler "proxy:fcgi://127.0.0.1:9003
           ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
           AddHandler php72-fcgi .php
           Action php72-fcgi /cgi-bin/php72.fcgi
           ErrorLog /var/log/httpd/site2.your_domain_error.log
           CustomLog /var/log/httpd/site2.your_domain_access.log combined
      </VirtualHost>
      

      Сохраните файл и закройте его после завершения. Проверьте файл конфигурации Apache на наличие синтаксических ошибок:

      • sudo apachectl configtest

      Вы увидите вывод с текстом Syntax OK:

      Output

      Перезапустите службу Apache, чтобы применить изменения:

      • sudo systemctl restart httpd

      Мы настроили Apache для обслуживания каждого из сайтов и теперь протестируем их и убедимся, что на них работают правильные версии PHP.

      Шаг 4 — Тестирование сайтов

      Мы настроили два сайта для работы с двумя разными версиями PHP. Теперь проверим результаты.

      Откройте в браузере сайты http://site1.your_domain и http://site2.your_domain. Вы увидите две страницы, выглядящие следующим образом:

      Информационная страницаPHP 7.0 Информационная страница PHP 7.2

      Обратите внимание на заголовки. На первой странице указано, что на сайте site1.your_domain развернута версия PHP 7.0. На второй странице указано, что на сайте site2.your_domain развернута версия PHP 7.2.

      Мы протестировали сайты и теперь можем удалить файлы info.php. Эти файлы представляют собой угрозу безопасности, поскольку они содержат важную информацию о вашем сервере и при этом доступны неуполномоченным пользователям. Удалите файлы:

      • sudo rm -rf /var/www/site1.your_domain/info.php
      • sudo rm -rf /var/www/site2.your_domain/info.php

      Теперь у вас имеется один сервер CentOS 7, обслуживающий два сайта с двумя разными версиями PHP. Однако PHP-FPM можно применять и для других целей.

      Заключение

      Мы объединили виртуальные хосты и PHP-FPM для обслуживания нескольких сайтов и нескольких версий PHP на одном сервере. Количество сайтов PHP и версий PHP, которые может обслуживать ваш сервер Apache, зависит исключительно от вычислительной мощности сервера.

      Теперь вы можете рассмотреть возможность изучения более расширенных функций PHP-FPM, например порождение процесса или правил регистрации sdtout и stderr​​​​​. Или же теперь вы можете защитить свои веб-сайты. Для этого используйте наш обучающий модуль по защите сайтов с помощью бесплатных сертификатов TLS/SSL от Let’s Encrypt.



      Source link

      Запуск нескольких версий PHP на одном сервере с использованием Apache и PHP-FPM в Debian 10


      Автор выбрал COVID-19 Relief Fund для получения пожертвования в рамках программы Write for DOnations.

      Введение

      Веб-сервер Apache использует виртуальные хосты для управления несколькими доменами в одной системе. PHP-FPM использует демона для управления несколькими версиями PHP в одной системе. Вы можете использовать Apache и PHP-FPM для одновременного хостинга на одном сервере нескольких веб-приложений PHP на основе разных версий PHP. Эта возможность полезна, поскольку разным приложениям могут требоваться разные версии PHP, но некоторые серверные комплексы, в том числе стек LAMP в стандартной конфигурации, могут работать только с одной версией. Сочетание Apache с PHP-FPM более экономично по сравнению с хостингом каждого приложения на отдельном экземпляре сервера.

      Также PHP-FPM предлагает разные варианты конфигурации для регистрации данных stderr и stdout, аварийной перезагрузки и адаптивного создания процессов, что полезно для сайтов с высокой нагрузкой. Использование Apache с PHP-FPM — один из лучших вариантов хостинга приложений PHP, особенно с точки зрения производительности.

      В этом обучающем руководстве мы настроим два сайта PHP для работы на одном экземпляре сервера. Каждый сайт будет использовать собственный домен, и на каждом домене будет использоваться собственная версия PHP. Первый сайт site1.your_domain развернет PHP 7.0. Второй сайт site2.your_domain развернет PHP 7.2.

      Предварительные требования

      • Один сервер Debian 10 с не менее чем 1 ГБ оперативной памяти, настроенный согласно руководству Начальная настройка сервера Debian 10, с пользователем non-root user с привилегиями sudo и брандмауэром.
      • Веб-сервер Apache, установленный и настроенный в соответствии с указаниями руководства Установка веб-сервера Apache в Debian 10.
      • Доменное имя, настроенное так, чтобы указывать на ваш сервер Debian 10. Информацию о том, как сделать так, чтобы домены указывали на дроплеты DigitalOcean, можно найти в руководстве Создание указаний на серверы имен DigitalOcean из общих реестров доменов. Для целей настоящего обучающего руководства мы используем два субдомена, каждый из которых указан с записью A в наших настройках DNS: site1.your_domain и site2.your_domain.

      Шаг 1 — Установка PHP версий 7.0 и 7.2 с помощью PHP-FPM

      Выполнив предварительные требования, вы можете установить PHP версий 7.0 и 7.2, а также PHP-FPM и некоторые дополнительные расширения. Для этого предварительно необходимо добавить в систему репозиторий sury php.

      Вначале установите требуемые пакеты, в том числе curl, wget и gnupg2:

      • sudo apt-get install curl wget gnupg2 ca-certificates lsb-release apt-transport-https -y

      Вышеуказанные пакеты позволяют получить безопасный доступ к репозиторию sury php. sury php — это сторонний репозиторий или PPA (архив персональных пакетов). Он предоставляет PHP 7.4, 7.3, 7.2, 7.1 и 7.0 для операционной системы Debian. Также он включает более актуальные версии PHP, чем содержащиеся в официальных репозиториях Debian 10, и позволяет устанавливать несколько версий PHP в одной системе.

      Затем импортируйте ключ пакета:

      • wget https://packages.sury.org/php/apt.gpg
      • sudo apt-key add apt.gpg

      Теперь добавьте в систему репозиторий sury php:

      • echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php7.list

      Обновите репозиторий:

      Установите php7.0, php7.0-fpm, php7.0-mysql, libapache2-mod-php7.0 и libapache2-mod-fcgid с помощью следующих команд:

      • sudo apt-get install php7.0 php7.0-fpm php7.0-mysql libapache2-mod-php7.0 libapache2-mod-fcgid -y
      • php7.0 — это метапакет, который можно использовать для запуска приложений PHP.
      • php7.0-fpm предоставляет интерпретатор Fast Process Manager, который работает как демон и принимает запросы Fast/CGI.
      • php7.0-mysql связывает PHP с базой данных MySQL.
      • libapahce2-mod-php7.0 предоставляет модуль PHP для веб-сервера Apache.
      • libapache2-mod-fcgid содержит mod_fcgid, запускающий несколько экземпляров программы CGI для обработки одновременных запросов.

      Повторите процедуру для PHP версии 7.2. Установите php7.2, php7.2-fpm, php7.2-mysql и libapache2-mod-php7.2.

      • sudo apt-get install php7.2 php7.2-fpm php7.2-mysql libapache2-mod-php7.2 -y

      После установки обеих версий PHP запустите службу php7.0-fpm:

      • sudo systemctl start php7.0-fpm

      Затем проверьте статус службы php7.0-fpm:

      • sudo systemctl status php7.0-fpm

      Вывод должен выглядеть так:

      Output

      ● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-04-04 08:51:47 UTC; 1min 17s ago Docs: man:php-fpm7.0(8) Main PID: 13016 (php-fpm7.0) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 1149) Memory: 19.1M CGroup: /system.slice/php7.0-fpm.service ├─13016 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf) ├─13017 php-fpm: pool www └─13018 php-fpm: pool www Apr 04 08:51:47 debian10 systemd[1]: Starting The PHP 7.0 FastCGI Process Manager... Apr 04 08:51:47 debian10 systemd[1]: Started The PHP 7.0 FastCGI Process Manager.

      Повторите процедуру и запустите службу php7.2-fpm:

      • sudo systemctl start php7.2-fpm

      Затем проверьте статус службы php7.2-fpm:

      • sudo systemctl status php7.2-fpm

      Вывод должен выглядеть так:

      Output

      ● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-04-04 08:52:52 UTC; 1min 32s ago Docs: man:php-fpm7.2(8) Process: 22207 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.2/fpm/pool.d/www.conf 72 (code=exite Main PID: 22204 (php-fpm7.2) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 1149) Memory: 12.0M CGroup: /system.slice/php7.2-fpm.service ├─22204 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf) ├─22205 php-fpm: pool www └─22206 php-fpm: pool www Apr 04 08:52:52 debian10 systemd[1]: Starting The PHP 7.2 FastCGI Process Manager... Apr 04 08:52:52 debian10 systemd[1]: Started The PHP 7.2 FastCGI Process Manager.

      В заключение необходимо активировать несколько модулей, чтобы служба Apache2 могла работать с несколькими версиями PHP:

      • sudo a2enmod actions fcgid alias proxy_fcgi
      • actions используется для выполнения скриптов CGI на основе типа носителя или метода запроса.

      • fcgid — это высокопроизводительная альтернатива mod_cgi, запускающая достаточное количество экземпляров программы CGI для одновременной обработки запросов.

      • alias позволяет создавать схемы разных деталей файловой системы хоста в дереве документов и для целей переадресации URL.

      • proxy_fcgi позволяет Apache перенаправлять запросы PHP-FPM.

      Перезапустите службу Apache, чтобы применить изменения:

      • sudo systemctl restart apache2

      Мы установили на сервере две версии PHP. Теперь создадим структуру директорий для каждого сайта, который будем развертывать.

      Шаг 2 — Создание структур директорий для обоих сайтов

      В этом разделе мы создадим корневую директорию документов и страницу индекса для каждого из двух сайтов.

      Вначале создайте корневые директории документов для site1.your_domain и site2.your_domain:

      • sudo mkdir /var/www/site1.your_domain
      • sudo mkdir /var/www/site2.your_domain

      По умолчанию веб-сервер Apache работает как пользователь www-data и группа www-data. Чтобы убедиться в правильности структуры владения и разрешений для корневых директорий вашего сайта, используйте следующие команды:

      • sudo chown -R www-data:www-data /var/www/site1.your_domain
      • sudo chown -R www-data:www-data /var/www/site2.your_domain
      • sudo chmod -R 755 /var/www/site1.your_domain
      • sudo chmod -R 755 /var/www/site2.your_domain

      Далее вы создадите файл info.php в корневой директории каждого сайта. В нем будет отображаться информация о версии PHP для каждого сайта. Начнем с site1:

      • sudo nano /var/www/site1.your_domain/info.php

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

      /var/www/site1.your_domain/info.php

      <?php phpinfo(); ?>
      

      Сохраните и закройте файл. Скопируйте созданный файл info.php в site2:

      • sudo cp /var/www/site1.your_domain/info.php /var/www/site2.your_domain/info.php

      Теперь на вашем веб-сервере должны иметься корневые директории документов, которые требуются каждому сайту для предоставления данных посетителям. Далее мы настроим веб-сервер Apache для работы с двумя разными версиями PHP.

      Шаг 3 — Настройка Apache для обоих сайтов

      В этом разделе мы создадим два файла конфигурации виртуального хоста. Это позволит двум нашим сайтам одновременно работать с двумя разными версиями PHP.

      Для обслуживания этого контента Apache необходимо создать файл виртуального хоста с правильными директивами. Вместо изменения файла конфигурации по умолчанию /etc/apache2/sites-available/000-default.conf мы создадим два новых файла в директории /etc/apache2/sites-available/.

      Вначале создайте новый файл конфигурации виртуального хоста для сайта site1.your_domain. Здесь вы предписываете Apache использовать для рендеринга содержимого php7.0:

      • sudo nano /etc/apache2/sites-available/site1.your_domain.conf

      Добавьте в файл следующее. Убедитесь, что путь к директории сайта, имя сервера и версия PHP соответствуют вашей системе:

      /etc/apache2/sites-available/site1.your_domain.conf

      
      <VirtualHost *:80>
           ServerAdmin admin@site1.your_domain
           ServerName site1.your_domain
           DocumentRoot /var/www/site1.your_domain
           DirectoryIndex info.php
      
           <Directory /var/www/site1.your_domain>
              Options Indexes FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              allow from all
           </Directory>
      
          <FilesMatch .php$>
            # For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server
            SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost"
          </FilesMatch>
      
           ErrorLog ${APACHE_LOG_DIR}/site1.your_domain_error.log
           CustomLog ${APACHE_LOG_DIR}/site1.your_domain_access.log combined
      </VirtualHost>
      

      В этом файле вы изменили директорию на DocumentRoot, а ServerAdmin на адрес электронной почты, доступный администратору сайта your_domain. Также вы изменили параметр ServerName, устанавливающий базовый домен для этой конфигурации виртуального хоста, и добавили директиву SetHandler для запуска PHP как сервера процессов fastCGI.

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

      Теперь создайте новый файл конфигурации виртуального хоста для сайта site2.your_domain. Для этого субдомена мы будем развертывать php7.2:

      • sudo nano /etc/apache2/sites-available/site2.your_domain.conf

      Добавьте в файл следующее. Убедитесь, что путь к директории сайта, имя сервера и версия PHP соответствуют уникальным параметрам вашей системы:

      /etc/apache2/sites-available/site2.your_domain.conf

      <VirtualHost *:80>
           ServerAdmin admin@site2.your_domain
           ServerName site2.your_domain
           DocumentRoot /var/www/site2.your_domain
           DirectoryIndex info.php  
      
           <Directory /var/www/site2.your_domain>
              Options Indexes FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              allow from all
           </Directory>
      
          <FilesMatch .php$>
            # For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server
            SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost"
          </FilesMatch>
      
           ErrorLog ${APACHE_LOG_DIR}/site2.your_domain_error.log
           CustomLog ${APACHE_LOG_DIR}/site2.your_domain_access.log combined
      </VirtualHost>
      

      Сохраните файл и закройте его после завершения. Проверьте файл конфигурации Apache на наличие синтаксических ошибок:

      • sudo apachectl configtest

      Вывод должен выглядеть так:

      Output

      Syntax OK

      Активируйте оба файла конфигурации виртуального хоста:

      • sudo a2ensite site1.your_domain
      • sudo a2ensite site2.your_domain

      Отключите сайт по умолчанию, поскольку он не потребуется:

      • sudo a2dissite 000-default.conf

      Перезапустите службу Apache, чтобы применить изменения:

      • sudo systemctl restart apache2

      Мы настроили Apache для обслуживания каждого из сайтов и теперь протестируем их и убедимся, что на них работают правильные версии PHP.

      Шаг 4 — Тестирование сайтов

      Мы настроили два сайта для работы с двумя разными версиями PHP. Теперь проверим результаты.

      Откройте в браузере сайты http://site1.your_domain и http://site2.your_domain. Вы увидите две страницы, выглядящие следующим образом:

      Информационная страница PHP 7.0Информационная страница PHP 7.2

      Обратите внимание на заголовки. На первой странице указано, что на сайте site1.your_domain развернута версия PHP 7.0. На второй странице указано, что на сайте site2.your_domain развернута версия PHP 7.2.

      Мы протестировали сайты и теперь можем удалить файлы info.php. Эти файлы представляют собой угрозу безопасности, поскольку они содержат важную информацию о вашем сервере и при этом доступны неуполномоченным пользователям. Чтобы удалить оба файла, запустите следующие команды:

      • sudo rm -rf /var/www/site1.your_domain/info.php
      • sudo rm -rf /var/www/site2.your_domain/info.php

      Теперь у вас имеется один сервер Debian 10, обслуживающий два сайта с разными версиями PHP. Однако PHP-FPM можно применять и для других целей.

      Заключение

      Мы объединили виртуальные хосты и PHP-FPM для обслуживания нескольких сайтов и нескольких версий PHP на одном сервере. Количество сайтов PHP и версий PHP, которые может обслуживать ваш сервер Apache, зависит исключительно от вычислительной мощности вашего экземпляра.

      Теперь вы можете начать изучение более сложных функций PHP-FPM, таких как процесс адаптивного создания или функции регистрации sdtout и stderr. Также вы можете заняться защитой своих сайтов. Для этого используйте наш обучающий модуль по защите сайтов с помощью бесплатных сертификатов TLS/SSL от Let’s Encrypt.



      Source link

      Установка Ampache Music Streaming Server на Ubuntu 18.04


      Автор выбрал фонд Open Internet/Free Speech для получения пожертвований в рамках программы Write for DOnations.

      Введение

      Ampache — это сервер для потоковой трансляции музыки с открытым исходным кодом, который позволяет публиковать и управлять вашей цифровой музыкальной коллекцией на своем собственном сервере. Ampache может транслировать поток музыки на ваш компьютер, смартфон, планшет или телевизор с поддержкой технологии Smart TV. Вам больше не придется хранить вашу коллекцию музыки отдельно на каждом устройстве для прослушивания. Ampache позволит вам управлять вашей музыкой на сервере при помощи веб-интерфейса Ampache и прослушивать ее в любом месте, где бы вы не находились.

      В этом руководстве вы установите и настроите веб-сервер Apache и PHP, который будет обслуживать ваш экземпляр Ampache. Затем вы создадите базу данных MySQL, которая будет использоваться Ampache для хранения всей рабочей информации. В заключении вы загрузите свою коллекцию музыки для дальнейшей потоковой трансляции.

      Предварительные требования

      Для прохождения этого обучающего руководства вам потребуется следующее:

      • Один сервер Ubuntu 18.04, настроенный в соответствии с инструкциями по начальной настройке сервера с Ubuntu 18.04, а также non-root, sudo user.
      • Apache, MySQL, и PHP, установленные на вашем сервере согласно инструкциям из Установка стека Linux, Apache, MySQL, PHP (LAMP) на Ubuntu 18.04.
      • Доменное имя, настроенное так, чтобы указывать на ваш сервер. Вы можете узнать, как указывать домены на DigitalOcean Droplet, из руководства Настройка имени хоста с помощью DigitalOcean.

      Шаг 1 — Установка Ampache

      На этом шаге вы загрузите ZIP-архив Ampache на ваш сервер, распакуете его в домашнюю директорию для установки и внесете необходимые системные изменения.

      Войдите на сервер как non-root user. Создайте домашнюю директорию Ampache с помощью следующей команды:

      • sudo mkdir /var/www/ampache

      Установите утилиту zip для распаковки архива Ampache:

      Загрузите ZIP-архив с последней версией. Ссылка на последнюю версию находится на странице Ampache GitHub. В этом руководстве используется версия 4.1.1​:

      • wget https://github.com/ampache/ampache/releases/download/4.1.1/ampache-4.1.1_all.zip

      Распакуйте ZIP-архив в директорию /var/www/ampache/, используя опцию -d:

      • sudo unzip ampache-4.1.1_all.zip -d /var/www/ampache/

      Определите пользователя и групповую принадлежность файлов Ampache, чтобы Apache смог считывать, записывать и выполнять файлы экземпляра Ampache:

      • sudo chown --recursive www-data:www-data /var/www/ampache/

      Опция --recursive позволяет команде chown менять владельца и групповую принадлежность всех файлов, а также поддиректорию в /var/www/ampache на пользователя и группу www-data Apache.

      Переименуйте файлы .htaccess в ZIP-архиве. Файлы .htaccess содержат информацию по безопасности и рабочие данные Apache. Эти файлы могут работать только с расширением .htaccess. Переименуйте полученные файлы .htaccess.dist в .htaccess​​, выполнив следующие команды:

      • sudo mv /var/www/ampache/rest/.htaccess.dist /var/www/ampache/rest/.htaccess
      • sudo mv /var/www/ampache/play/.htaccess.dist /var/www/ampache/play/.htaccess
      • sudo mv /var/www/ampache/channel/.htaccess.dist /var/www/ampache/channel/.htaccess

      Далее вы создадите директорию для ваших музыкальных файлов. В целях обеспечения безопасности эта директория не должна находиться в директории с установочными файлами Ampache. Это защитит ее от считывания и злоумышленники не смогут внести изменения в нее, так как она будет находиться за пределами DocumentRoot​​​ Ampache.

      Создайте директорию /data/Music с помощью следующей команды:

      • sudo mkdir -p /data/Music

      Измените владельца и групповую принадлежность, чтобы Apache мог выполнять считывание и запись файлов:

      • sudo chown www-data:www-data /data/Music

      Для завершения настройки установите утилиту FFmpeg для конвертации аудио и видео из одного формата в другой. Например, вы сможете использовать ее для конвертации музыкального файла из MP3 формата в формат OPUS. Ampache использует FFmpeg для быстрой конвертации аудиофайла из формата загрузки в формат для проигрывания на устройстве. Этот процесс называется транскодингом.

      Он удобен, так как многие устройства не поддерживают воспроизведение всех форматов музыкальных файлов. Ampache может определять форматы, поддерживаемые устройством, и автоматически конвертировать загружаемые файлы в нужный формат.

      Установите FFmpeg с помощью следующей команды:

      Распаковка завершена, вы подготовили ваш экземпляр Ampache для веб-установщика и установили утилиту FFmpeg. Далее вы настроите Apache и PHP для обслуживания вашего экземпляра Ampache.

      Шаг 2 — Настройка Apache и PHP

      В этом разделе вы настроите Apache, создадите новый файл VirtualHost, который будет определять конфигурацию Apache для обслуживания вашего домена сервера Ampache. Вы также установите дополнительные модули PHP, расширяющие возможности PHP для удовлетворения требований Ampache

      Установите несколько дополнительных модулей PHP, которые не были включены в пакет установки PHP по умолчанию:

      • sudo apt install php-mysql php-curl php-json php-gd php7.2-xml

      Эти модули обеспечат следующие дополнительные возможности:

      • php-mysql​​​ — обеспечивает связь между PHP и базой данных MySQL.
      • php-curl​​​ — позволяет PHP использовать утилиту curl для загрузки файлов, например, обложек альбомов с внешних серверов.
      • php-json — позволяет PHP считывать и работать с текстовыми файлами в формате JSON.
      • php-gd​​​ — позволяет PHP создавать и работать с файлами изображений.
      • php7.2-xml​​​ – позволяет PHP создавать и работать с файлами в формате XML.

      Включите пару модулей Apache с помощью утилиты a2enmod:

      • sudo a2enmod rewrite expires

      Эти модули позволяют Apache выполнять следующее:

      • rewrite — изменяет или перезаписывает URL-адреса согласно правилам Ampache.
      • expires — определяет период хранения объектов, например, изображений, для повышенной эффективности хранения данных в браузере.

      Сейчас вы создадите файл VirtualHost, указывающий Apache на то, как и откуда загрузить экземпляр Ampache.

      Примечание. Если вы создали тестовый файл VirtualHost, в котором используется ваше доменное имя Ampache, созданное по инструкциям из руководства «Установка стека Linux, Apache, MySQL, PHP (LAMP) на Ubuntu 18.04», вы должны выключить его. Для выключения воспользуйтесь утилитой a2dissite:

      • sudo a2dissite test_virtalhost_file

      Создайте и откройте файл VirtualHost в текстовом редакторе в /etc/apache2/sites-available/ampache.conf:

      • sudo nano /etc/apache2/sites-available/ampache.conf

      Добавьте следующий шаблон VirtualHost в ваш файл:

      /etc/apache2/sites-available/ampache.conf

      <VirtualHost *:80>
      
          ServerName your_domain
          DocumentRoot /var/www/ampache
      
          <Directory /var/www/ampache/>
              AllowOverride All
              Require all granted
          </Directory>
      
          RewriteEngine on
          CustomLog /var/log/apache2/ampache.access.log common
          ErrorLog  /var/log/apache2/ampache.error.log
      
      </VirtualHost>
      

      Измените your_domain​​ на доменное имя, которое вы перенаправили на ваш сервер. После завершения сохраните файл и выйдите из редактора.

      Директивы в файле VirtualHost:

      • ServerName — доменное имя, которое Apache будет использовать для обслуживания вашего экземпляра Ampache.
      • DocumentRoot — местоположение файловой системы на вашем сервере с установленным экземпляром Ampache. Оно совпадает с местом распаковки ZIP-архива на шаге 1.
      • Directory — этот раздел передает конфигурацию в Apache, которая применяется ко всем файлам и директориям в составе пути.
      • RewriteEngine — позволяет выполнить перезапись модуля Apache.
      • CustomLog — создает файл журнала, который будет использовать Apache для записи всех сеансов доступа для вашего сервера Ampache.
      • ErrorLog — создает файл журнала, который будет использовать Apache для записи всех ошибок, создаваемых сервером Ampache.

      Используя утилиту apachecl, проверьте файл VirtualHost на отсутствие ошибок:

      • sudo apachectl configtest

      Если ошибки отсутствуют, после команды вы увидите следующий результат:

      Output

      Syntax OK

      Если в конфигурации содержатся ошибки, в результате будет указано имя файла и номер строки, где была обнаружена ошибка.

      Примечание. В случае обнаружения ошибки:

      AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
      

      Отредактируйте файл основной конфигурации Apache в /etc/apache2/apache2.conf и добавьте следующую строку:

      ServerName your_domain
      

      Активируйте новую конфигурацию VirtualHost с помощью утилиты a2ensite:

      Конечная конфигурация необязательна, но рекомендуется. По умолчанию в PHP нельзя загружать файлы размером, превышающим 2 Мб. Музыкальные файлы обычно имеют больший размер, поэтому увеличение значения по умолчанию позволит использовать интерфейс Ampache для загрузки файлов большего размера в вашу коллекцию музыки.

      Откройте /etc/php/7.2/apache2/php.ini с помощью следующей команды:

      • sudo nano /etc/php/7.2/apache2/php.ini

      Внесите изменения в следующие строки:

      /etc/php/7.2/apache2/php.ini

      . . .
      upload_max_filesize = 2M
      . . .
      post_max_size = 8M
      . . .
      

      До:

      /etc/php/7.2/apache2/php.ini

      . . .
      upload_max_filesize = 100M
      . . .
      post_max_size = 110M
      . . .
      

      Теперь вы сможете загружать музыкальный файлы размером до 100 Мб. Введите большее значение для загрузки файлов большего размера. Сохраните и закройте файл.

      Перезагрузите обновленную конфигурацию Apache:

      • sudo systemctl reload apache2.service

      Вы только что настроили Apache для обслуживания Ampache через HTTP. Далее вы получите сертификат TLS, произведете настройку Apache для защиты доступа к Ampache через HTTPS.

      Шаг 3 — Активация HTTPS

      На этом шаге вы получите бесплатный TLS сертификат Let’s Encrypt TLS с помощью утилиты Certbot, который активирует протокол HTTPS. Certbot создаст сертификат, автоматически сгенерирует требуемую конфигурацию для Apache и произведет автоматическое обновление сертификата.

      Это важно, поскольку при каждом входе в Ampache вы будете отсылать ваше имя пользователя и пароль через сеть Интернет. Если не использовать HTTPS, то незащищенный пароль можно будет прочесть во время его пересылки по сети Интернет.

      Релизы LTS для Ubuntu обычно не имеют последних пакетов, для этого используется программа Certbot. Разработчики Certbot создали репозиторий специально для Ubuntu, также известный как PPA, где пользователи Ubuntu имеют возможность скачать Certbot и выполнить ее обновление до последней версии.

      Установите репозиторий Certbot с помощью команды:

      • sudo add-apt-repository ppa:certbot/certbot

      Установите утилиту certbot:

      • sudo apt install python-certbot-apache

      Используйте утилиту Certbot для получения сертификата TLS:

      • sudo certbot --apache -d your_domain

      Опция --apache использует плагин Apache, позволяющий Certbot автоматически считывать и настраивать Apache. your_domain определяет доменное имя для которого Certbot создаст сертификат.

      При выполнении команды certbot вам будет предложено ответить на несколько вопросов. От вас попросят ввести адрес электронной почты и согласиться с условиями обслуживания.

      Если программа certbot успешно установит, что домен контролируется вами, она попросит вас произвести настройку HTTPS:

      Output

      Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. ------------------------------------------------------------------------------- 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. ------------------------------------------------------------------------------- Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
      • No redirect​​​: Apache будет обслуживать Ampache через HTTP и HTTPS.
      • Redirect: Apache автоматически перенаправит любые соединения через HTTP на HTTPS. Это будет означать, что доступ к вашему серверу Ampache будет возможен только через HTTPS. Опция обеспечивает большую защиту и не влияет на работу вашего экземпляра Ampache. Рекомендуется сделать этот выбор.

      Убедитесь, что автоматическое обновление сертификата было успешно выполнено с помощью команды:

      • sudo certbot renew --dry-run

      Опция --dry-run означает, что certbot проверит попытку обновления без внесения постоянных изменений в ваш сервер. Если проверка пройдет успешно, в результате будет содержаться следующая строка:

      Output

      Congratulations, all renewals succeeded. The following certs have been renewed: /etc/letsencrypt/live/your_domain/fullchain.pem (success)

      Apache и PHP готовы к обслуживанию вашего экземпляра Ampache. На следующем шаге вы создадите и настроите базу данных Ampache.

      Шаг 4 — Создание базы данных MySQL

      Ampache использует базу данных MySQL для хранения различной информации, например, плейлистов, пользовательских настроек и т. д. На этом шаге вы создадите базу данных и пользователя MySQL, который будет иметь доступ к ней.

      Для создания базы данных Ampache вам необходимо предоставить следующую информацию:

      1. ampache_database: имя базы данных Ampache.
      2. database_user: пользователь MySQL, который будет использоваться Ampache для доступа к базе данных. Этот пользователь отличается от пользователя системы и имеет доступ только к базе данных.
      3. database_password: пароль пользователя базы данных. Убедитесь, что выбрали надежный пароль.

      Запомните указанную информацию, она понадобится вам позднее.

      Откройте интерактивную оболочку MySQL с помощью команды mysql:

      • mysql --user=root --password

      --user=root открывает оболочку MySQL от имени root user, а --password запрашивает пароль пользователя.

      Создайте пустую базу данных с помощью команды:

      • CREATE DATABASE ampache_database;

      Создайте пользователя MySQL:

      • CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'database_password';

      Предоставьте новому пользователю полный доступ к базе данных:

      • GRANT ALL PRIVILEGES ON ampache_database.* TO 'database_user'@'localhost';

      Проверьте, что новая база данных была создана с помощью команды:

      Результат будет выглядеть следующим образом:

      +--------------------+
      | Database           |
      +--------------------+
      | information_schema |
      | ampache_database  |
      | mysql              |
      | performance_schema |
      | sys                |
      +--------------------+
      5 rows in set (0.00 sec)
      

      Выполните выход из оболочки MySQL с помощью команды exit;.

      Проверьте базу данных, имя пользователя и пароль путем входа в оболочку MySQL с database_user.

      Введите следующую команду для входа в оболочку MySQL в качестве нового пользователя:

      • mysql --user=database_user --password ampache_database

      Вы создали базу данных для использования Ampache. Вы закончили настройку сервера и готовы завершить процесс установки с помощью веб-установщика.

      Шаг 5 — Использование веб-установщика

      На этом шаге вы используете веб-установщик Ampache для завершения процесса установки и предоставления Ampache необходимой информации для работы, например, имени администратора веб-интерфейса, информации по базе данных и других настроек.

      Введите https://your_domain​​​ в ваш браузер для начала веб-установки.

      Выберите язык установки

      Выберите язык интерфейса Ampache и нажмите кнопку Start Configuration, чтобы продолжить.

      Требования

      На этой странице Ampache выполнит проверку соответствия сервера необходимым требованиям. Каждая строка страницы выполняет определенную проверку, например, проверку того, что все модули PHP присутствуют и находятся в рабочем состоянии. После того, как рядом с каждой проверкой появится галочка зеленого цвета, это будет означать, что ваш сервер готов к работе с Ampache.

      Нажмите Continue для перехода на следующую страницу.

      Вставка базы данных Ampache

      Если база данных Ampache отсутствует, то на этой странице она будет создана и отформатирована. Заполните следующие поля:

      • Требуемое имя базы данных: ampache_database
      • Имя хоста MySQL: localhost
      • Порт MySQL (необязательно):<EMPTY>
      • Имя администратора MySQL: database_user
      • Пароль администратора MySQL: database_password
      • Создайте базу данных:<UNCHECKED>
      • Создайте таблицы (ampache.sql):<CHECKED>
      • Создайте пользователя базы данных:<UNCHECKED>

      Изображение заполненной формы

      Нажмите кнопку Insert Database для продолжения.

      Создание файла конфигурации

      На этой странице создается файл конфигурации для использования Ampache. Заполните поля следующим образом:

      • Сетевой путь:<EMPTY>

      • Имя базы данных: ampache_database

      • Имя хоста MySQL: localhost

      • Порт MySQL Port (необязательно):<EMPTY>

      • Имя пользователя MySQL: database_user

      • Пароль MySQL: database_password

      Изображение заполненной формы

      • Тип установки Оставьте значение по умолчанию.

      • Разрешить транскодинг Выберите ffmpeg из выпадающего списка.

      • Проигрыватели Оставьте значения по умолчанию.

      Нажмите кнопку Create Config для продолжения.

      Создайте учетную запись администратора

      На этой странице создается главный пользователь веб-интерфейса. Этот пользователь будет обладать всеми административными правами и привилегиями, вы используете его для входа и первой настройки Ampache.

      Выберите имя пользователя и надежный пароль, введите пароль в поля Password и Confirm Password.

      Нажмите кнопку Create Account​​​ для продолжения.

      Обновление Ampache

      На этой странице можно внести любые необходимые административные изменения в базу данных Ampache. Изменения вносятся во время последующего обновления программы, так как установка была выполнена в первый раз, никаких изменений не будет.

      Нажмите кнопку Update Now!​​​ для продолжения.

      Обновление Ampache

      На этой странице отображаются и разъясняются все изменения, произведенные установщиком на предыдущем шаге. Для вас эта страница будет пустой.

      Пройдите по ссылке [Return to main page] для перехода на страницу входа в систему. Введите имя пользователя и пароль, которые были определены для входа на сервер Ampache.

      Для начала использования Ampache необходимо выполнить еще одну небольшую настройку. Настройка будет заключаться в добавлении музыки для вашего нового сервера Ampache.

      Шаг 6 — Добавление вашей музыки в Ampache

      Для начала использования сервера необходимо добавить музыкальные файлы. На этом шаге вы настроите каталог для музыки и загрузите в него несколько музыкальных файлов. “Каталог” – это имя, которое Ampache присваивает коллекции музыки. Ampache может загружать музыку как с сервера, так и из внешних источников, здесь вы загрузите и сохраните музыкальные файлы с сервера в локальный каталог Ampache.

      Пройдите по ссылке add a Catalog в следующей сроке на первой странице, которую вы увидите после входа в Ampache:

      Настройка Catalog еще не выполнена. Для начала потокового воспроизведения ваших медиа-файлов вам потребуется добавить Catalog.

      Для этого нужно перейти на страницу Add Catalog​​​. Заполните поля следующим образом:

      • Имя каталога“: присвойте каталогу короткое, запоминающееся имя.
      • Тип каталога: local
      • Шаблон имени файла:<EMPTY>
      • Шаблон папки: оставьте значение по умолчанию.
      • Gather Art:<CHECKED>
      • Создавать плейлисты из файлов плейлистов (m3u, m3u8, asx, pls, xspf):<UNCHECKED>
      • Путь: /data/Music

      Изображение завершенной формы добавления каталога

      Нажмите кнопку Add Catalog для завершения действий на этой странице.

      Нажмите кнопку Continue на следующей странице. На экране появится страница Show Catalogs​​​, где будет отображаться информация по созданному каталогу. Настройки каталога можно изменять в любое время.

      Включите утилиту веб-загрузки Ampache, нажав на третью навигационную иконку для доступа к расширенным настройкам:

      Изображение третьей иконки настроек

      Прокрутите вниз до раздела Server Config и пройдите по ссылке System для того, чтобы открыть страницу с системными настройками.

      Найдите строку Allow user uploads​​​​​ и выберите Enable из выпадающего меню в столбце Value.

      Вы также можете выбрать уровень пользователя для загрузки музыкальных файлов. Уровень по умолчанию Catalog Manager​​​, он позволяет всем пользователям уровня Catalog Manager и выше загружать музыку. В нашем случае это администратор.

      Также необходимо установить каталог для добавления музыкальных файлов. Определите его в строке Destination catalog. Выберите созданный каталог из выпадающего списка Value.

      Изображение строк разрешения на загрузку и каталога назначения

      Нажмите кнопку Update Preferences для завершения настройки конфигурации. Вы можете загрузить музыкальные файлы.

      Нажмите на первую иконку настроек:

      Изображение иконки первых настроек

      Пройдите по ссылке Upload в разделе Music.

      Изображение ссылки на загрузку

      Нажмите Browse на странице Upload, найдите музыкальные файлы на вашем компьютере и загрузите их.

      Если вы оставите ярлыки Artist и Album пустыми, Ampache будет автоматически считывать ID3 теги музыкальных файлов, чтобы определить исполнителя и название альбома. После загрузки музыкальных файлов их можно будет найти с помощью ссылок Songs, Albums или Artists в разделе Music на навигационной панели слева.

      Ваш музыкальный сервер Ampache готов к потоковому воспроизведению музыки.

      Заключение

      В этой статье вы научились устанавливать и настраивать сервер потоковой трансляции музыки Ampache и загружать музыкальные файлы. Вы можете начать прослушивание музыки в любом месте, где бы вы не были, на любом из ваших устройств. Дополнительная информация по использованию и расширенным возможностям вашего сервера потоковой трансляции музыки находится в Документации Ampache. Эти приложения Android и эти приложения iOS можно использовать для потоковой трансляции музыки на ваш телефон. Ampache организует вашу музыку на сервере с помощью ID3 тегов в музыкальных файлах. Программа MusicMrainz поможет вам управлять ID3 тегами ваших музыкальных файлов.



      Source link