В продолжение цикла статей о практическом применении Raspberry Pi я публикую статью о создании персонального облачного хранилища на базе этого микрокомпьютера.
Это самая объемная и сложная статья из всего цикла публикаций о Raspberry Pi и Arduino на текущий момент. Мне пришлось потратить целый день на то, чтобы вникнуть в процесс установки и настройки персонального облака на базе Nextcloud, поскольку большинство имеющихся на просторах сети инструкций написано с ошибками.
Но результат того стоил. Облако заработало, а процесс его запуска был описан в этой статье, и при повторении приведенных тут инструкций запустить свое собственное облако удастся примерно за 30-60 минут.
Содержание
Почему вам нужно собственное «облако»
Мы живем в странное время. С одной стороны, люди сейчас стали придавать большое значение безопасности личной информации. Wikileaks постоянно обнародует все новые и новые сведения о том, как правительства шпионят за своими гражданами. Появляются мессенджеры, главным достоинством которых является непробиваемое шифрование и полная приватность пользовательских переписок. Google и разработчики популярных браузеров в добровольно-принудительном порядке заставляют владельцев сайтов переходить с HTTP на защищенный HTTPS протокол.
А с другой стороны, те же самые люди почему-то абсолютно безалаберно относятся к такой вещи, как безопасность своих файлов, доверяя их хранение сторонним облачным сервисам типа Dropbox, Яндекс.Диск, OneDrive, iCloud. И их совершенно не беспокоит, что их данные находятся в чужих руках без каких-либо гарантий сохранности.
Можно ли доверять публичным облачным сервисам? Я просто перечислю несколько фактов:
- Dropbox подвергался взлому и массовому хищению пользовательских данных;
- Evernote подвергался взлому с получением доступа к пользовательским паролям и некоторой части хранившейся в сервисе информации;
- Megaupload, некогда один из самых популярных в мире сервисов для загрузки и хранения файлов, закрылся после рейда ФБР, а хранившаяся информация была безвозвратно утрачена;
- Apple iCloud подвергался взлому минимум дважды, и оба раза в открытый доступ попало множество личных фотографий голливудских звезд. Последняя атака на iCloud была проведена совсем недавно, после чего в сеть утекли приватные фото Эммы Уотсон и еще нескольких популярных актрис;
- Wunderlist, один из самых популярных облачных менеджеров задач, в 2016 году «падал» по вине разработчиков, в результате чего сотни тысяч пользователей более чем на двое суток утратили доступ к своим данным;
Так стоит ли вверять свои приватные данные в руки компаний, которые исправно берут абонентскую плату за всякие премиальные функции и дополнительное дисковое пространство для хранения, но при этом ничего вам не гарантируют и не несут перед вами абсолютно никакой ответственности?
По-моему, ответ очевиден.
И если когда-то полноценной альтернативы публичным «облакам» не было вообще, то теперь она есть.
Эта альтернатива — облачные решения Owncloud и отпочковавшийся от него Nextcloud. Это надежные и не первый день существующие системы, использующиеся как в корпоративной среде, так и частными лицами. Они позволяют развернуть свое личное «облако» на своем собственном «железе», не теряя физического доступа к своей информации и не становясь заложником компании, осуществляющей управление «облаком».
Owncloud и Nextcloud зарабатывают на развертывании и поддержке своих решений в корпоративной среде с большим числом пользователей. Для частных лиц пользование системами полностью бесплатно (если не считать разовой покупки мобильного приложения за 75 рублей для пользователей iOS, что сущие мелочи). Нет никаких премиум-функций. Никакой абонентской платы. Никакого дополнительного дискового пространства за деньги. Вы разворачиваете систему на собственном сервере, и единственным ограничением является объем ваших жестких дисков.
А самое приятное — в качестве сервера для Owncloud/Nextcloud может выступать Raspberry Pi. Таким образом, пожизненное владение собственным облаком обойдется в стоимость покупки этого одноплатного компьютера.
Особых различий между Owncloud и Nextcloud нет. Но Nextcloud основан выходцем из компании Owncloud, развивается более активно и более перспективен для обычного (не корпоративного) пользователя, поэтому в данной статье будет рассматриваться именно это облачное решение.
Что умеет Nextcloud
Бегло перечислю основные функции облака Nextcloud:
- Бесплатное облачное хранилище, объем которого зависит только от размера используемого накопителя информации
- Доступ через веб-интерфейс
- Клиентские приложения под Windows, Linux, Mac OS, Android, iOS, Windows 10 Mobile
- «Календарь» и «Контакты» с поддержкой синхронизации по протоколу CalDAV/CardDAV
- Поддержка протокола WebDAV для доступа к хранящимся в облаке файлам
- Возможность шифрования хранящейся информации
- Встроенный аудиоплеер, видеоплеер, просмотрщики текстовых и PDF-файлов
- Галерея и просмотр изображения
- Возможность добавления тегов и комментариев к файлам
- Минималистичный редактор и органайзер заметок — аналог Simplenote
- «Корзина», хранящая в себе удаленные файлы с возможностью их восстановления в течение некоторого времени
- Возможность расшаривания общего доступа к файлам и папкам
- Возможность работы как на сервере в интернете, так и в локальной сети без доступа к интернету вообще
Таким образом, Nextcloud позволяет взять в свои руки контроль и хранение своих файлов, своего календаря и своих контактов. Для полного комплекта не хватает только собственного менеджера задач. Вернее, он есть, но весьма примитивен и плохо адаптирован к работе с русским языком, поэтому можно сказать, что его нет. Но хочется верить, что в дальнейшем менеджер задач получит развитие, и пользуясь Nextcloud получится отказаться и от публичных облачных менеджеров задач.
Что нам понадобится
Для развертывания своего собственного облака на базе Raspberry Pi понадобится:
- Raspberry Pi 3 Model B
- Внешний жесткий диск
О том, как правильно подключить внешний жесткий диск к Raspberry Pi рассказано в этой статье, а об установке и настройке OS Raspbian можно прочитать в статье «Raspberry Pi 3. Обзор и начало работы».
Подготовка к установке
Для развертывания Nextcloud необходимо поднять на «малине» веб-сервер, интерпретатор PHP и СУБД с базой данных для облачного хранилища. Кроме того, мы произведем некоторые манипуляции с системой для оптимизации ее работы.
Установка веб-сервера
Для Nextcloud требуется наличие работающего на «малине» веб-сервера.
Мой выбор — это Apache:
sudo apt-get install apache2
Хотя если вам удобнее, то можно использовать и Nginx. Но в этой статье, как и в статье про организацию электронной библиотеки на базе Raspberry Pi, я рассматриваю вариант именно с Apache.
Установка PHP 7
Для ускорения работы Nextcloud установим на Raspberry Pi PHP 7 — самую свежую версию интерпретатора PHP на данный момент.
По результатам многих тестов PHP 7 работает существенно быстрее PHP 5, но в официальных репозиториях Raspbian пакет с ним на данный момент отсутствует.
Поэтому добавим в Raspbian поддержку HTTPS-протокола (если она еще не установлена):
sudo apt-get install apt-transport-https lsb-release ca-certificates
И установим новый репозиторий:
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
После чего обновим индекс пакетов:
sudo apt-get update
И установим PHP 7 со всеми необходимыми дополнениями:
sudo apt-get install php7.0 php7.0-curl php7.0-gd php7.0-json php7.0-mcrypt php7.0-mysql php7.0-opcache libapache2-mod-php7.0 php7.0-zip php7.0-dom php7.0-mbstring
Проверить версию работающего интерпретатора можно при помощи консольной команды:
php -v
Если установка PHP 7 выполнена корректно, то мы увидим примерно следующее:
Теперь отключим PHP 5 (если ранее он был установлен) и включим интерпретатор PHP 7 в Apache:
sudo a2dismod php5 sudo a2enmod php7.0
Увеличение лимита загружаемых файлов в PHP
Теперь увеличим стандартные лимиты загрузки файлов в PHP. Это делается через редактирование файла настроек php.ini:
sudo nano /etc/php/7.0/apache2/php.ini
В нем нужно найти строки:
memory_limit = 128M
upload_max_filesize = 2M
И заменить их на:
memory_limit = 512M
upload_max_filesize = 512M
После чего перезагрузить веб-сервер для применения изменений.
Перенос /tmp на RAM-диск
Теперь сделаем так, чтобы содержимое папки /tmp писалось не на системный раздел Raspbian, а в оперативную память, т.е. на RAM-диск.
Это нужно для того, чтобы снизить износ microSD-карточки от многочисленных операций по созданию и изменению файлов.
Дело в том, что /tmp выступает временным хранилищем при загрузке файлов через PHP. Т.е. каждый раз, когда мы загружаем что-то в свое облако, эти файлы будут записываться в /tmp и уже оттуда перемещаться в Nextcloud-хранилище на подключенном к «малине» жестком диске. Зачем нагружать microSD кучей бессмысленных операций чтения-записи, если эти операции могут спокойно совершаться в оперативной памяти?
RAM-диск в Raspbian и других Linux-системах присутствует по умолчанию и прописан в качестве файловой системы tmpfs:
Перенос папки /tmp на tmpfs осуществляется путем правки fstab:
sudo nano /etc/fstab
В котором нужно прописать следующие строки:
tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,noexec,mode=1777,size=512M 0 0 tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0
И перезагрузить Raspberry Pi для применения изменений:
sudo reboot
Можно проверить примонтировалась ли папка /tmp на RAM-диск выполнением команды «df»:
Установка СУБД и создание базы данных
Nextcloud использует в своей работе базу данных. Тип используемой базы предоставляется выбирать пользователю.
Можно использовать SQLite — его достоинство заключается в том, что сама БД хранится в виде обычного файла, что облегчает возможность бэкапа.
Можно использовать MySQL, который работает в многопоточном режиме.
Можно использовать PostgreSQL, который является самой мощной из распространенных СУБД.
В теории MySQL лучше подходит для работы с Nextcloud именно благодаря своей многопоточности. На практике обычный пользователь скорее всего не заметит разницы между SQLite и MySQL. Использование же PostgreSQL для Nextcloud можно даже не рассматривать всерьез — это слишком навороченная СУБД для такой простой задачи, а при выполнении простых операций она будет работать медленнее, чем MySQL.
В этой статье я буду рассматривать работу с MySQL:
sudo apt-get install php7.0-mysql mysql-server
Во время установки сервера будет предложено ввести пароль для пользователя root:
Вводим пароль и запоминаем его, в дальнейшем он понадобится.
Теперь создадим базу данных для Nextcloud:
mysql -u root -p
Вводим пароль и попадаем в консольный интерфейс MySQL. В нем вводим следующие команды (команды вводятся построчно, после ввода каждой из них нажимается Enter):
CREATE DATABASE nextcloud; CREATE USER nextcloud@localhost IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud@localhost; FLUSH PRIVILEGES; exit
Думаю из текста команд понятно, что в качестве ‘password’ задается пароль для доступа к БД.
Установка Nextcloud
На момент написания этой статьи актуальной стабильной версией Nextcloud была 11.0.2, на ее примере я и описываю дальнейшие действия.
Самую свежую стабильную версию Nextcloud и можно посмотреть здесь и подставить ссылку на ее скачивание в следующую инструкцию.
Итак, скачиваем и распаковываем архив с Nextcloud:
wget https://download.nextcloud.com/server/releases/nextcloud-11.0.2.zip sudo mkdir /var/www/html/nextcloud sudo mv nextcloud-11.0.2.zip /var/www/html/ cd /var/www/html/ sudo unzip -q nextcloud-11.0.2.zip
Теперь создадим папку для облачного хранилища и пропишем права доступа для пользователя www-data, под которым работает веб-сервер:
sudo mkdir -p /mnt/usbstorage/Nextcloud sudo chown www-data:www-data /mnt/usbstorage/Nextcloud sudo chmod 750 /mnt/usbstorage/Nextcloud sudo chown www-data:www-data /var/www/html/nextcloud/ sudo chown www-data:www-data /var/www/html/nextcloud/config sudo chown www-data:www-data /var/www/html/nextcloud/apps
На этом подготовка к запуску Nextcloud завершена.
Открываем интерфейс Nextcloud в браузере по адресу http://ip-адрес-raspberry-pi/nextcloud/. Если все сделано правильно, то появится экран, на котором нужно создать нового пользователя и указать каталог с данными:
Имя пользователя и пароль может быть любым, а каталог указываем тот, что создавали и к которому прописывали права доступа пользователя www-data консольными командами чуть выше по тексту. В моем примере он располагается на внешнем жестком диске.
Чуть ниже будет предложено ввести данные для доступа к БД:
Вводим те данные, что указали при создании БД MySQL и жмем «Завершить установку».
Открывается приветственное окно с предложением загрузить мобильные и десктопные клиенты:
Интерфейс облачного хранилища:
Встроенный календарь:
И список контактов (пока пустой):
На этом установка Nextcloud окончательно завершена, облачный сервис работает, можно устанавливать клиенты на свой компьютер и мобильные устройства и спокойно пользоваться.
Дополнительная информация
Официальные руководства Nextcloud
Можно ли сделать облако на Raspberry Pi доступным из интернета?
По инструкции из этой статьи у нас получилось облако, доступное внутри локальной сети по внутреннему IP-адресу этой локальной сети. Можно ли сделать его доступным с любого устройства через интернет?
Да, разумеется.
Для этого нужно победить динамический IP-адрес провайдера путем использования Dynamic DNS, пробросить порты на роутере для доступа непосредственно к «малине», зарегистрировать доменное имя и оформить на него SSL-сертификат для создания защищенного HTTPS-соединения.
А также задуматься о безопасности своего «облака», ведь любой объект с доступом по интернету является потенциально уязвимым. Ваше персональное облако будет менее уязвимо, чем публичный сервис, уже хотя бы потому что про него никто не знает, но тем не менее, риск остается.
Я не расписываю подробно момент с выводом доступа к приватному облаку на Nextcloud в интернет как раз потому что не обладаю достаточными познаниями в области защиты интернет-серверов. Но общие сведения я написал выше, кому очень надо — тот сможет найти подробности на других сайтах.
Как сделать бэкап (дамп) БД MySQL
Сделать бэкап базы данных Nextcloud можно при помощи консольной команды:
mysqldump -u ИМЯ_ПОЛЬЗОВАТЕЛЯ -p ПАРОЛЬ ИМЯ_БАЗЫ_ДАННЫХ > /путь/к/файлу/dump.sql
А восстановить эту БД из бэкапа в дальнейшем можно при помощи следующей команды:
mysql -u ИМЯ_ПОЛЬЗОВАТЕЛЯ -p ПАРОЛЬ ИМЯ_БАЗЫ_ДАННЫХ < /путь/к/файлу/dump.sql
Дальнейшее совершенствование личного облака
При следовании инструкции из этой статьи у нас должно получиться полностью рабочее облако, своими возможностями как минимум не уступающее, а то и превосходящее общедоступные коммерческие решения.
Разве что доступное только по локальной сети, но для многих пользователей этого будет достаточно, а кому недостаточно — тот может организовать доступ к своему Nextcloud-облаку через интернет, благо информации по этому вопросу в открытом доступе предостаточно.
Конкретно меня, кстати, вполне устраивает локальное облако. У меня даже отключен мобильный интернет на айфоне, и я вполне себе комфортно живу без доступа к сети в тех местах, где отсутствует Wi-Fi.
Однако, некоторые мысли по совершенствованию облака присутствуют уже сейчас. Для того, чтобы сделать его еще лучше, нужно:
- настроить автоматический бэкап всех хранящихся в облаке файлов
- настроить автоматический бэкап БД MySQL
- зашифровать подключенный к Raspberry Pi жесткий диск целиком, дабы обезопасить информацию в случае попадания самого устройства в чужие руки
Пока у меня нет идей как сделать это, но когда они появятся — я напишу продолжение этой статьи.
Заключение
Вот так одноплатный компьютер, продаваемый за скромные $40, обрастает все новыми и новыми функциями. К функциям качалки торрентов, медиасервера и электронной библиотеки добавилось еще и персональное облако, обеспечивающее куда большую приватность, чем любой общедоступный облачный сервис.
На этом возможности Raspberry Pi не ограничиваются. В следующих статьях будут описаны другие варианты применения этого микрокомпьютера.
Raspberry Pi 3B (английская сборка)в интернет-магазине GearBest Raspberry Pi 3B (китайская сборка)в интернет-магазине GearBest
Поставил Nextcloud, но папку разместил на внешнем HDD с NTFS. И теперь при попытке входа пишет «Каталог данных (/mnt/usbdisk/Nextcloud) доступен для чтения другим пользователям. Измените права доступа на 0770, чтобы другие пользователи не могли получить список файлов этого каталога.»
Но как я не пытался поменять — все равно остается 777. Как-то можно обойти эту проверку?
Вспомнил, тоже было такое.
Надо в fstab прописать опции nofail,permissions к монтируемому диску. А потом или сам Nextcloud права доступа поставит какие ему надо или удастся вручную изменить на те, что он просит. По умолчанию (без опции permissions) линукс-системы почему-то не могут выставлять права доступа на ntfs-разделах.
Дописал в /etc/fstab в строку параметр, теперь эта строка выглядит так
UUID=BAF23627548FCE73F92A /mnt/usbdisk ntfs nofail,permissions,uid=pi,gid=pi 0 0
Но всё равно не могу поменять пермишины. Так и висит 777, ни через mc, ни через chmod на 770 не меняется.
Должно как-то меняться. У меня папка Nextcloud находится на внешнем NTFS-диске, тоже возникала эта проблема, но в итоге решилась вроде бы как раз прописыванием параметра permissions и перезагрузкой.
Еще могу предположить, что надо:
1) установить пакет ntfs-3g, если он не предустановлен в Raspbian по умолчанию (точно не помню этот момент)
2) поменять владельца папки Nextcloud на www-data (chown -R www-data:www-data /mnt/usbdisk/Nextcloud)
И как ? Решилась ? Просто такая же выскочила .
Никто не отписывается по проблеме. Расскажу, что помогло в аналогичной ситуации мне.
Надо в fstab дописать опцию dmask=0004. Типа так:
UUID=BAF23627548FCE73F92A /mnt/usbdisk ntfs nofail,permissions,uid=pi,gid=pi,dmask=0004 0 0
При монтировании это снимает права на чтение папок другим пользователям. Можно им снять вообще все права, как просит nextcloud (прописать dmask=0007), но у меня это вызывало ошибку, сервер вообще вылетал.
\\10.86.7.10\\Volume_1 /mnt/remote_storage/ cifs username=user,password=password,iocharset=utf8,file_mode=0770,dir_mode=0770,_netdev,uid=33,gid=33 0 0
И как работает NextCloud с удаленной папкой?
У меня на cubieboard винт регулярно отваливается, не хватает питания, хотя БП на 3А, думаю, что может действительно сделать на NAS папку с данными?
Добрый день!
Возникла проблема при регистрации.
«Правила файла .htaccess не выполняются. Возможно, каталог данных и файлы свободно доступны из интернета»
Подскажите пожалуйста способы решения данной проблемы.
Проблему исправил путем изменения прав командой сообщением выше «2) поменять владельца папки Nextcloud на www-data (chown -R www-data:www-data /mnt/usbdisk/Nextcloud)»
Но появилась другая проблема: Ошибка при попытке создать пользователя admin: Не удалось подключиться к базе данных: В драйвере возникло исключение: SQLSTATE [HY000] [1045] Отказано в доступе для пользователя ‘nexcloud’ @ ‘localhost’ (using) password: yes
Я бы предположил, что во время создания БД неверно был задан один из основных параметров. Или опечатка в пароле (скорее всего), или опечатка в слове ‘localhost’, или пропущена строчка «GRANT ALL PRIVILEGES ….».
Попробуйте создать новую базу данных (например, с именем nextcloud2), и при старте Некстклауда подключаться уже к ней.
Вот Вы пишете, /tmp в RAM, это правильно в вашем случае (512 Мб лимит на загрузку), но этого сегодня мало. Хочется по 8 Гб иметь возможность заливать
Ну и вообще пишут, что для современных SD карт можно взять 1000 циклов перезаписи за время жизни. Контроллер карты распределяет записываемые данные равномерно по всем доступным ячейкам. Т.е. целесообразно брать карточки побольше (32 Гб) чтобы они подольше жили. Тогда можно залить 8 гиговый файл 4000 раз :) А ваш 512-меговый 64 000 раз. Если Вы будете заливать по 1 такому файлу в день, карты хватит на 175 лет. Если заливать по 8 гиг в сутки, на 11 лет.
Понятно :).
Не знал, что ресурс карточки измеряется в циклах перезаписи всего объема. Я думал, что есть просто некий лимит (достаточно большой) операций чтения-записи и все.
Добрый день.
А по какой причине не использовали «коробочный» LAMP ?
Добрый день.
Я просто не знал о существовании такого пакета на момент знакомства с Raspberry Pi, а дальше уже привычным стало описывать установку его составляющих по отдельности.
Ну и в данном случае был выбран PHP 7 из-за более высокой скорости работы, а в состав LAMP наверное входит PHP 5.6, так что все равно пришлось бы доустанавливать его отдельно.
Понял.
Еще вопрос, если есть возможность посмотреть (проверить), какие данные позволяет забекапить клиент Nextcloud для IOS?
В частности меня интересует автоматический бекап фото с телефонов по воздуху.
Автозагрузка фото работает, в прошлом году добавили эту функцию:
https://nextcloud.com/blog/new-ios-version-with-3d-touch-and-automatic-photo-upload/
Вообще, функционал не отличается от функционала Dropbox или Яндекс.диск
А полноценный бэкап в iOS (т.е. именно бэкап, а не автозагрузка фото в облако) работает только через iTunes на ПК насколько я знаю.
Вводим те данные, что указали при создании БД MySQL и жмем «Завершить установку».
Я ввожу данные жму «Завершить установку». Он говорит что пользователь уже используется
Смотрел в phpmyadmin пользователь создан.
Почему не открывается приветственное окно с предложением загрузить мобильные и десктопные клиенты, а пишет ОШИБКА имя пользователя уже используется?
Для решения проблемы с доступом к директории nextcloud нужно убрать строки соответствующие umask+ как указано выше добавить permissions. Более подробно тут: https://askubuntu.com/questions/380767/please-change-the-permissions-to-0770-so-that-the-directory
Сорри, за глупъй вопрос,
а зачем базаданнъх? что в ней хранится?
Инфа же на хард диске.
Спасибо
В БД должна храниться всякая вспомогательная информация для работы самой системы. Например, в Nextcloud можно тегировать файлы, добавлять комментарии и т.п. — все это заносится в БД.
С этой строчкой все работает UUID=3C122FF3122FB0B6 /mnt/usbstorage ntfs-3g locale=en_US.utf8,uid=33,gid=33,dmask=027,fmask=022,comment=systemd.automount 0 0
UUID=0EF108430EF10843 /mnt/usbstorage ntfs-3g locale=en_US.utf8,quiet,defaults,permissions,umask=0,noexec
sudo chmod 0770 /mnt/usbstorage/Nextcloud
sudo chown www-data:www-data /mnt/usbstorage/Nextcloud
только так заработало
странно проверил приложение в iOS и програмка бесплатная, если что я про американский Appstore
ну «прикупил» на будущее вдруг опять платной станет
хотя у меня пока и малинки то нету )
в новой версии raspberrian вместо mysql устанавливается mariadb, которая не запрашивает пароль от root и нужно после установки выполнить команду:
sudo mysql_secure_installation
после чего уже переходить к настрой базы данных командой:
mysql -u root -p
По мере обновлений Raspbian какие-то отдельные моменты могут меняться, да.
Доступ через недоверенный домен
Обратитесь к администратору. Если вы являетесь администратором этого сервера, отредактируйте параметр «trusted_domains» в файле «config/config.php». Пример настройки можно найти в файле «config/config.sample.php».
Более подробная информация о том, как это сконфигурировать, может быть найдена в документации.
После долгих танцев с бубном, получил вот такую ошибку. Как указано в документации, прописал ip. Кто с таким сталкивался?
Могу ошибаться, но по-моему там речь идет об отсутствии SSL-сертификата на домене.
Dmitry, каким способом лучше подружить GoogleDrive & Raspberry?
Можно установить пакет davfs2 и примонтировать как накопитель по протоколу WebDAV
Доброго дня! Спасибо за статью! Что то апач не стартует. Что посоветуете?
pi@raspberrypi:/var/log/apache2 $ apachectl start
AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message
(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
Action ‘start’ failed.
The Apache error log may have more information.
pi@raspberrypi:/var/log/apache2 $
Посмотрите что висит на 80 порту у вас:
netstat -alpn | grep 80
Апач ругается, что у него нет доступа к этому порту. Может параллельно уже запущен nginx или что-то еще, тогда они будут друг другу мешать.
pi@raspberrypi:~ $ netstat -alpn | grep 80
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 0 0 :::80 :::* LISTEN —
tcp6 0 0 :::8080 :::* LISTEN —
tcp6 0 0 192.168.1.41:80 192.168.1.42:50716 TIME_WAIT —
unix 2 [ ] DGRAM 14080 —
pi@raspberrypi:~ $
Понял. по Вашей инструкции ставил на pi zero Pi-Hole
pi@raspberrypi:~ $ ps -ax|grep apache
603 ? Ss 0:01 /usr/sbin/apache2 -k start
673 ? S 0:00 /usr/sbin/apache2 -k start
674 ? S 0:00 /usr/sbin/apache2 -k start
676 ? S 0:00 /usr/sbin/apache2 -k start
677 ? S 0:00 /usr/sbin/apache2 -k start
678 ? S 0:00 /usr/sbin/apache2 -k start
2048 ? S 0:00 /usr/sbin/apache2 -k start
2053 ? S 0:00 /usr/sbin/apache2 -k start
2054 ? S 0:00 /usr/sbin/apache2 -k start
2055 ? S 0:00 /usr/sbin/apache2 -k start
2056 ? S 0:00 /usr/sbin/apache2 -k start
2124 pts/0 S+ 0:00 grep —color=auto apache
pi@raspberrypi:~ $
Во время установки MySQL не спросил пароль root-a.
pi@raspberrypi:~ $ mysql —version
mysql Ver 15.1 Distrib 10.1.37-MariaDB, for debian-linux-gnueabihf (armv8l) using readline 5.2
Остановился на шаге создания базы данных для Nextcloud
Подскажите как пароль root-a установить. Спасибо!
sudo apt-get purge mysql*
sudo apt-get dist-upgrade
sudo apt-get install mysql-server
сразу после установки:
mysql_secure_installation
вместо пароля просто нажать enter и задать свой пароль
Теперь Nextcloud ещё проще устанавливается.
Нужно установить менеджер пакетов Snap:
sudo apt install snapd
Потом установить Nextcloud:
sudo snap install nextcloud
Только желательно не забыть сделать «Перенос /tmp на RAM-диск», как описано в данной статье.
Нужно установить менеджер пакетов Snap:
sudo apt install snapd
Потом установить Nextcloud:
sudo snap install nextcloud
Привет, Денис!
….и куда поставится Nextcloud и как запускать? есть подробная инфа по данной установке?
Здравствуйте, подскажите. пожалуйста, какова скорость загрузки ?
Установил nextcloud, через некоторое время подключил и расшарил по SMB 2 внешних жестких диска, как теперь перенести базу данных nextcloud с флешки на внешний жестки диск?
Под базой данных подразумевается директория с пользовательскими данными? Если да, то для ее переноса можно использовать решения, которые предлагает техподдержка самого Nextcloud:
https://help.nextcloud.com/t/howto-change-move-data-directory-after-installation/17170
Я бы воспользовался вторым способом (Solution 2) оттуда.
Доброго дня, только у меня на каждом этапе возникает ошибка?
То php не хотел заводиться, то модули не установлены, то теперь ошибка с БД, SQLSTATE[HY000] [1045] Acsess denied. Казалось бы установка почти завершена, но и тут вылезла эта ерунда. Не знаю как решить это. Всё логины и пароли, пути к данным и папкам указаны правильно
Xubuntu 18.04 на борту, и при установке пакетов php пришлось менять название диста на stretch чтобы грузились и ставились репозитории.
Кстати, может ли быть проблема в том, что в папку с данными я могу открыть только в root’е? (каталог с данными находится в /home/username/Nextcloud)
Я понял в чем моя ошибка.
В бездумном копировании строк:
CREATE USER nextcloud@localhost IDENTIFIED BY ‘password’;
Оказывается, надо было вместо password, написать свой пароль. Поэтому и вылазила ошибка
Я разобрался с подключением из интернета к nextcloud, если кому надо, то вот инструкция:
1) Регистрируемся на сайте noip.com
Делаем себе хост username.ddns.net или любой другой
2) В настройках роутера открываем порт 80, чтобы соединяться с машиной
3) После установки и настройки всего из этой статьи, надо добавить доверенный домен в настройки nextcloud
sudo nano /var/www/html/nextcloud/config/config.php
Дописываем свой username.ddns.net в trusted_domains таким образом
trusted_domains’ =>
array (
0 => ‘localhost’,
1 => ‘username.ddns.net ‘,
4) вводим в адресной строке ваш хост username.ddns.net/nextcloud и радуемся
Инфа взята с оф документации
https://docs.nextcloud.com/server/16/admin_manual/installation/installation_wizard.html#trusted-domains
Чтобы подключаться через приложение, надо прикрутить https. Как разберусь допишу
Я бы во всю эту инструкцию добавил простой пункт -> Отформатировать внешний носитель в формат exFat. Инструкцию укоротит, кол-во ошибок снизит. А так спасибо за статью.
Если для малого бизнеса использовать такое решение потянет? предположим для 5 человек использовать на nextcloud + rassbery ?
Для 5 человек потянет, но желательно использовать Raspberry Pi 4 с 2 или 4 Гб оперативной памяти, а хранение данных вынести на SSD.
Спасибо за статью! У меня тоже возникала ошибка «Измените права доступа на 0770…» , когда я пробовала с NTFS. К сожалению, проблему решить не смогла с NTFS, получилось, только когда я отформатировала внешний диск в ext4
sudo mkdir /mnt/usbstorage
sudo apt-get install nano
sudo blkid -o list
sudo mount -t ext4 -o defaults /dev/sda1 /mnt/usbstorage
sudo nano /etc/fstab
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /media/gordon/sandisk ext4 defaults 0
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/usbstorage ext4 defaults 0
сорри, бездумно копипастнула
Отлично исправить бы только еще php 8.0 и сама программа 21.0.0
Устанавливаю на NAS.
При настройке администратора ввожу:
Пользователь БД nextcloud, пароль для БД, название БД nextcloud, хост localhost.
Если оставляю Каталог с данными по умолчанию (/var/www/html/nextcloud/data)- получаю такое сообщение «Неверное имя пользователя и/или пароль для подключения к MySQL Необходимо уточнить данные существующего аккаунта.»; если меняю на свое: /media/Nexycloud (у меня к media подключен RAID), то сообщение «Не удалось создать или записать в каталог данных «/media/nextcloud»».
База данных, пользователь в MySQL имеются, пароль работает.
Предложения установить пароль root при установке MySQL не появилось, пришлось через сброс.
Как решить проблему?
1) Точно ли пароль подходит? Стоит перепроверить, зайти в БД через Adminer (php-скрипт для работы с БД в браузере, легковесный аналог phpMyAdmin).
2) Тут все просто, у пользователя от имени которого запущен процесс Nextcloud нет прав на чтение/запись в папке /media/. Задать их можно так:
Только скорее всего после получения прав на запись Nextcloud опять выдаст ошибку подключения к БД
Не сразу ответил, т.к при вводе команды «sudo chown -R www-data:www-data /media/Nextcloud» сделал ошибку. После слеша перед media сделал пробел, в результате переслала работать sudo. Все попытки откатить не получились. Сейчас переставляю Ubuntu server. Позднее отпишусь.
Возник вопрос: можно одни и те же файлы использовать в Samba и Nextcloud, если им присвоить одну и туже группу и пользователя.
Так же ОЧЕНЬ интересует вопрос использования папок Nexcloud’а в расшаривании через Samba.WebDAVe тормознутный и неудобный. А через самбу доступ к своим файлам будет очень даже удобным.
Если есть какие-то подвижки по этому вопросу — очень прошу поделиться.
Ничего не получилось. Пробовал разные варианты.
Поменял директорию на /mnt/storage (перемонтировал RAID).
Каталог с данными по умолчанию «/mnt/storag/nextcloud/data» (www-data:www-data) все равно появляется «Не удалось создать или записать в каталог данных «/mnt/storag/nextcloud».
Ставится только в директорию по умолчанию ( /var/www/html/nextcloud).
Может дело в том, что к storage примонтирован RAID 0? Где-то не правильно настроен сам RAID?
Пробовал различные советы как переместить data — не чего не помогло.
Стоит PHP 7.4, Nextcloud 23.0.0
Сделай флешку ext4 и все сразу заработает . Такая же проблема была.