Nextcloud – это один из самых популярных наборов программного обеспечения с открытым исходным кодом. Вы можете использовать его для хранения ваших личных файлов, контактов, изображений, музыки и многое другое, и это позволяет вам получить к ним доступ или поделиться им с друзьями в любое время. Это популярная альтернатива другому широко используемому файловому хостингу с именем ownCloud. В этой статье мы покажем вам, как установить последнюю версию Nextcloud 14 на CentOS.
Необходимое условие
- CentOS 7
- Доступ SSH с привилегиями root
- PHP 7 или выше
Шаг 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
После создания вы можете протестировать пароль, вызвав эту команду, вам будет предложено ввести пароль:
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 в режиме 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.