Настройка сервера OwnCloud 9 с использованием Nginx, MariaDB и PHP7 на операционной системе Debian

В данном руководстве будет рассмотрено, как установить собственное облачное хранилище ownCloud на VPS с Debian 8, используя Nginx, MariaDB и PHP7. Установка проходит аналогично установке WordPress на этой операционной системе. Все действия демонстрируются на VPS с 128 МБ оперативной памяти, и ownCloud функционирует без каких-либо затруднений. Предполагается, что у вас уже настроен стек LEMP на Debian 8. Если это не так, посмотрите простое руководство ниже для получения необходимых инструкций.

Инсталляция сервера ownCloud 9 на виртуальном сервере с Debian 8

Сначала скачайте ключ подписи ownCloud на ваш VPS с Debian 8, используя команду wget. Опция — nv указывает на то, что вывод будет без излишней информации.

wget - nv https://download.owncloud. org/download/repositories/stable/Debian_8.0/Release. key - O Release. key

Далее примените apt-key для добавления этого ключа подписи в Debian 8.

sudo apt-key add - < Release. key

Затем выполните данную команду для подключения официального репозитория ownCloud.

sudo sh - c "echo 'deb http://download.owncloud. org/download/repositories/stable/Debian_8.0/ /' >> /etc/apt/sources. list. d/owncloud. list"

Затем обновите локальный индекс пакетов и выполните установку owncloud-files.

sudo apt-get update;sudo apt-get install owncloud-files

Вы можете установить два пакета: owncloud и owncloud-files. Основное отличие в том, что установка owncloud подразумевает автоматическую установку apache2, mysql и php5. Поскольку на нашем VPS с Debian 8 уже настроены Nginx, MariaDB и PHP7, нам потребуется лишь установить пакет owncloud-files.

Читайте также:  Как удалить конкретный элемент массива в PHP

Файлы OwnCloud располагаются в директории /var/www/owncloud.

Настройка базы данных и учетной записи пользователя для ownCloud

Подключитесь к серверу базы данных MariaDB.

mysql - u root - p

После этого необходимо создать базу данных для owncloud.

create database owncloud;

Создайте учетную запись пользователя для базы данных на локальном сервере.

create user ownclouduser@localhost identified by 'пароль';

Дайте этому пользователю полный доступ к базе данных owncloud.

grant all privileges on owncloud.* to ownclouduser@localhost identified by 'пароль';

Используйте свои права и покиньте систему.

flush privileges; exit;

Активирование бинарного логирования в MariaDB

Откройте файл my. cnf, который может располагаться по адресу /etc/mysql/my. cnf.

sudo nano /etc/my. cnf

Включите следующие три строки в раздел [mysqld].

log-bin = /var/log/mysql/mariadb-bin log-bin-index = /var/log/mysql/mariadb-bin. index binlog_format = mixed

Формат бинарного журнала необходимо установить в смешанный (mixed). После этого сохраните изменения и закройте файл. Затем перезапустите службу MariaDB.

sudo service mysql reload or sudo systemctl reload mysql

Получение бесплатного SSL-сертификата от Let’s Encrypt.

Сначала загрузите клиент Let’s Encrypt с GitHub.

sudo apt-get install git git clone https://github.com/letsencrypt/letsencrypt

Теперь откройте каталог letsencrypt.

cd letsencrypt/

Приостановите работу Nginx.

sudo service nginx stop or sudo systemctl stop nginx

Получите SSL-сертификат для вашего домена, выполнив следующую команду:

Читайте также:  Как использовать команду sed для замены строк в файлах

./letsencrypt-auto certonly --standalone --email Согласен на условия - d.owncloud. your-domain.com

Обратите внимание: предполагается, что для доступа к веб-интерфейсу ownCloud вы используете доменное имя, например owncloud. your-domain.com. Кроме того, перед выполнением указанной команды необходимо настроить DNS так, чтобы ваше доменное имя указывало на IP-адрес вашего сервера.

certonly подразумевает, что клиент получает SSL-сертификат, но его не устанавливает. Поскольку Let’s Encrypt по-прежнему находится на стадии бета-тестирования и не обеспечивает автоматической настройки SSL для Nginx, нам необходимо выполнить ручную настройку (установку) SSL.

Ваш SSL-сертификат будет размещен в директории /etc/letsencrypt/live/.

Настройка конфигурационного файла Nginx для ownCloud.

sudo nano /etc/nginx/conf.d/owncloud.conf

Поместите указанный текст в документ.

upstream php-handler < #server 127.0.0.1:9000; server unix:/run/php/php7.0-fpm.sock; >server < listen 80; server_name owncloud. your-domain.com; # enforce https return 301 https://$server_name$request_uri; > server < listen 443 ssl; server_name owncloud. your-domain.comssl_сертификат /etc/letsencrypt/live/owncloud. your-domain.com/fullchain. pem; ssl_certificate_key /etc/letsencrypt/live/owncloud. your-domain.com

typescript< allow all; log_not_found off; access_log off; >location ~ ^/(build|tests|config|lib|3rdparty|templates|data)/ < deny all; >location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) < deny all; >путь /< rewrite ^/remote/(.*) /remote.php last; rewrite ^(/core/doc/[^\/]+/)$ $1/index. html; try_files $uri $uri/ =404; >location ~ \.php(?:$|/) < fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param HTTPS on; fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice fastcgi_pass php-handler; fastcgi_intercept_errors on; >Добавление заголовка управления кешем для файлов js и css должно происходить ниже указанного местоположения.~ \.php(?:$|/) < block location ~
  • .(?< add_header Cache-Control "public, max-age=7200"; # Add headers to serve security related headers add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;"; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; # Optional: Don't log access to assets access_log off; >Необязательно: Не фиксировать доступ к другим местоположениям ресурсов.~

  • .(?< access_log off; >>

    Замените текст, выделенный красным, на свои реальные данные. Этот файл конфигурации предполагает, что ваш процесс php-fpm использует Unix-сокет. Если ваш php-fpm работает через 127.0.0.1:9000, вам следует изменить секцию upstream. Также вы можете активировать http2 для SSL в данной конфигурации. Учтите, что Nginx поддерживает http2, начиная с версии 1.9.5. Ознакомьтесь с инструкцией по активации HTTP2 в последней версии Nginx на сервере Debian 8.

    После того как вы сохраните этот конфигурационный файл, установите требуемые расширения для php7.

    sudo apt install php7.0-common php7.0-gd php7.0-json php7.0-curl php7.0-zip php7.0-xml php7.0-mbstring

    Теперь необходимо перезапустить процесс Nginx.

    sudo service nginx restart или sudo systemctl restart nginx

    Конфигурация веб-интерфейса

    Введите в адресной строке вашего браузера

    owncloud. your-domain.com

    Создайте учетную запись администратора и настройте подключение сервиса ownCloud к базе данных MariaDB.

    Установите сервер OwnCloud 9 с использованием Nginx, MariaDB и PHP7.

    После завершения этой процедуры вы получите доступ к веб-интерфейсу ownCloud. Поздравляем! Теперь вы можете начать пользоваться ownCloud как своим личным облачным хранилищем.

    Установите сервер OwnCloud 9 с использованием Nginx, MariaDB и PHP7.

    Как вы можете заметить, процедура установки ownCloud во многом напоминает процесс установки WordPress и Drupal.

    Ваши комментарии, вопросы и предложения всегда будут рады видеть. Если этот пост оказался для вас полезным, поделитесь им с друзьями в социальных сетях! Следите за нами, чтобы не пропустить новые уроки по Linux.