Как установить ownCloud на Debian 12
ownCloud — это программное решение для создания файловых хостингов, таких как Google Drive и DropBox. Это бесплатное программное обеспечение для хостинга файлов с открытым исходным кодом, которое позволяет вам настроить автономный хостинг файлов на вашем собственном сервере. ownCloud предлагает серверное приложение (основной компонент программного обеспечения ownCloud) и клиентские приложения, которые можно установить в нескольких операционных системах, таких как Linux, Windows, macOS, Android и iOS.
ownCloud в основном написан на PHP, JavaScript и Go. Он позволяет легко синхронизировать события календаря и хранить архивы, изображения и файлы. Он также позволяет организовывать задачи, адресные книги и т. д. ownCloud — это расширяемое приложение, позволяющее устанавливать поверх него дополнительное приложение.
Следуйте этому руководству, чтобы узнать, как шаг за шагом установить программное обеспечение ownCloud на Debian 12. Узнайте, как установить ownCloud через командную строку в стеке LAMP и защитить ownCloud с помощью сертификатов SSL/TLS от Letsencrypt.
Предварительные условия
Чтобы начать процесс, убедитесь, что у вас есть следующее:
- Сервер Debian 12.
- Пользователь без полномочий root с пользователем-администратором.
- Доменное имя указывает на IP-адрес сервера.
Установка зависимостей
В следующем разделе вы установите зависимости пакета, необходимые для ownCloud. Ниже приведены некоторые пакеты, которые вы будете устанавливать:
- Веб-сервер Apache2.
- Сервер базы данных MariaDB.
PHP 7.4. Текущая версия PHP 8.x еще не поддерживается ownCloud, поэтому вам придется установить PHP 7.4 через сторонний репозиторий. - Редис-сервер.
- Дополнительные пакеты, такие как ImageMagick, Certbot, Pear и расширения PHP.
Сначала выполните следующую команду, чтобы установить некоторые зависимости в вашей системе.
sudo apt install lsb-release ca-certificates curl -y
Теперь выполните команду ниже, чтобы добавить ключ PHP GPG и репозиторий в вашу систему Debian. К сожалению, ownCloud по-прежнему не поддерживает PHP 8.x, и вам необходимо установить PHP 7.4 на свой компьютер с Debian через сторонний репозиторий.
sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
Затем выполните следующую команду, чтобы обновить репозиторий Debian.
sudo apt update
Затем установите зависимости для ownCloud, выполнив следующую команду установки apt. При этом вы установите стек LAMP (Apache2, MariaDB и PHP 7.4), Certbot, Redis, дополнительные расширения PHP и ImageMagick.
sudo apt install apache2 mariadb-server imagemagick certbot python3-certbot-apache smbclient redis-server unzip rsync libapache2-mod-php7.4 php7.4 php7.4-intl php7.4-mysql php7.4-mbstring php7.4-imagick php7.4-igbinary php7.4-gmp php7.4-bcmath php7.4-curl php7.4-gd php7.4-zip php7.4-imap php7.4-ldap php7.4-bz2 php7.4-ssh2 php7.4-common php7.4-json php7.4-xml php7.4-dev php7.4-apcu php7.4-redis libsmbclient-dev php-pear php-phpseclib
Введите y, чтобы продолжить установку.
После установки зависимостей проверьте каждую из них, выполнив следующую команду.
Запустите команду ниже, чтобы проверить службу apache2 и убедиться, что она работает.
sudo systemctl is-enabled apache2
sudo systemctl status apache2
Следующий вывод показывает, что apache2 включен и работает.
Проверьте службу mariadb, используя следующую команду.
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
Выходные данные должны быть аналогичными: включенный выход подтверждает, что mariadb включен, а активный выход (работает) подтверждает, что mariadb работает.
Теперь проверьте Redis, используя следующую команду.
sudo systemctl is-enabled redis
sudo systemctl status redis
Сервер Redis должен быть запущен и включен следующим образом:
Затем выполните следующую команду, чтобы настроить версию PHP по умолчанию на вашем компьютере с Debian.
sudo update-alternatives --config php
Выберите версию PHP по умолчанию — PHP 7.2.
Запустите следующую команду, чтобы настроить дополнительные инструменты PHP для использования PHP 7.4.
sudo update-alternatives --set phar /usr/bin/phar7.4
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4
sudo update-alternatives --set phpize /usr/bin/phpize7.4
sudo update-alternatives --set php-config /usr/bin/php-config7.4
После этого проверьте версию PHP по умолчанию и некоторые включенные расширения, используя следующую команду.
php -v
php -m
Вывод ниже подтверждает, что PHP 7.2 установлен и становится версией PHP по умолчанию на вашем компьютере с Debian.
Наконец, проверьте двоичный путь Certbot и его версию, используя следующую команду.
which certbot
certbot --version
Вы должны увидеть, что Certbot 2.1.0 установлен в /usr/bin/certbot.
Обновление PHP Pear
После установки зависимостей следующим шагом будет обновление пакета Pear до последней версии, что можно сделать через командную строку Pear.
Выполните следующую команду, чтобы создать новый временный каталог /tmp/pear/cache и обновить версию Pear до 1.10.13.
sudo mkdir -p /tmp/pear/cache
sudo pear upgrade --force --alldeps http://pear.php.net/get/PEAR-1.10.13
Во время установки вы должны получить примерно следующий результат:
Затем выполните приведенные ниже команды pear, чтобы очистить кеш, обновить каналы и обновить все пакеты.
sudo pear clear-cache
sudo pear update-channels
sudo pear upgrade --force
sudo pear upgrade-all
После завершения проверьте версию PEAR, используя следующую команду.
pear version
Вы должны увидеть, что Pears обновлен до v1.10.13.
Настройка сервера MariaDB
В следующем разделе вы создадите и защитите установку сервера MariaDB с помощью утилиты mariadb-secure-installation. Затем вы создадите новую базу данных и пользователя, которые будут использоваться ownCloud.
Чтобы защитить сервер MariaDB, выполните следующую команду на своем терминале.
sudo mariadb-secure-installation
В ходе процесса вас спросят о некоторых конфигурациях MariaDB. Введите Y, чтобы принять конфигурацию, или n, чтобы отклонить ее. Ниже приведены некоторые конфигурации MariaDB, которые вам потребуются:
- Переключиться на аутентификацию unix_socket?. Введите n и нажмите ENTER. Пользователь root MariaDB по умолчанию уже защищен. при желании вы также можете включить его, набрав y вместо «да».
- Изменить пароль root?. Введите y, чтобы подтвердить и настроить новый корневой пароль MariaDB.
- Удалить анонимного пользователя?. Введите y для подтверждения.
- Запретить удаленный вход в систему root? Введите y для подтверждения. Если вы используете root-пользователя MariaDB, будет разрешено только локальное соединение.
- Удалить тестовую базу данных и получить к ней доступ? Введите y, чтобы подтвердить и удалить «тест» базы данных по умолчанию.
- Наконец, введите y еще раз, чтобы перезагрузить все права доступа к таблицам на вашем сервере MariaDB и применить новые изменения.
После защиты MariaDB вы создадите новую базу данных и пользователя, которые будут использоваться ownCloud. Для этого вам необходимо войти на сервер MariaDB через клиент mariadb.
Выполните следующую команду, чтобы войти на сервер MariaDB. При появлении запроса введите свой корневой пароль MariaDB.
sudo mariadb -u root -p
Теперь выполните приведенные ниже запросы MariaDB, чтобы создать новую базу данных и пользователя для ownCloud. В этом примере вы создадите новую базу данных owncloud, пользователя owncloud и пароль password.
CREATE DATABASE owncloud;
CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Наконец, проверьте права пользователя owncloud, выполнив следующий запрос.
SHOW GRANTS FOR 'owncloud'@'localhost';
Вы должны увидеть, что пользователь owncloud может получить доступ к базе данных owncloud, которая будет использоваться для установки ownCloud.
Теперь введите quit, чтобы выйти с сервера MariaDB.
Загрузка исходного кода ownCloud
После настройки сервера MariaDB вы загрузите исходный код ownCloud и настроите каталог DocumentRoot для установки ownCloud с соответствующим разрешением и владельцем.
Сначала измените рабочий каталог на /var/www.
cd /var/www
Затем выполните следующие команды wget, чтобы загрузить исходный код ownCloud и соответствующий файл контрольной суммы в вашу систему.
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2.sha256
Теперь выполните приведенную ниже команду, чтобы обеспечить целостность исходного кода вашего ownCloud. В случае успеха вы должны получить вывод «owncloud-complete-latest.tar.bz2: OK».
sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2
Затем выполните следующую команду, чтобы извлечь исходный код ownCloud. Исходный код ownCloud будет извлечен в каталог /var/www/owncloud, который также будет использоваться в качестве каталога DocumentRoot.
tar -xf owncloud-complete-latest.tar.bz2
Наконец, выполните следующую команду, чтобы изменить владельца каталога /var/www/owncloud на пользователя www-data.
sudo chown -R www-data:www-data /var/www/owncloud
Настройка виртуального хоста Apache2
В этом разделе вы создадите новую конфигурацию виртуального хоста, которая будет использоваться для запуска ownCloud. Вы также будете генерировать сертификаты SSL/TLS из Letsencrypt через Certbot. Поэтому, прежде чем начать, убедитесь, что доменное имя указывает на IP-адрес вашего сервера.
Для начала выполните следующую команду, чтобы включить некоторые модули Apache2, которые будут использоваться ownCloud.
sudo a2enmod rewrite env dir mime unique_id headers ssl
Теперь создайте новый файл виртуального хоста /etc/apache2/sites-available/owncloud.conf, используя следующую команду редактора nano.
sudo nano /etc/apache2/sites-available/owncloud.conf
Вставьте следующую конфигурацию и обязательно измените имя домена в параметре ServerName.
<VirtualHost *:80>
ServerName hwdomain.io
ServerAlias www.hwdomain.io
DocumentRoot /var/www/owncloud
ErrorLog ${APACHE_LOG_DIR}/hwdomain.io-error.log
CustomLog ${APACHE_LOG_DIR}/hwdomain.io-access.log combined
Alias /owncloud "/var/www/owncloud/"
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud
</Directory>
</VirtualHost>
Сохраните файл и выйдите из редактора, когда закончите.
Затем запустите приведенную ниже команду a2ensite, чтобы активировать файл виртуального хоста owncloud.conf, и проверьте синтаксис Apache2 с помощью команды apachectl. Если у вас правильный синтаксис, вы должны получить вывод «Синтаксис в порядке».
sudo a2ensite owncloud.conf
sudo apachectl configtest
Теперь запустите команду systemctl ниже, чтобы перезапустить службу apache2 и применить внесенные вами изменения.
sudo systemctl restart apache2
Наконец, запустите приведенную ниже команду certbot, чтобы сгенерировать сертификаты SSL/TLS для вашего доменного имени ownCloud. Обязательно измените имя домена и адрес электронной почты в следующей команде, указав свою информацию.
sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email -d hwdomain.io
После завершения процесса ваши сертификаты SSL/TLS будут доступны в каталоге /etc/letsencrypt/live/hwdomain.io. Кроме того, ваш файл виртуального хоста owncloud.conf будет автоматически настроен на использование HTTPS.
Установка ownCloud через командную строку
На этом этапе вы установили и настроили все зависимости, необходимые для ownCloud. Вы можете начать этап установки через веб-браузер или командную строку. В этом примере вы установите ownCloud через командную строку.
Переместите рабочий каталог в /var/www/owncloud.
cd /var/www/owncloud
Выполните следующую команду, чтобы установить ownCloud через командную строку. Обязательно измените данные базы данных MariaDB, а также нового пользователя и пароль администратора для ownCloud.
sudo -u www-data /var/www/owncloud/occ maintenance:install \
--database "mysql" \
--database-name "owncloud" \
--database-user "owncloud"\
--database-pass "password" \
--admin-user "admin" \
--admin-pass "adminpassowncloud"
После завершения установки вы должны получить следующий результат.
Затем откройте скрипт ownCloud config.php, используя следующую команду редактора nano.
sudo nano /var/www/owncloud/config/config.php
Добавьте свое доменное имя ownCloud в список доверенных_доменов, как показано ниже.
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'hwdomain.io',
),
Сохраните и закройте файл по завершении.
Теперь откройте веб-браузер и посетите свое доменное имя ownCloud, например http://hwdoamin.io/. Вы будете перенаправлены на безопасное соединение HTTPS и получите страницу входа в ownCloud.
Введите пользователя и пароль администратора, затем нажмите Войти.
Если все пойдет хорошо, вы должны увидеть свою панель управления ownCloud, как показано ниже.
Настройка производительности для ownCloud
Теперь, когда вы установили ownCloud, в последнем разделе вы добавите новую конфигурацию для улучшения установки ownCloud. Вы создадите новую таблицу crontab для ownCloud и интегрируете Redis в свою установку ownCloud.
Создайте новый cron для ownCloud, выполнив следующую команду.
sudo crontab -u www-data -e
Выберите предпочитаемый текстовый редактор и введите следующую конфигурацию. При этом вы будете выполнять команду «/usr/bin/php -f /var/www/owncloud/occ system:cron» каждые 15 минут.
*/15 * * * * /usr/bin/php -f /var/www/owncloud/occ system:cron
Сохраните и закройте файл, когда закончите.
Затем снова откройте файл ownCloud config.php с помощью команды редактора nano.
sudo nano /var/www/owncloud/config/config.php
Добавьте свой сервер Redis в качестве memcache.locking, как показано ниже:
<?php>
....
....
'filelocking.enabled' => true,
'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'localhost',
'port' => 6379,
],
....
....
);
Сохраните и выйдите из файла по завершении.
Теперь вернитесь на панель управления ownCloud, щелкните значок пользователя и выберите Настройки.
Нажмите меню Общие и просмотрите раздел Предупреждения безопасности и настройки, чтобы получить подробные рекомендации по установке ownCloud.
Заключение
Поздравляем! Вы завершили пошаговую установку ownCloud на сервер Debian 12. Вы установили ownCloud со стеком LAMP (Apache2, MariaDB и PHP), защитили ownCloud с помощью сертификатов SSL/TLS от Letsencrypt и интегрировали сервер Redis в свою установку ownCloud.