Перейти до змісту

Хмарний сервер за допомогою Nextcloud

Передумови та припущення

  • Сервер під керуванням Rocky Linux (ви можете встановити Nextcloud на будь-якому дистрибутиві Linux, але ця процедура передбачає, що ви використовуєте Rocky).
  • Високий рівень комфорту роботи з командного рядка для встановлення та налаштування.
  • Знання редактора командного рядка. У цьому прикладі використовується vi, але ви можете скористатися своїм улюбленим редактором, якщо він у вас є.
  • Ця процедура охоплює метод встановлення за допомогою файлу .zip. Ви також можете встановити Nextcloud за допомогою оснастки.
  • Ця процедура використовує документ sites enabled Apache (посилання на який наведено пізніше) для налаштування каталогу.
  • Ця процедура також використовує посилення захисту mariadb-server (також посилання на яке буде наведено пізніше) для налаштування бази даних.
  • У цьому документі припускається, що ви є root-користувачем, або що ви можете підвищити привілеї за допомогою sudo.
  • Приклад домену, що використовується тут, — «yourdomain.com».

Вступ

Якщо ви відповідаєте за серверне середовище великої (або навіть невеликої) компанії, ви можете розглянути можливість використання хмарних додатків. Виконання завдань у хмарі може звільнити ваші власні ресурси для інших завдань, але є й зворотний бік: втрата контролю над даними вашої компанії. Якщо у хмарному застосунку станеться компрометація, ви також можете ризикувати даними своєї компанії.

Повернення хмари у ваше власне середовище – це спосіб відновити контроль над вашими даними, але за рахунок вашого часу та енергії. Іноді це ціна, яку варто заплатити.

Nextcloud пропонує хмару з відкритим вихідним кодом з урахуванням безпеки та гнучкості. Зауважте, що створення сервера Nextcloud є гарною вправою, навіть якщо ви зрештою вирішите перенести свою хмару за межі сайту. Наступна процедура стосується налаштування Nextcloud на Rocky Linux.

Встановлення Nextcloud

Встановлення та налаштування репозиторіїв і модулів

Для цієї інсталяції нам знадобляться два репозиторії. Вам потрібно встановити EPEL (Додаткові пакети для Enterprise Linux) та репозиторій Remi для 10.

Примітка

Хоча для Rocky Linux 10 потрібен PHP 8.3, репозиторій Remi надає додаткові пакети PHP, необхідні для Nextcloud.

Щоб встановити EPEL, запустіть:

dnf install epel-release

Щоб встановити репозиторій Remi, виконайте наступне:

dnf install https://rpms.remirepo.net/enterprise/remi-release-10.rpm

Потім знову запустіть dnf upgrade.

Виконайте наступну команду, щоб переглянути список доступних PHP-модулів:

dnf module list php

Це дає вам такий вивід для Rocky Linux 10:

Remi's Modular repository for Enterprise Linux 10 - x86_64
Name                   Stream                      Profiles                                      Summary                                  
php                    remi-7.4                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.0                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.1                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.2                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.3                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.4                    common [d], devel, minimal                    PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Використовуйте найновішу версію PHP, з якою сумісний Nextcloud. На даний момент це 8,4. Увімкніть цей модуль за допомогою:

dnf module enable php:remi-8.4

Щоб побачити, як це змінює вихід списку модулів, запустіть команду списку модулів знову, і ви побачите «[e]» поруч із 8.3:

dnf module list php

І результат знову той самий, за винятком цього рядка:

php                    remi-8.4 [e]                   common [d], devel, minimal                  PHP scripting language

Встановлення пакетів

У цьому прикладі використовуються Apache та MariaDB. Щоб встановити необхідні пакети, виконайте такі дії:

dnf install httpd mariadb-server vim wget zip unzip libxml2 openssl php84-php php84-php-ctype php84-php-curl php84-php-gd php84-php-iconv php84-php-json php84-php-libxml php84-php-mbstring php84-php-openssl php84-php-posix php84-php-session php84-php-xml php84-php-zip php84-php-zlib php84-php-pdo php84-php-mysqlnd php84-php-intl php84-php-bcmath php84-php-gmp

Конфігурація

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

Налаштуйте apache на запуск під час завантаження:

systemctl enable httpd

Потім запустіть:

systemctl start httpd

Створення конфігурації

У розділі Передумови та припущення було зазначено, що для вашої конфігурації ви використовуватимете процедуру Увімкнено сайти Apache. Перейдіть до цієї процедури та налаштуйте там основи, а потім поверніться до цього документа, щоб продовжити.

Для Nextcloud вам потрібно буде створити наступний файл конфігурації:

vi /etc/httpd/sites-available/com.yourdomain.nextcloud

Зі змістом:

<VirtualHost *:80>
  DocumentRoot /var/www/sub-domains/com.yourdomain.nextcloud/html/
  ServerName  nextcloud.yourdomain.com
  <Directory /var/www/sub-domains/com.yourdomain.nextcloud/html/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews
    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
</VirtualHost>

Після цього збережіть зміни (за допомогою Shift+:+w+q+! для vi).

Далі створіть посилання на цей файл у /etc/httpd/sites-enabled:

ln -s /etc/httpd/sites-available/com.yourdomain.nextcloud /etc/httpd/sites-enabled/

Створення Директорії

Як зазначалося раніше в конфігурації, вам потрібно створити DocumentRoot. Зробіть це за допомогою:

mkdir -p /var/www/sub-domains/com.yourdomain.com/html

Тут ви встановите свій екземпляр Nextcloud.

Налаштування PHP

Нам потрібно встановити часовий пояс для PHP. Щоб це зробити, відкрийте php.ini у обраному вами текстовому редакторі:

vi /etc/opt/remi/php84/php.ini

Потім знайдіть рядок:

;date.timezone =

Видаліть зауваження (++крапка з комою++) та встановіть наш часовий пояс. Для цього прикладу часового поясу ви можете ввести одне з наступних значень:

date.timezone = "America/Chicago"

Або

date.timezone = "US/Central"

Потім збережіть та закрийте файл php.ini.

Зверніть увагу, що для узгодженості ваш часовий пояс у файлі php.ini має відповідати налаштуванням часового поясу вашого комп’ютера. Ви можете дізнатися, що це таке, виконавши такі дії:

ls -al /etc/localtime

Ви повинні побачити щось подібне, якщо припустити, що ви встановили свій часовий пояс під час встановлення Rocky Linux і живете в центральному часовому поясі:

/etc/localtime -> /usr/share/zoneinfo/America/Chicago

Налаштування mariadb-сервера

Налаштуйте mariadb-server на запуск під час завантаження:

systemctl enable mariadb

А потім почніть наступне:

systemctl restart mariadb

Знову ж таки, як зазначено раніше, використовуйте процедуру налаштування для забезпечення захисту mariadb-server для початкової конфігурації.

Встановлення .zip

Наступні кілька кроків передбачають, що ви віддалено підключені до свого сервера Nextcloud через ssh з відкритою віддаленою консоллю:

  • Перейдіть на веб-сайт Nextcloud.
  • Наведіть курсор миші на пункт 'Download', щоб відкрити спадне меню.
  • Натисніть 'Nextcloud server'.
  • Натисність 'Download server archive'.
  • Клацніть правою кнопкою миші на пункті 'Get ZIP file' та скопіюйте посилання.
  • На віддаленій консолі на сервері Nextcloud введіть wget, а потім пробіл і вставте те, що ви щойно скопіювали. Ви повинні отримати щось подібне до наступного: wget https://download.nextcloud.com/server/releases/latest.zip.
  • Після натискання клавіші Enter почнеться завантаження Zip-файлу, яке швидко завершиться.

Після завершення завантаження розпакуйте .zip-файл Nextcloud за допомогою:

unzip latest.zip

Копіювання вмісту та зміна дозволів

Після завершення етапу розпакування Zip-файлу у вас має бути новий каталог у /root під назвою "nextcloud". Перейдіть в цей каталог:

cd nextcloud

Скопіюйте або перемістіть вміст до нашого DocumentRoot:

cp -Rf * /var/www/sub-domains/com.yourdomain.nextcloud/html/

Або

mv * /var/www/sub-domains/com.yourdomain.nextcloud/html/

Наступний крок – переконатися, що Apache володіє каталогом. Зробіть це за допомогою:

chown -Rf apache.apache /var/www/sub-domains/com.yourdomain.nextcloud/html

З міркувань безпеки також потрібно перемістити папку data зсередини DocumentRoot за її межі. Зробіть це за допомогою такої команди:

mv /var/www/sub-domains/com.yourdomain.nextcloud/html/data /var/www/sub-domains/com.yourdomain.nextcloud/

Налаштування Nextcloud

Переконайтеся, що ваші служби працюють. Якщо ви виконали попередні кроки, вони вже мають бути запущені. Між цими початковими запусками служб було кілька кроків, тому перезапустіть їх, щоб переконатися:

systemctl restart httpd
systemctl restart mariadb

Якщо все перезавантажиться і проблем немає, ви готові рухатися далі.

Щоб виконати початкове налаштування, потрібно завантажити сайт у веббраузері:

http://your-server-hostname/ (замініть своїм справжнім іменем хоста)

Якщо ви все зробили правильно, ви повинні побачити екран налаштування Nextcloud:

екран входу в nextcloud

Є кілька речей, які ви хочете зробити інакше, ніж ті, що встановлені за замовчуванням:

  • У верхній частині веб-сторінки, де написано Create an admin account, встановіть користувача та пароль. Для цього документа ми вводимо admin і встановлюємо надійний пароль. Не забудьте зберегти це в безпечному місці (наприклад, у менеджері паролів), щоб не втратити! Навіть якщо ви ввели це поле, не натискайте Enter, доки ми не заповнимо всі поля налаштування.
  • У розділі Сховище та база даних змініть розташування Data folder із кореня документа за замовчуванням на місце, куди ми перемістили папку даних раніше: /var/www/sub-domains/com.yourdomain.nextcloud/data.
  • У розділі Configure the database змініть SQLite на MySQL/MariaDB, натиснувши цю кнопку.
  • Введіть користувача та пароль root MariaDB, які ви встановили раніше, у поля Database user і Database password.
  • У полі Database name введіть nextcloud.
  • У полі localhost введіть (3306 — стандартний порт підключення mariadb).

Після того, як ви все це зробите, натисніть Завершити налаштування, і все має запрацювати.

Вікно браузера деякий час оновлюється, а потім зазвичай не перезавантажує сайт. Введіть свою URL-адресу у вікні браузера ще раз, і ви побачите першу сторінку за замовчуванням.

Ваш адміністратор вже ввійшов у систему (або має бути), і є кілька інформаційних сторінок, які допоможуть вам швидко розібратися. «Інформаційна панель» — це те, що користувачі побачать під час першого входу. Адміністратор тепер може створювати інших користувачів, встановлювати інші програми та виконувати багато інших завдань.

Файл «Nextcloud Manual.pdf» є посібником користувача, щоб користувачі могли ознайомитися з наявними ресурсами. Адміністратор повинен прочитати або принаймні відсканувати основні моменти посібника адміністратора На веб-сайті Nextcloud

Наступні кроки

На цьому етапі не забувайте, що це сервер, на якому ви зберігатимете дані компанії. Важливо захистити його за допомогою брандмауера, налаштувати резервне копіювання, захистити сайт за допомогою SSL та виконати будь-які інші необхідні завдання для безпеки ваших даних.

Висновки

Вам потрібно ретельно оцінити будь-яке рішення про власне використання хмарних технологій компанії. Для тих, хто вирішив, що локальне зберігання даних компанії краще, ніж зовнішній хмарний хостинг, Nextcloud — гарна альтернатива.

Author: Steven Spencer

Contributors: Ezequiel Bruni, Ganna Zhyrnova