ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как установить NextCloud 14 на CentOS 7

Как установить NextCloud 14 на CentOS 7

Nextcloud –  это один из самых популярных наборов программного обеспечения с открытым исходным кодом. Вы можете использовать его для хранения ваших личных файлов, контактов, изображений, музыки и многое другое, и это позволяет вам получить к ним доступ или поделиться им с друзьями в любое время. Это популярная альтернатива другому широко используемому файловому хостингу с именем ownCloud. В этой статье мы покажем вам, как установить последнюю версию Nextcloud 14 на CentOS.

Необходимое условие

 

Шаг 1: Войдите на свой сервер через SSH:

ssh root@IP_Address -p Port_number

 

Перед запуском введите приведенную ниже команду, чтобы проверить, установлена ​​ли на вашем компьютере стандартная версия CentOS:

cat /etc/redhat-release

 

который должен дать вам следующий вывод:

CentOS Linux release 7.5.1804 (Core)

 

Шаг 2: Обновление системы

Убедитесь, что ваш сервер полностью обновлен:

yum update

 

Если ваша система не была обновлена, установите репозиторий epel.

yum install -y epel-release

 

Шаг 3. Установка веб-сервера

На этом шаге вы можете выбрать, хотите ли вы установить Apache или Nginx.

Установка веб-сервера Nginx

yum install nginx

 

Включите Nginx для запуска при загрузке и запуска службы, используя:

systemctl enable nginx

systemctl start nginx

 

Установка веб-сервера Apache

Если вы хотите выбрать Apache вместо Nginx, вы можете пропустить установку nginx, и установить Apache.

yum install httpd

 

Включите Apache, чтобы начать загрузку и запустить службу, используя:

systemctl enable httpd

systemctl start httpd

 

Шаг 4: Установите PHP 7

Версия PHP по умолчанию для CentOS 7 – это PHP 5.4, а для Nextcloud 14 требуется PHP 7 или выше, на этом этапе мы установим PHP версии 7.

Установите пакеты репозитория Remi и EPEL:

rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Включение Remi PHP 7 repo:

yum-config-manager --enable remi-php70

 

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

yum install php php-mysql php-pecl-zip php-xml php-mbstring php-gd php-fpm php-intl

 

Теперь давайте найдем следующие строки в /etc/php-fpm.d/www.conf

user = apache
group = apache

 

Замените значения на

user = nginx
group = nginx

 

Затем измените разрешение для каталога сеансов PHP, вам нужно пропустить этот шаг, если вы хотите использовать Apache вместо Nginx.

chown -R root:nginx /var/lib/php/session/

 

Наконец, перезапустите php-fpm

systemctl restart php-fpm

 

Шаг 5: Установка сервера базы данных MariaDB

nano /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck = 1
yum install MariaDB-server MariaDB-client
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

 

На этом этапе MariaDB запущен, и теперь мы создадим пароль для пользователя root. Выполните следующую команду, чтобы создать пароль root, удалить тестовую базу данных, удалить анонимного пользователя, а затем перезагрузить эти привилегии.

mysql_secure_installation

Как установить NextCloud 14 на CentOS 7

 

После создания вы можете протестировать пароль, вызвав эту команду, вам будет предложено ввести пароль:

mysql -u root -p

 

Шаг 6. Создание базы данных.

mysql -uroot -p -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"
mysql -uroot -p -e "GRANT ALL on nextcloud.* to nextcloud@localhost identified by 'M0d1fyth15'"
mysql -uroot -p -e "FLUSH privileges"

 

Шаг 7. Настройка веб-сервера.

На предыдущем шаге вы выбрали веб-сервер для установки, теперь вам нужно его настроить.

Конфигурация Nginx

Если вы хотите использовать nginx, создайте файл конфигурации для блока сервера nginx

nano /etc/nginx/conf.d/ваш_домен.ру.conf
upstream php {
	server 127.0.0.1:9000;
	}

server {
	server_name ваш_домен.ру;

	add_header X-Content-Type-Options nosniff;
	add_header X-XSS-Protection “1; mode=block”;
	add_header X-Robots-Tag none;
	add_header X-Download-Options noopen;
	add_header X-Permitted-Cross-Domain-Policies none;

	Путь к корневому каталогу установки
	root /var/www/nextcloud/;

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

	location = /.well-known/carddav {
		return 301 $scheme://$host/remote.php/dav;
	}

	location = /.well-known/caldav {
		return 301 $scheme://$host/remote.php/dav;
	}

	установить максимальный размер загружаемого файла
	client_max_body_size 512M;
	fastcgi_buffers 64 4K;

	Включить gzip, но не удалять заголовки ETag
	gzip on;
	gzip_vary on;
	gzip_comp_level 4;
	gzip_min_length 256;
	gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
	gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

	location / {
		rewrite ^ /index.php$request_uri;
	}

	location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
		deny all;
	}
	location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
		deny all;
	}

	location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.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;
		#Avoid sending the security headers twice
		fastcgi_param modHeadersAvailable true;
		fastcgi_param front_controller_active true;
		fastcgi_pass php;
	
		fastcgi_intercept_errors on;
		fastcgi_request_buffering off;
	}

	location ~ ^/(?:updater|ocs-provider)(?:$|/) {
		try_files $uri/ =404;
		index index.php;
	}

	Добавление заголовка cache control для файлов js и css
	Убедитесь, что он находится ниже блока PHP
	location ~ \.(?:css|js|woff|svg|gif)$ {
		try_files $uri /index.php$request_uri;
		add_header Cache-Control “public, max-age=15778463”;

		add_header X-Content-Type-Options nosniff;
		add_header X-XSS-Protection “1; mode=block”;
		add_header X-Robots-Tag none;
		add_header X-Download-Options noopen;
		add_header X-Permitted-Cross-Domain-Policies none;
		Необязательно: не журналировать доступ к ресурсам
		access_log off;
	}

	location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
		try_files $uri /index.php$request_uri;
		Необязательно: не регистрировать доступ к другим ресурсам
		access_log off;
	}
}

 

Проверьте конфигурационный файл nginx, затем перезапустите службу

nginx -t
systemctl restart nginx

 

Конфигурация Apache

Создайте файл конфигурации виртуального хоста для домена, который вы хотите использовать для размещения Nextcloud.

nano /etc/httpd/conf.d/ваш_домен.ру.conf
<VirtualHost *:80>

ServerAdmin admin@ваш_домен.ру
DocumentRoot /var/www/nextcloud
ServerName ваш_домен.ру
ServerAlias www.ваш_домен.ру

<Directory /var/www/html/nextcloud>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>

ErrorLog /var/log/httpd/nextcloud-error_log
CustomLog /var/log/httpd/nextcloud-access_log common

</VirtualHost>

 

Перейдите на официальный сайт Nextcloud и загрузите последнюю стабильную версию приложения

wget https://download.nextcloud.com/server/releases/nextcloud-14.0.0.zip

 

Распакуйте загруженный zip-архив в корневой каталог документа на вашем сервере

unzip nextcloud-14.0.0.zip -d /var/www/
mkdir /var/www/nextcloud/data
chown -R nginx: /var/www/nextcloud

Если вы выбрали Apache, то вам нужно установить разрешение для пользователя Apache

chown -R apache: /var/www/nextcloud

Теперь вы можете продолжить установку Nextcloud 14 через веб-установщик по адресу http://ваш_домен.ру, нажмите на кнопку “Готово”, чтобы закончить установку.
Как установить NextCloud 14 на CentOS 7

 

Рекомендуется запустить Nextcloud 14 в режиме https. Для этого нам нужно будет установить SSL-сертификат. На этом этапе мы покажем вам, как установить сертификат SSL из Let’s Encrypt.

yum install certbot-nginx certbot-apache
certbot

 

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

Если при запросе сертификата нет проблем, Certbot автоматически отредактирует ваш существующий блок сервера nginx для установки сертификата.

На этом этапе вы можете получить доступ к своей установке Nextcloud 14 на https://ваш_домен.ру.

И вот что, с последнего шага этой статьи мы успешно установили Nextcloud 14 на вашем CentOs 7, и вы можете войти в систему с учетными данными пользователя вашего администратора. Для получения дополнительной информации вы можете посетить официальную документацию Nextcloud 14.

Exit mobile version