Создаем свое облачное хранилище

Добрый день всем, кто оказался на данном сайте. У вас наверняка есть множество файлов, которые вам периодически нужны. Это может быть связано как с работой, так и по личным причинам. А постоянно носить с собой съемный диск не всегда удобно. Можно воспользоваться и платными средствами облачных хранилищ. Но, они либо ограничены в объеме, либо стоят не дешево. Так не лучше ли поднять свое облачное хранилище? У многих наверняка дома завалялся старенький компьютер который можно под это дело и оформить. Закупаемся жесткими дисками больших объемов и начнем создавать сове облачное хранилище. И так, что нам для этого понадобиться? Ну, с компьютером ясно, без него не куда. Накатываем на него старый добрый Debian и устанавливаем связку LAMP. Все команды и настройки подойдут и для Ubuntu, Linux Mint и так далее. Так что вы можете поднять на любой deb платформе данное облачное хранилище. Переходим в терминал и вводим команду:

Установка и настройка LAMP

sudo apt install apache2 php mariadb-client mariadb-server

После установки стека LAMP нам его нужно настроить. Давайте начнем с настройки Apache. Для этого вводим команду которая отключит список каталогов web сервера:

sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf

Далее нам нужно перезапустить Apache и добавить его в автозагрузку при старте нашей системы, сделать это можно следующими командами:

sudo systemctl restart apache2 && sudo systemctl enable apache2

Теперь переходим к Mariadb, и точно так же перезапустим и добавим в автозапуск:

sudo systemctl restart mariadb && sudo systemctl enable mariadb

По умолчанию в Mariadb пароль отсутствует, по этом при первом запуске ниже приведенной команды при запросе пароля просто нажмите “Enter”. После чего установим пароль на Mariadb командой:

sudo mysql_secure_installation

Теперь нам нужно снова перезапустить Mariadb командой:

sudo systemctl restart mariadb

Для корректной работы Nextcloud нужны дополнительный пакеты php. Стоит заметить, php нужен не ниже версии 7.1, учтите это при установке. Давайте установим их командой:

sudo apt install php-mbstring php-xmlrpc php-soap libapache2-mod-php php-apcu php-smbclient php-ldap php-redis php-gd php-xml php-intl php-json php-imagick php-mysql php-zip php-curl

После установки всех необходимых пакетов давайте отредактируем конфигурационный файл php. Стоит заметить, путь у вас может отличаться, взависимости от версии php которую вы устанавливали. В этом файле нам нужно отредактировать следующие параметры, привести их к следующему виду:

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 150M
display_errors = Off
date.timezone = Russia/Moscow

Вводим команду:

sudo nano /etc/php/7.3/apache2/php.ini

При желании в параметре “upload_max_filesize” можно указать больший размер загружаемых файлов.

Теперь давайте создадим базу данных для nextcloud. Не забудьте поменять пароль “1234” на свой, более надежный:

sudo mysql -u root -p
CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY '1234'; 
GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY '1234' WITH GRANT OPTION; 
FLUSH PRIVILEGES;
EXIT;

Установка и настройка Nextcloud

Ну вот и пришло время установить Nextcloud. Для этого нам нужно его скачать с сайта производителя, так как в репозиториях его нет. Скачивать мы будем в папку “tmp”, для этого переходим в нее при помощи команды:

cd /tmp

После того как перешли в папку tmp, приступаем к скачиванию Nextcloud:

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

После того как файл скачался, нам нужно его распаковать, это делается командой:

unzip nextcloud-17.0.1.zip

Перемещаем наш распакованный файл в директорию “/var/www/html”. Это можно сделать при помощи утилиты “mv”.

sudo mv nextcloud /var/www/html/nextcloud/

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

sudo chown -R www-data:www-data /var/www/html/nextcloud/
sudo chmod -R 755 /var/www/html/nextcloud/

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

sudo nano /etc/apache2/sites-available/nextcloud.conf

Вписываем в этот конфигурационный файл следующие параметры:

<VirtualHost *:80>
      ServerAdmin admin@example.com
      DocumentRoot /var/www/html/nextcloud/
      ServerName example.com
      ServerAlias www.example.com
      Alias /nextcloud "/var/www/html/nextcloud/"
      <Directory /var/www/html/nextcloud/>
         Options +FollowSymlinks
         AllowOverride All
         Require all granted
           <IfModule mod_dav.c>
             Dav off
           </IfModule>
         SetEnv HOME /var/www/html/nextcloud
         SetEnv HTTP_HOME /var/www/html/nextcloud
      </Directory>
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined
 </VirtualHost>

Теперь нам нужно прописать в файле “hosts” следующие параметры “127.0.0.1 example.com”. Открываем hosts:

sudo nano /etc/hosts

Ну вот мы почти и подошли к финалу установки nextcloud. Теперь нам нужно активировать некоторые модули, для этого вводим следующие команды последовательно, друг за другом:

sudo a2ensite nextcloud.conf
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime

Перезапускаем службу Apache2 командой:

sudo systemctl restart apache2

И пробуем зайти на наш установленный nextcloud, для этого нужно в браузере набрать адрес:

http://example.com

И если все установилось правильно, вы увидите страницу входа. Вводите логин и пароль который мы указывали при создании базы данных и попадаете так сказать в админку, если можно так выразиться. Дальше можно настроить русский язык и все остальное. Так же нужно произвести еще некоторые действия с сервером на котором стоит Nextcloud, но это уже отдельная история.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *