meta data for this page
To jest stara wersja strony!
ownCloud
ownCloud to aplikacja podobna do Dropbox i Yandex Disk z dodatkową możliwością własnoręcznego hostowania przechowywanych plików.
Instalacja
Wykonujemy standardową instalację serwera LAMP, a następnie dodatkowo poniższe kroki. Pliki aplikacji pobieramy ze strony https://owncloud.org/download/
Instalujemy dodatkowe pakiety:
apt-get install php-imagick php-common php-curl php-gd php-imap php-intl php-json php-ldap php-mbstring php-smbclient php-ssh2 php-xml php-zip
Tworzymy katalog na dane na jakimś ogromniastym dysku. Zakładamy, że jest to osobna partycja zamontowana jako /data:
cd /data/ mkdir owncloud-data chown -R www-data:www-data owncloud-data
Wpisujemy do Crontaba użytkownika www-data (dla Centos użytkownikiem będzie Apache):
# owncloud */10 * * * * /usr/bin/php /home/owncloud/httpdocs/cron.php |& tee -a /home/owncloud/logs/crontab.log
Dodatkowe aplikacje (rozszerzające funkcjonalności owncloud) można pobrać ze strony: https://marketplace.owncloud.com/.
Optymalizacja
Serwer cache.
# Debian: apt-get install php-apcu php-redis redis-server
Do config.php dopisujemy:
'memcache.local' => '\OC\Memcache\APCu', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => [ 'host' => 'localhost', 'port' => 6379, ],
Restartujemy apache.
Konfiguracja
Konfiguracja aplikacji znajduje się w /home/owncloud/httpdocs/config/config.php. W tym pliku podajemy parametry połączenia z bazą danych i lokalizację danych użytkowników na dysku serwera.
Poniżej do pobrania przykładowa konfiguracja Apache.
- owncloud.conf
<VirtualHost *:443> DocumentRoot /home/owncloud/httpdocs ServerName owncloud.uwb.edu.pl ServerAdmin youremail@gmail.com Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;" SSLEngine On SSLCertificateFile /etc/apache2/ssl/certs/server.crt SSLCertificateKeyFile /etc/apache2/ssl/private/server.key SSLCertificateChainFile /etc/apache2/ssl/certs/chain.crt ErrorLog /home/owncloud/logs/ssl_error.log CustomLog /home/owncloud/logs/ssl_access.log combined Alias /owncloud "/home/owncloud/httpdocs/" <Directory /home/owncloud/httpdocs> AddType application/x-httpd-php .php .php3 .php4 .inc DirectoryIndex index.php index.php3 index.html Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted #Require all denied #Require ip 10.9.5 <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /home/owncloud/httpdocs SetEnv HTTP_HOME /home/owncloud/httpdocs </Directory> </VirtualHost> <VirtualHost *:80> DocumentRoot /home/owncloud/httpdocs ServerName owncloud.uwb.edu.pl ServerAdmin youremail@gmail.com Redirect permanent / https://owncloud.uwb.edu.pl ErrorLog /home/owncloud/logs/error.log CustomLog /home/owncloud/logs/access.log combined <Directory /home/owncloud/httpdocs> AddType application/x-httpd-php .php .php3 .php4 .inc DirectoryIndex index.php index.php3 index.html Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted #Require all granted #Require not ip 212 #Require all denied #Require ip 10.9.5 </Directory> </VirtualHost>
Backup
Backupujemy katalog z plikami użytkowników, bazę danych i plik config.php.
Jeżeli po odtworzeniu aplikacji zmienił się katalog z plikami, dodatkowo w MySQL musimy poprawić wpisy w bazie danych.
Załóżmy, że stary katalog to /db/owncloud-data, a nowy /home/owncloud/owncloud-data:
update oc_accounts set home = CONCAT('/home/owncloud/owncloud-data//', user_id) where home like '/db/owncloud-data%';
Ścieżki w bazie danych popraw jeszcze przed przekopiowaniem plików do nowej lokalizacji, a odnowienie indeksów wykonaj na sam koniec. Jeżeli przeskanujesz pliki bez poprawnych wpisów w bazie, pliki zostaną uszkodzone! Wówczas trzeba poprawić wpisy w bazie i skopiować pliki jeszcze raz, po czym powtórzyć wszystkie czynności.
Przywrócenie z backupu wymaga odnowienia indeksów. Po przywróceniu bazy danych i plików w odpowiednie miejsca (zgodnie z konfiguracją) wykonujemy:
apt-get install php-process # yum install php-process cd /home/owncloud/httpdocs sudo -u www-data ./occ files:scan --all # sudo -u apache ./occ files:scan --all
Aktualizacja
Aktualizację wykonujemy jako użytkownik www-data (?!). Dlatego na czas aktualizacji, umożliwiamy logowanie jako ten użytkownik. Dodatkowo wyłączamy zainstalowane aplikacje.
cd /home/owncloud/httpdocs chsh -s /bin/bash www-data su www-data -c 'php occ app:disable user_cas' su www-data -c 'php occ app:disable files_videoplayer' su www-data -c 'php occ upgrade -v' chsh -s /usr/sbin/nologin www-data
Znane problemy
Uwierzytelnianie
W wersji Owncloud 10.3 i MySQL 8.0 wystąpił problem uwierzytelniania aplikacji do bazy danych SQLSTATE[HY000][2054] The server requested authentication method unkown to the client. Rozwiązaniem jest następujące zapytanie do bazy:
mysql> alter user 'owncloud'@'localhost' identified with mysql_native_password by 'xxx';
Uprawnienia
Błąd ERROR 1419 (HY000): You do not have the SUPER Privilege and Binary Logging is Enabled rozwiązuje dodanie uprawnień do tworzenia triggerów dla użytkowników z uprawnieniami CREATE przez ustawienie odpowiedniej zmiennej:
mysql> SET GLOBAL log_bin_trust_function_creators = 1;