Thank you for reading this post, don't forget to subscribe!
Nextcloud – это один из самых популярных наборов программного обеспечения с открытым исходным кодом. Вы можете использовать его для хранения ваших личных файлов, контактов, изображений, музыки и многое другое, и это позволяет вам получить к ним доступ или поделиться им с друзьями в любое время. Это популярная альтернатива другому широко используемому файловому хостингу с именем ownCloud.
установите репозиторий epel.
1 |
yum install -y epel-release |
Установка веб-сервера Nginx
1 |
yum install nginx |
Включите Nginx для запуска при загрузке и запуска службы, используя:
1 2 3 |
systemctl enable nginx systemctl start nginx |
Установка веб-сервера Apache
Если вы хотите выбрать Apache вместо Nginx, вы можете пропустить установку nginx, и установить Apache.
1 |
yum install httpd |
Включите Apache, чтобы начать загрузку и запустить службу, используя:
1 2 3 |
systemctl enable httpd systemctl start httpd |
Установите PHP 7
Версия PHP по умолчанию для CentOS 7 – это PHP 5.4, а для Nextcloud 14 требуется PHP 7 или выше, на этом этапе мы установим PHP версии 7.
Установите пакеты репозитория Remi и EPEL:
1 |
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm |
Включение Remi PHP 7 repo:
1 |
yum-config-manager --enable remi-php70 |
и установите PHP 7 и несколько PHP-модулей, требуемых Nextcloud, выполнив следующую команду:
1 |
yum install php php-mysql php-pecl-zip php-xml php-mbstring php-gd php-fpm php-intl |
Теперь давайте найдем следующие строки в /etc/php-fpm.d/www.conf
1 2 |
user = apache group = apache |
Замените значения на
1 2 |
user = nginx group = nginx |
Затем измените разрешение для каталога сеансов PHP, вам нужно пропустить этот шаг, если вы хотите использовать Apache вместо Nginx.
1 |
chown -R root:nginx /var/lib/php/session/ |
Наконец, перезапустите php-fpm
1 |
systemctl restart php-fpm |
Установка сервера базы данных MariaDB
1 |
nano /etc/yum.repos.d/MariaDB.repo |
1 2 3 4 5 |
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck = 1 |
1 |
yum install MariaDB-server MariaDB-client |
1 2 3 |
systemctl start mariadb systemctl enable mariadb systemctl status mariadb |
На этом этапе MariaDB запущен, и теперь мы создадим пароль для пользователя root. Выполните следующую команду, чтобы создать пароль root, удалить тестовую базу данных, удалить анонимного пользователя, а затем перезагрузить эти привилегии.
1 |
mysql_secure_installation |
После создания вы можете протестировать пароль, вызвав эту команду, вам будет предложено ввести пароль:
1 |
mysql -u root -p |
Создание базы данных.
1 2 3 |
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
1 |
nano /etc/nginx/conf.d/ваш_домен.ру.conf |
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
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, затем перезапустите службу
1 2 |
nginx -t systemctl restart nginx |
Конфигурация Apache
Создайте файл конфигурации виртуального хоста для домена, который вы хотите использовать для размещения Nextcloud.
1 |
nano /etc/httpd/conf.d/ваш_домен.ру.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<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 и загрузите последнюю стабильную версию приложения
1 |
wget https://download.nextcloud.com/server/releases/nextcloud-14.0.0.zip |
Распакуйте загруженный zip-архив в корневой каталог документа на вашем сервере
1 2 3 4 |
unzip nextcloud-14.0.0.zip -d /var/www/ mkdir /var/www/nextcloud/data chown -R nginx: /var/www/nextcloud |
Если вы выбрали Apache, то вам нужно установить разрешение для пользователя Apache
1 |
chown -R apache: /var/www/nextcloud |
Теперь вы можете продолжить установку Nextcloud 14 через веб-установщик по адресу http://ваш_домен.ру, нажмите на кнопку “Готово”, чтобы закончить установку.
Рекомендуется запустить Nextcloud 14 в режиме https. Для этого нам нужно будет установить SSL-сертификат.
На этом этапе мы покажем вам, как установить сертификат SSL из Let’s Encrypt.
1 |
yum install certbot-nginx certbot-apache |
1 |
certbot |
Вам будет предложено указать ваш адрес электронной почты, тогда вам нужно согласиться с ToS, чтобы продолжить установку сертификата.
Если при запросе сертификата нет проблем, Certbot автоматически отредактирует ваш существующий блок сервера nginx для установки сертификата.
На этом этапе вы можете получить доступ к своей установке Nextcloud 14 на https://ваш_домен.ру.
И вот что, с последнего шага этой статьи мы успешно установили Nextcloud 14 на вашем CentOs 7, и вы можете войти в систему с учетными данными пользователя вашего администратора
===================================================
Изменяем лимит для загрузки файлов в nextcloud (upload file size)
По-умолчанию максимальный размер, который можно загрузить 2MB, если есть потребность загружать файлы более 2MB в такком случаи необходимо изменить некоторые параметры в файле /etc/php.ini, к примеру установим 30 MB
1
2
3
4
5
|
[root@nextcloud ~]# vi /etc/php.ini
…………………
post_max_size = 30M
upload_max_filesize = 30M
………………………
|
Перезагружаем web сервер
1
|
[root@nextcloud ~]# systemctl restart httpd
|
Настройки безопастности
Проверить в файле /var/www/owncloud/data/.htaccess наличие:
1
2
|
deny from all
IndexIgnore *
|
А затем в файле /etc/httpd/httpd.conf (или Вашего nextcloud виртхоста), что включена обработка директив .htaccess файла:
1
|
AllowOverride All
|
Настройка клиентов по протоколу WebDAV
Если необходимо, можно использовать WebDAV для подключения сетевого диска, вашего пользователя nextcloud
для OS Linux
In Nautilus (the file browser), select File > Connect to … and select WebDAV. Enter the information you need, such as a host name, a directory, port and username. Check the box to create a bookmark, and you’ll find it in your Files and Folder lense and in the left pane in Nautilus.
You’ll be able to use your WebDAV share as if it were a local folder.
Для Windows клиентов.
Для начала необходимо внести правки в реестр, изменить данные для обработки политики авторизации:
run -> regedit
1
|
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
|
ключ: BasicAuthLevel установить значение 2
Выполнить перезагрузку системы, далее подключаем сетевой диск:
Выбираем букву диска, поле «Папка» указываем путь:
1
|
http://192.168.16.40/nextcloud/remote.php/webdav
|
Стоит обратить внимание, что путь указывается несколько иной в отличие от Linux подключения!