• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Raspberry Pi OwnCloud:
ваше личное облачное хранилище

 

 

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

Если вам интересно и вы хотите узнать больше о программном обеспечении Owncloud, обязательно  их веб-сайт по адресу Owncloud.org .

Настройка сервера Raspberry Pi Owncloud

Во-первых, вам понадобится Raspberry Pi с установленным Raspbian.  Есть несколько способов установить Owncloud на Raspberry Pi. В этом конкретном руководстве мы собираемся загрузить веб-сервер ( Nginx ) и Owncloud.

 Установка NGINX и PHP

Первое, что нам нужно сделать, это установить NGINX и PHP на Raspberry Pi. Нам потребуются оба этих программного обеспечения для запуска программного обеспечения Owncloud.

1.Во-первых, в командной строке Pi или через SSH нам нужно будет обновить Raspberry Pi и его пакеты, для этого введите:

sudo apt-get update

sudo apt-get upgrade

2.Далее нам нужно добавить www-dataпользователя в www-dataгруппу.

sudo usermod -a -G www-data www-data

Эти инструкции были обновлены для работы с Raspbian Buster. Если вы используете более раннюю версию, я настоятельно рекомендую вам перейти на Raspbian Buster, прежде чем продолжить.

3. После того, как вы запустите Raspbian Buster, вы можете спокойно продолжить изучение этого руководства. На этом этапе мы установим все пакеты, необходимые для запуска Owncloud. Это включает php7.3 и его многочисленные модули, на которые полагается OwnCloud. Выполните следующую команду, чтобы установить все, что нам нужно.

sudo apt-get install nginx openssl ssl-cert php7.3-xml php7.3-dev php7.3-curl php7.3-gd php7.3-fpm php7.3-zip php7.3-intl php7.3-mbstring php7.3-cli php7.3-mysql php7.3-common php7.3-cgi php7.3-apcu php7.3-redis redis-server php-pear curl libapr1 libtool libcurl4-openssl-dev

 Настройка NGINX для Owncloud и HTTPS

Наш следующий шаг - установить и настроить NGINX для работы с программным обеспечением Owncloud. Мы также настроим NGINX, чтобы он также мог поддерживать HTTPS-соединения.
1. Теперь нам нужно создать сертификат SSL, вы можете сделать это, выполнив следующую команду:

sudo openssl req $@ -new -x509 -days 730 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key

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

2.В дополнение к сертификату SSL нам также необходимо сгенерировать собственный файл dhparam. Этот файл помогает обеспечить безопасность наших SSL-соединений. По умолчанию будет использоваться вариант по умолчанию, который не так безопасен. Чтобы создать файл dhparam длиной 2048 байт, выполните следующую команду на своем Raspberry Pi. Этот процесс займет довольно много времени, до 2 часов. Добавление dhparamфлага к команде поможет ускорить процесс, но, возможно, менее безопасно.

sudo openssl dhparam -out /etc/nginx/dh2048.pem 2048

3. Теперь нам нужно изменить chmod три файла сертификатов, которые мы только что сгенерировали.

sudo chmod 600 /etc/nginx/cert.pem

sudo chmod 600 /etc/nginx/cert.key

sudo chmod 600 /etc/nginx/dh2048.pem

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

sudo sh -c "echo '' > /etc/nginx/sites-available/default"

5. Теперь давайте настроим конфигурацию веб-сервера, чтобы он правильно запускал Owncloud.

sudo nano /etc/nginx/sites-available/default

6. Теперь просто скопируйте и вставьте в файл следующий код.

upstream php-handler {

    server unix:/var/run/php/php7.3-fpm.sock;

}

 

server {

    listen 80;

    server_name _;

 

    #Allow letsencrypt through

    location /.well-known/acme-challenge/ {

        root /var/www/owncloud;

    }

 

    # enforce https

    location / {

        return 301 https://$host$request_uri;

    }

}

 

server {

    listen 443 ssl http2;

    server_name _;

 

    ssl_certificate /etc/nginx/cert.pem;

    ssl_certificate_key /etc/nginx/cert.key;

 

    ssl_session_timeout 5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH';

    ssl_dhparam /etc/nginx/dh2048.pem;

    ssl_prefer_server_ciphers on;

    keepalive_timeout    70;

    ssl_stapling on;

    ssl_stapling_verify on;

 

    add_header Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" always;

    add_header X-Content-Type-Options nosniff;

    add_header X-Frame-Options "SAMEORIGIN";

    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/owncloud/;

 

    location = /robots.txt {

        allow all;

        log_not_found off;

        access_log off;

    }

 

    # The following 2 rules are only needed for the user_webfinger app.

    # Uncomment it if you're planning to use this app.

    #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;

    #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

 

    location = /.well-known/carddav {

        return 301 $scheme://$host/remote.php/dav;

    }

    location = /.well-known/caldav {

        return 301 $scheme://$host/remote.php/dav;

    }

 

    # set max upload size

    client_max_body_size 512M;

    fastcgi_buffers 8 4K;

    fastcgi_ignore_headers X-Accel-Buffering;

 

    gzip off;

 

    error_page 403 /core/templates/403.php;

    error_page 404 /core/templates/404.php;

 

    location / {

        rewrite ^ /index.php$uri;

    }

 

    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {

        return 404;

    }

 

    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {

        return 404;

    }

 

    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {

        fastcgi_split_path_info ^(.+\.php)(/.*)$;

        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_param SCRIPT_NAME $fastcgi_script_name;

        fastcgi_param PATH_INFO $fastcgi_path_info;

        fastcgi_param HTTPS on;

        fastcgi_param modHeadersAvailable true;

        fastcgi_param front_controller_active true;

        fastcgi_read_timeout 180;

        fastcgi_pass php-handler;

        fastcgi_intercept_errors on;

        fastcgi_request_buffering off; #Available since NGINX 1.7.11

    }

 

    location ~ ^/(?:updater|ocs-provider)(?:$|/) {

        try_files $uri $uri/ =404;

        index index.php;

    }

 

    location ~ \.(?:css|js)$ {

        try_files $uri /index.php$uri$is_args$args;

        add_header Cache-Control "max-age=15778463";

        add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";

        add_header X-Content-Type-Options nosniff;

        add_header X-Frame-Options "SAMEORIGIN";

        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 ~ \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg|map)$ {

        add_header Cache-Control "public, max-age=7200";

        try_files $uri /index.php$uri$is_args$args;

        access_log off;

    }

}

7.Теперь сохраните файл и выйдите из него, нажав CTRL+ X, затем Y, а затем ENTER.

8. Поскольку мы внесли изменения в конфигурацию NGINX, нам нужно перезапустить его службу, выполнив следующую команду.

sudo systemctl restart nginx

 Настройка PHP для Owncloud

Теперь, когда NGINX настроен, мы можем приступить к подготовке PHP к работе с нашей установкой Owncloud. По мере использования php-fpmнам нужно сделать еще несколько вещей.

1. Теперь, когда это сделано, нам нужно будет обновить еще несколько конфигураций. Сначала откройте файл конфигурации PHP, введя.

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

2.В этом файле мы хотим найти и обновить следующие строки. ( CTRL+ Wпозволяет искать)

Находим

upload_max_filesize = 2M

Заменим

upload_max_filesize = 2000M

Находим

post_max_size = 8M

Заменим

post_max_size = 2000M

3.После этого сохраните и выйдите, нажав CTRL+ X, затем Y, затем ENTER.

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

sudo nano /etc/php/7.3/fpm/pool.d/www.conf

5. В этом файле найдите следующий блок кода и замените его тем, что у нас ниже. Вы можете использовать CTRL+, Wчтобы быстрее найти этот блок кода. Обычно он находится в нижней части файла.

Находим

;env[HOSTNAME] = $HOSTNAME

;env[PATH] = /usr/local/bin:/usr/bin:/bin

;env[TMP] = /tmp

;env[TMPDIR] = /tmp

;env[TEMP] = /tmp

Заменим

env[HOSTNAME] = $HOSTNAME

env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

env[TMP] = /tmp

env[TMPDIR] = /tmp

env[TEMP] = /tmp

6.После внесения этих изменений сохраните файл, нажав CTRL+ X, а Yзатем, затем ENTER.

 Добавление памяти подкачки

Наш следующий шаг - добавить в нашу систему немного памяти подкачки. Добавление памяти подкачки позволяет Raspberry Pi работать дальше своей памяти, используя пространство на устройстве хранения. Хотя намного медленнее, чем RAM, но лучше, чем сбой программы

1.Чтобы увеличить объем памяти подкачки, нам нужно изменить файл с именем dphys-swapfile. Чтобы изменить этот файл, используйте следующую команду:

sudo nano /etc/dphys-swapfile

2.В этом файле найдите следующую строку и измените ее на то, что у нас ниже.
Находим

CONF_SWAPSIZE=100

Заменим

CONF_SWAPSIZE = 512

3.После этого сохраните и выйдите, нажав CTRL+ X, затем Y, затем ENTER.

4. Чтобы наши изменения вступили в силу, нам нужно перезапустить Raspberry Pi, выполнив команду ниже.

sudo reboot

 Настройка базы данных MySQL и пользователя для Owncloud

Перед тем, как начать этот раздел, вы должны уже настроить сервер MySQL на своем Raspberry Pi .

1. Чтобы иметь возможность создать нашу базу данных, нам нужно будет использовать интерфейс командной строки MySQL. Мы можем загрузить инструмент, выполнив следующую команду.

sudo mysql -u root -p

2. После входа в систему вы можете начать взаимодействие со своим сервером MySQL. База данных, которую мы будем создавать, называется ownclouddb. Мы можем создать эту базу данных, выполнив следующую команду.

CREATE DATABASE ownclouddb;

3. Создав базу данных, давайте теперь создадим пользователя, который сможет с ней взаимодействовать. Мы можем создать пользователя с именем ownclouduser, выполнив команду ниже. Убедитесь, что вы заменили [PASSWORD]пароль на надежный, и запишите его на будущее.

CREATE USER 'ownclouduser'@'localhost' IDENTIFIED BY '[PASSWORD]';

4. Наш следующий шаг - предоставить права доступа нашему новому пользователю. Мы можем предоставить эти привилегии, выполнив следующую команду.

GRANT ALL PRIVILEGES ON ownclouddb.* TO 'ownclouduser'@'localhost';

5.Последняя задача - сбросить привилегии. Если мы этого не сделаем, наши изменения не будут использоваться сервером. Чтобы сбросить привилегии, все, что нам нужно сделать, это выполнить следующую команду.

FLUSH PRIVILEGES;

После очистки таблицы привилегий мы можем приступить к установке и настройке программного обеспечения Owncloud.

 Скачивание и распаковка Owncloud

Теперь в этом разделе мы установим актуальное программное обеспечение Owncloud на Raspberry Pi. Для установки Owncloud нужно выполнить несколько простых шагов.

1. После перезапуска Pi вам нужно будет установить Owncloud на Raspberry Pi. Давайте перейдем в каталог, из которого мы будем запускать скрипт.

cd /var/www/

2. Теперь, когда мы находимся в нужном каталоге, мы можем загрузить последнюю версию Owncloud. Для этого мы воспользуемся wgetкомандой, приведенной ниже.

sudo wget https://download.owncloud.org/community/owncloud-latest.tar.bz2

3.Теперь распакуйте архив, который мы скачали, используя tar.

sudo tar -xvf owncloud-latest.tar.bz2

4.После того, как все извлечено, нам нужно убедиться, что www-dataфайлы принадлежат ему. Мы можем рекурсивно изменять права доступа к файлу с помощью команды chown .

sudo chown -R www-data:www-data /var/www

5.Теперь нам нужно открыть .user.iniфайл, чтобы применить некоторые изменения, которые мы внесли ранее в учебнике.

sudo nano /var/www/owncloud/.user.ini

6. Здесь обновите следующие значения, чтобы они равнялись 2000M:

upload_max_filesize=2000M

post_max_size=2000M

memory_limit=2000M

7. Теперь, когда это сделано, мы должны иметь возможность подключиться к Owncloud по IP-адресу вашего PI. Перед настройкой учетной записи администратора вы можете подключить внешний диск, чтобы у вас было много места для вашего сервера Raspberry Pi Owncloud. Просто следуйте инструкциям в следующем разделе.

 Монтаж и настройка диска

Настройка внешнего диска при этом должна быть относительно простой, но иногда все работает не так правильно, как должно. Эти инструкции предназначены для монтирования и позволяют Owncloud хранить файлы на внешнем жестком диске.

1. Во-первых, если у вас есть диск NTFS, нам нужно будет установить пакет NTFS, введя следующее:

sudo apt-get install ntfs-3g

2. Теперь давайте создадим каталог, который мы можем смонтировать.

sudo mkdir /media/ownclouddrive

3.Теперь нам нужно получить GID , UID и UUID, поскольку нам нужно будет использовать их в ближайшее время. Введите следующую команду для GID :

id -g www-data

4.Теперь для UID введите следующую команду:

id -u www-data

5.Кроме того, если мы получим UUID жесткого диска, Pi запомнит этот диск, даже если вы подключите его к другому USB-порту.

ls -l /dev/disk/by-uuid

 

Жесткий диск UUID

 

Скопируйте голубые буквы и цифры последней записи (в конце должно быть что-то вроде -> ../../sda1).

6. Теперь давайте добавим ваш диск в файл fstab, чтобы он загружался с правильными разрешениями.

sudo nano /etc/fstab

7.Теперь добавьте следующую строку в конец файла, обновив UID , GUID и UUID значениями, которые мы получили выше. (Следующее должно быть в одной строке)

UUID=DC72-0315 /media/ownclouddrive auto nofail,uid=33,gid=33,umask=0027,dmask=0027,noatime 0 0

8.Перезагрузите Raspberry Pi, и диски должны быть автоматически смонтированы. Если они установлены, нам всем хорошо. Примечание: если вы получаете сообщение об ошибке, указывающее, что Pi находится в аварийном режиме при загрузке, это, вероятно, означает проблему с записью fstab. Просто отредактируйте файл fstab ( sudo nano /etc/fstab) и удалите добавленную строку или найдите ошибку и исправьте ее.

 Настройка Owncloud

Я кратко рассмотрю основы настройки Owncloud Raspberry Pi здесь. Если вам нужна дополнительная информация, я настоятельно рекомендую ознакомиться с руководствами на их веб-сайте. Вы можете найти их на сайте руководства Owncloud здесь .

1. В вашем любимом веб-браузере вам нужно перейти на IP-адрес вашего Raspberry Pi. Если вы не знаете локальный IP-адрес вашего Pi, вы можете выполнить следующую команду.

hostname -I

2. После того, как вы перейдете на IP-адрес, где вы хотите получить ошибку сертификата, добавьте его в свой список исключений, так как это будет безопасно. В Chrome, вы кнопку ( 1 ).clickShow advanced Затем click« Proceed to [YOURPISIPADDRESS] (unsafe)» ( 2. ).

 

 

3. Когда вы впервые откроете Owncloud, вам нужно будет выполнить некоторые начальные шаги по настройке. Первое, что вам нужно сделать, это указать usernameи passwordдля своей учетной записи администратора Owncloud. ( 1. ) Далее нам нужно вызвать настройки хранилища и базы данных. Вы можете сделать это с clickingпомощью раскрывающегося списка « Хранилище и база данных » ( 2. ). Если вы используете другую папку данных, вы можете указать ее сейчас, используя Data folderтекстовое поле ( 3. ) Затем нам нужно вызвать параметры базы данных MySQL. Вы можете найти их с clickingпомощью переключателя MySQL / MariaDB ( 4. ). Затем нам нужно заполнить три бита информации: пользователя базы данных, пароль для этого пользователя и имя базы данных.

Во-первых, вам нужно указать « Пользователь базы данных » ( A. ). Если вы следуете этому руководству, так и должно быть ownclouduser.

Во втором варианте вам нужно будет указать пароль, который вы установили для указанного выше пользователя. ( Б. )

Наконец, нам нужно указать имя базы данных. ( C. ) Если вы использовали те из этого учебника, вы должны установить это значение ownclouddb.

После того, как вы закончите со всеми настройками, clickс помощью Finish setupкнопки ( 4 ).

 

 

Если вам когда-либо понадобится обновить, и вы обнаружите, что внутреннее средство обновления не работает, это, вероятно, означает, что вам придется сделать это вручную. Вы можете найти подробный процесс обновления на странице руководства по обновлению Owncloud . В следующих двух разделах вы узнаете, как еще больше улучшить программное обеспечение Owncloud.

 Настройка кеширования памяти для Owncloud

В этом разделе мы покажем вам, как настроить Owncloud для использования APCu и Redis. APCu используется в качестве кэша объектной памяти, а Redis используется для блокировки транзакционных файлов. Использование обоих из них поможет улучшить производительность Owncloud на Raspberry Pi.

1. Чтобы включить их, нам нужно внести изменения в файл конфигурации Owncloud. Начните редактировать этот файл, выполнив следующую команду.

sudo nano /var/www/owncloud/config/config.php

2. Найдите в этом файле следующую строку и добавьте под ней блок текста.

Находим

'installed' => true,

Добавим ниже

  'memcache.local' => '\OC\Memcache\APCu',

  'memcache.locking' => '\OC\Memcache\Redis',

  'redis' => [

    'host' => 'localhost',

    'port' => 6379,

  ],

3.После этого сохраните файл, нажав CTRL+ X, затем Y, а затем ENTER.

 Использование System Cron с Owncloud

Команда Owncloud рекомендует настроить его так, чтобы операционная система выполняла задания cron вместо Ajax.

1.Чтобы иметь возможность настроить задание cron для Owncloud, нам нужно будет использовать www-datacrontab пользователя. Начните изменять cron пользователя, выполнив следующую команду.

sudo crontab -u www-data -e

Если вас спросят, какой редактор вы должны использовать для изменения crontab, мы настоятельно рекомендуем вам использовать nano.

2. Добавьте следующую строку в конец этого файла.

*  *  *  *  * /usr/bin/php /var/www/owncloud/occ system:cron

Эта строка будет запускать задание cron Owncloud каждую минуту.

3.После этого сохраните файл, нажав CTRL+ X, затем Y, затем ENTER. Теперь у вас должен быть правильно настроен Owncloud на вашем Raspberry Pi.

 Перенаправление портов и внешний доступ

Если вы хотите иметь доступ к вашему облачному диску за пределами вашей локальной сети, вам нужно будет настроить переадресацию портов и внести несколько изменений в наши файлы конфигурации.  Если у вас динамический IP-адрес, вы можете настроить динамический DNS и использовать его в качестве своего адреса. Вы можете найти информацию об этом в моем руководстве по перенаправлению портов. Для этого откройте файл конфигурации Owncloud с помощью следующей команды.

sudo nano /var/www/owncloud/config/config.php

Здесь добавьте новый элемент в массив доверенных доменов (это будет ваш внешний IP-адрес). Ваша новая запись должна выглядеть примерно так (x - это просто заполнители).

1 => 'xxx.xxx.xxx.xxx',

Наконец, обновите URL-адрес строки overwrite.cli.url на свой IP-адрес. Это должно выглядеть примерно так.

'overwrite.cli.url' => 'https://xxx.xxx.xxx.xxx',

Ниже приведен пример готового config.txtфайла.

 

Пример изменения внешнего IP-адреса

 

Обязательно ознакомьтесь с моим руководством по переадресации портов и используйте следующий порт 443 для внутреннего, и я рекомендовал случайный порт для внешнего порта. При настройке внешнего порта убедитесь, что он еще не зарезервирован для конкретной программы. При внешнем подключении к серверу Owncloud вам необходимо убедиться, что вы используете https, иначе вы получите недопустимый запрос в своем браузере. Настроить переадресацию портов очень просто, и вы получите доступ к своему личному облаку на ходу. Также после того, как вы это сделаете, вы все равно сможете подключиться через свой локальный IP-адрес.

 




Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 373



          

Радио для всех© 2024