Доброго времени суток, уважаемые читатели. Тема статьи сегодня: "OwnCloud и Nextcloud на ISPmanager". Пошагово рассмотрим, процесс установки веб-приложений OwnCloud и Nextcloud на ISPmanager.

OwnCloud и Nextcloud – это бесплатные веб-приложения, для удалённого доступа, хранения, и обмена файлами. Функционал приложений, может быть расширен, за счёт официальных, и не официальных модулей расширения.

Если Вы захотите установить любое из этих облачных хранилищ, на сервер без панели управления, то вот статья об установке OwnCloud на CentOS 7, и вот статья об установке Nextcloud на CentOS 7.

Будем отталкиваться от того, что после предыдущих статей, у нас есть созданный, и настроенный должным образом веб-домен. Я не буду создавать поддоменов, а буду использовать домен game-int.ru , из предыдущих статей. Вы в свою очередь, делайте так, как Вам требуется.

Пакеты OwnCloud и Nextcloud отсутствуют в каталоге доступных веб-скриптов. Поэтому для установки, нужно будет скачивать архивы с приложениями, из официальных ресурсов.

Процесс установки OwnCloud и Nextcloud в ISPmanager, полностью идентичен; за той только разницей, что архивы нужно скачивать с разных ресурсов, и на выходе, Вы получите одно, или другое облако.

Создание базы данных для OwnCloud или Nextcloud в ISPmanager

  • Для работы облачных хранилищ OwnCloud и Nextcloud, требуется база данных. Давайте создадим её.
  • Заходим в раздел «Инструменты» --> «Базы данных», и жмём на «Создать».
создание базы данных для OwnCloud или Nextcloud в ISPmanager шаг 1
  • Создаём базу данных, владельцем которой, указываем владельца нашего веб-домена.
  • Создаём пользователя для базы данных, и его пароль. Запоминаем данные, так как они нам потом понадобятся.
создание базы данных для OwnCloud или Nextcloud в ISPmanager шаг 2

Скачивание архива с последней версией OwnCloud или Nextcloud в ISPmanager

  • После создания базы данных, можно переходить к скачиванию архива, с последней версией нужного облачного хранилища. Скачивание нужно производить, зайдя под пользователем, владельцем веб-домена.
  • Заходим в раздел «Главное» --> «Менеджер файлов», и переходим в директорию /www. Сюда нам и нужно закачать требуемый архив.
  • Жмём на «Закачать».
Скачивание архива с последней версией OwnCloud или Nextcloud в ISPmanager шаг 1
  • Выбираем в поле «Тип файла» --> «URL файла на другом сервере», и в поле «URL», вставляем ссылку на последнюю версию нужного облака.

Для OwnCloud это: https://download.owncloud.org/download/community/owncloud-latest.zip

Для Nextcloud, на момент написания статьи, это: https://download.nextcloud.com/server/releases/nextcloud-21.0.1.zip

Скачивание архива с последней версией OwnCloud или Nextcloud в ISPmanager шаг 2
  • Если у вас в директории /www, есть какие-нибудь каталоги или файлы, удаляем их. Оставляем только закачанный архив.
удаление не нужных каталогов и файлов в ISPmanager
  • Выделяем закачанный архив, и жмём на «Извлечь». Извлекаем файлы в эту же директорию.
Извлечение файлов из архива с последней версией OwnCloud или Nextcloud в ISPmanager шаг 1
  • В директории /www, появляется каталог owncloud, или nextcloud, в зависимости от того, что вы закачали.
  • Выделяем его, и жмём на «Атрибуты».
переименование каталога в ISPmanager шаг 1
  • В открывшейся форме, переименовываем каталог в имя нашего веб-домена, и сохраняем изменения. Это нужно для соответствия полных путей, в конфигурационном файле.
переименование каталога в ISPmanager шаг 2
  • Выделяем закачанный архив, и жмём на «Удалить». Он нам больше не нужен.
удаление архива в ISPmanager

Установка недостающих модулей PHP

  • После произведённых действий, можно открывать браузер, и заходить на наш веб-домен.
  • Открывается страница с ошибками, сгенерированная установщиком веб-приложения. На странице указан список необходимых модулей PHP, которые отсутствуют в Вашей системе.
ошибка при установки OwnCloud или Nextcloud в ISPmanager

В статье о пошаговой установке сайта в ISPmanager, я уже объяснял, как нужно добавлять не хватающие модули PHP, поэтому не буду останавливаться на этом подробно.

  • Заходим под пользователем root в раздел «Настройки web-сервера» --> «PHP». Выделяем нужную версию PHP, которую использует пользователь; идём в «Расширения», находим нужные модули, и активируем их.
  • После активации всех требуемых модулей, возвращаемся в браузер, и обновляем страницу.
  • Ошибок больше не выходит, и открывается форма установки frontend облачного хранилища.
форма установки фронтэнда OwnCloud или Nextcloud в ISPmanager
  • Но это ещё не все предварительные настройки, которые нужно произвести. Если в данный момент начать установку frontend, то установка закончится ошибками.
  • Нам нужно отредактировать конфигурационный файл веб-сервера, для корректной установки, и правильной работы облачных хранилищ.

Настройка веб-сервера Nginx для OwnCloud и Nextcloud в ISPmanager

  • Заходим под пользователем root в раздел «Домены» --> «WWW-домены», выделяем наш домен, и жмём на «Конфиг».
конфигурационный файл OwnCloud или Nextcloud в ISPmanager
  • Открывается конфигурационный файл веб сервера, в моём случае Nginx. Нужно отредактировать этот файл, под OwnCloud и Nextcloud.

Я взял за основу свой конфиг, из статей об установке OwnCloud на CentOS 7, и об установке Nextcloud на CentOS 7, и подправил его, под оригинальный конфигурационный файл.

  • Оригинальный конфигурационный файл, в моём случае:

server {
	server_name game-int.ru www.game-int.ru;
	charset UTF-8;
	index index.php index.html;
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/game-int.ru/*.conf;
	access_log /var/www/httpd-logs/game-int.ru.access.log;
	error_log /var/www/httpd-logs/game-int.ru.error.log notice;
	ssi on;
	return 301 https://$host:443$request_uri;
	set $root_path /var/www/game-int.ru/data/www/game-int.ru;
	gzip on;
	gzip_comp_level 3;
	gzip_disable "msie6";
	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
	location / {
		location ~ [^/]\.ph(p\d*|tml)$ {
			try_files /does_not_exists @php;
		}
		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
			expires 3d;
		}
	}
	location @php {
		fastcgi_index index.php;
		fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@game-int.ru";
		fastcgi_pass unix:/var/www/php-fpm/game-int.ru.sock;
		fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
		try_files $uri =404;
		include fastcgi_params;
	}
	root $root_path;
	listen 194.87.215.158:80;
}
server {
	server_name game-int.ru www.game-int.ru;
	ssl_certificate "/var/www/httpd-cert/game-int.ru/game-int.ru_le1.crtca";
	ssl_certificate_key "/var/www/httpd-cert/game-int.ru/game-int.ru_le1.key";
	ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
	ssl_prefer_server_ciphers on;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_dhparam /etc/ssl/certs/dhparam4096.pem;
	charset UTF-8;
	index index.php index.html;
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/game-int.ru/*.conf;
	access_log /var/www/httpd-logs/game-int.ru.access.log;
	error_log /var/www/httpd-logs/game-int.ru.error.log notice;
	ssi on;
	set $root_path /var/www/game-int.ru/data/www/game-int.ru;
	gzip on;
	gzip_comp_level 3;
	gzip_disable "msie6";
	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
	location / {
		location ~ [^/]\.ph(p\d*|tml)$ {
			try_files /does_not_exists @php;
		}
		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
			expires 3d;
		}
	}
	location @php {
		fastcgi_index index.php;
		fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@game-int.ru";
		fastcgi_pass unix:/var/www/php-fpm/game-int.ru.sock;
		fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
		try_files $uri =404;
		include fastcgi_params;
	}
	add_header Strict-Transport-Security "max-age=31536000;";
	root $root_path;
	listen 194.87.215.158:443 ssl;
}

  • Получился конфигурационный файл, под OwnCloud или Nextcloud в ISPmanager, для моего домена game-int.ru:

server {
        listen 80;
        server_name game-int.ru;
        return 301 https://$server_name$request_uri;
}

server {
        listen 443 ssl;
        server_name game-int.ru; 
	    ssl_certificate "/var/www/httpd-cert/game-int.ru/game-int.ru_le1.crtca";
	    ssl_certificate_key "/var/www/httpd-cert/game-int.ru/game-int.ru_le1.key";
	    ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
	    ssl_prefer_server_ciphers on;
	    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	    ssl_dhparam /etc/ssl/certs/dhparam4096.pem;

            root /var/www/game-int.ru/data/www/game-int.ru;
	    access_log /var/www/httpd-logs/game-int.ru.access.log;
	    error_log /var/www/httpd-logs/game-int.ru.error.log notice;

        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
        client_max_body_size 10G;
        fastcgi_buffers 64 4K;

        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

        index index.php;
        error_page 403 = /core/templates/403.php;
        error_page 404 = /core/templates/404.php;

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
                deny all;
        }

        location / {
                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
                rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
                rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
                rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
                rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
                try_files $uri $uri/ index.php;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
                try_files $1 = 404;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$1;
                fastcgi_param PATH_INFO $2;
                fastcgi_param HTTPS on;
                fastcgi_pass unix:/var/www/php-fpm/game-int.ru.sock;
        }

        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                expires modified +30d;
                access_log off;
        }
		
  }

  • После редактирования, сохраняем изменения в конфиге.
редактирование конфигурационный файл OwnCloud или Nextcloud в ISPmanager
  • Чтобы изменения вступили в силу, нужно перезапустить веб-сервер.
  • Заходим в раздел «Инструменты» --> «Shell-клиент», и выполняем команду:
# systemctl restart nginx
  • На этом все предварительные настройки завершены, и можно переходить к установке frontend OwnCloud или Nextcloud.

Установка frontend OwnCloud или Nextcloud

  • Открываем браузер, и заходим на наш веб-домен.
  • Заполняем все поля формы установки frontend, и жмём на «Завершить установку».
  • Для OwnCloud:
заполнение формы установки фронтэнда OwnCloud в ISPmanager
  • В случае с Nextcloud, можно так же сразу установить рекомендуемые приложения:
заполнение формы установки фронтэнда Nextcloud в ISPmanager

Если в процессе установки Вас выбросит, то просто перезайдите на главную страницу Вашего домена, не закрывая браузера (чтобы не завершилась сессия).

  • По завершении установки, Вы получите доступ к Вашему облачному хранилищу.

Сегодня мы рассмотрели тему: "OwnCloud и Nextcloud на ISPmanager". Пошагово произвели установку облачных хранилищ OwnCloud и Nextcloud, в панели управления ISPmanager 6. Смотрите так же, видео по теме.

Надеюсь статья была вам полезна. До встречи в новых статьях.

С уважением, Андрей Бондаренко.


Видео на тему "OwnCloud и Nextcloud на ISPmanager":