Zainstaluj NextCloud na Ubuntu 22.04 (Nginx + PostgreSQL + PHP8)
W tym samouczku dowiesz się, jak zainstalować NextCloud na Ubuntu 22.04 LTS z serwerem internetowym Nginx.
Co to jest NextCloud?
NextCloud to bezpłatne rozwiązanie do przechowywania danych w chmurze typu open source. Jest funkcjonalnie podobny do Dropbox. Autorskie rozwiązania do przechowywania w chmurze (Dropbox, Google Drive itp.) są wygodne, ale mają swoją cenę: można ich używać do gromadzenia danych osobowych, ponieważ Twoje pliki są przechowywane na ich komputerach. Jeśli obawiasz się o prywatność, możesz przejść na NextCloud, który możesz zainstalować na swoim prywatnym serwerze domowym lub na wirtualnym serwerze prywatnym (VPS). Możesz przesłać swoje pliki na swój serwer za pośrednictwem NextCloud, a następnie zsynchronizować je z komputerem stacjonarnym, laptopem lub smartfonem. Dzięki temu masz pełną kontrolę nad swoimi danymi.
NastępneFunkcje chmury
- Bezpłatne i otwarte
- Szyfrowanie typu end-to-end, co oznacza, że pliki mogą być szyfrowane na urządzeniach klienckich przed przesłaniem na serwer, więc nawet jeśli ktoś ukradnie Twój serwer, nie będzie mógł odczytać Twoich plików.
- Można go zintegrować z pakietem biurowym online (Collobora Online, OnlyOffice), dzięki czemu możesz tworzyć i edytować pliki doc, ppt, xls bezpośrednio z NextCloud.
- Sklep z aplikacjami zawiera setki aplikacji rozszerzających funkcjonalność (takich jak aplikacja kalendarza, aplikacja do kontaktów, aplikacja do robienia notatek, aplikacja do wideokonferencji itp.).
- Klient synchronizacji jest dostępny dla systemów Linux, macOS, Windows, iOS i Android.
Wymagania
Możesz zainstalować NextCloud na swoim serwerze domowym lub VPS (wirtualny serwer prywatny).
Potrzebujesz także nazwy domeny, aby później móc włączyć protokół HTTPS w celu szyfrowania ruchu HTTP. Zarejestrowałem swoją nazwę domeny w NameCheap, ponieważ cena jest niska, a oni zapewniają bezpłatną ochronę prywatności Whois na całe życie. Nextcloud można zainstalować bez nazwy domeny, ale to naprawdę nie ma sensu, jeśli nie szyfrujesz połączenia HTTP, aby zapobiec szpiegowaniu. Polecam zakup nazwy domeny, jeśli naprawdę chcesz majstrować przy oprogramowaniu serwerowym i wykorzystywać je w pełni.
Teraz zainstalujmy NextCloud.
Krok 1: Pobierz NextCloud na Ubuntu 22.04
Zaloguj się do serwera Ubuntu 22.04. Następnie pobierz archiwum zip NextCloud na swój serwer. W chwili pisania tego tekstu najnowsza stabilna wersja to 24.0.0. Przejdź do https://nextcloud.com/install i kliknij pobierz na serwer -> Plik archiwum, aby zobaczyć najnowszą wersję.
Możesz uruchomić następujące polecenie, aby pobrać je na swój serwer.
wget https://download.nextcloud.com/server/releases/nextcloud-24.0.0.zipZawsze możesz użyć powyższego formatu adresu URL, aby pobrać NextCloud. Jeśli pojawi się nowa wersja, po prostu zastąp
24.0.0nowym numerem wersji.
Zainstaluj narzędzie rozpakowujące.
sudo apt install unzipUtwórz katalog/var/www/ i wyodrębnij plik archiwum.
sudo mkdir -p /var/www/
sudo unzip nextcloud-24.0.0.zip -d /var/www/Opcja -d określa katalog docelowy. Pliki internetowe NextCloud zostaną wyodrębnione do /var/www/nextcloud/.
Krok 2: Utwórz bazę danych i użytkownika dla Nextcloud w PostgreSQL
Nextcloud jest kompatybilny z PostgreSQL, MariaDB/MySQL i SQLite. Nextcloud jest znacznie szybszy dzięki PostgreSQL, dlatego w tym samouczku będziemy używać PostgreSQL. Jeśli wcześniej instalowałeś Nextcloud z serwerem bazy danych MariaDB/MySQL, możesz także przeprowadzić migrację do PostgreSQL.
Uruchom następujące polecenie, aby zainstalować Postgresql. (PostgreSQL i MariaDB mogą działać na tym samym serwerze. Nie musisz usuwać MariaDB.)
sudo apt install -y postgresql postgresql-contribZaloguj się do PostgreSQL jako użytkownik postgres.
sudo -u postgres psql
Utwórz bazę danych nextcloud
CREATE DATABASE nextcloud TEMPLATE template0 ENCODING 'UNICODE';Utwórz użytkownika (nextclouduser) i ustaw hasło.
CREATE USER nextclouduser WITH PASSWORD 'nextclouduser_password';Nadaj uprawnienia użytkownikowi bazy danych.
ALTER DATABASE nextcloud OWNER TO nextclouduser;
GRANT ALL PRIVILEGES ON DATABASE nextcloud TO nextclouduser;Naciśnij Ctrl+D, aby wylogować się z konsoli PostgreSQL.
Następnie uruchom następujące polecenie, aby sprawdzić, czy możesz zalogować się do PostgreSQL jako nextclouduser.
psql -h 127.0.0.1 -d nextcloud -U nextclouduser -WNaciśnij Ctrl+D, aby się wylogować.
Krok 3: Utwórz wirtualny host Nginx dla Nextcloud
Zainstaluj serwer WWW Nginx.
sudo apt install nginxUtwórz plik nextcloud.conf w katalogu /etc/nginx/conf.d/ za pomocą edytora tekstu wiersza poleceń, takiego jak Nano.
sudo nano /etc/nginx/conf.d/nextcloud.confSkopiuj i wklej poniższy tekst do pliku. Zamień nextcloud.example.com na własną preferowaną subdomenę. Nie zapomnij utworzyć rekordu DNS A dla tej subdomeny w edytorze stref DNS. Jeśli nie masz prawdziwej nazwy domeny, polecam udać się do NameCheap, aby ją kupić. Cena jest niska i zapewniają bezpłatną ochronę prywatności Whois na całe życie.
server {
listen 80;
listen [::]:80;
server_name nextcloud.example.com;
# Add headers to serve security related headers
add_header X-Content-Type-Options nosniff;
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;
add_header Referrer-Policy no-referrer;
#I found this header is needed on Ubuntu, but not on Arch Linux.
add_header X-Frame-Options "SAMEORIGIN";
# Path to the root of your installation
root /var/www/nextcloud/;
access_log /var/log/nginx/nextcloud.access;
error_log /var/log/nginx/nextcloud.error;
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;
}
location ~ /.well-known/acme-challenge {
allow all;
}
# set max upload size
client_max_body_size 512M;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location / {
rewrite ^ /index.php;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
try_files $fastcgi_script_name =404;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
#Avoid sending the security headers twice
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the PHP block
location ~* \.(?:css|js)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers (It is intended to
# have those duplicated to the ones above)
add_header X-Content-Type-Options nosniff;
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;
add_header Referrer-Policy no-referrer;
# Optional: Don't log access to assets
access_log off;
}
location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
# Optional: Don't log access to other assets
access_log off;
}
}
Zapisz i zamknij plik. (Aby zapisać plik w edytorze tekstu Nano, naciśnij Ctrl+O, a następnie naciśnij Enter, aby potwierdzić. Aby wyjść, naciśnij Ctrl+X. )
Musimy zmienić właściciela tego katalogu na www-data, aby serwer WWW (Nginx) mógł zapisywać w tym katalogu.
sudo chown www-data:www-data /var/www/nextcloud/ -RNastępnie przetestuj konfigurację Nginx.
sudo nginx -t
Jeśli test zakończy się pomyślnie, załaduj ponownie Nginx, aby zmiany zaczęły obowiązywać.
sudo systemctl reload nginxKrok 4: Zainstaluj i włącz moduły PHP
Najnowsza wersja Nextcloud jest kompatybilna z PHP8.1. Uruchom następujące polecenia, aby zainstalować moduły PHP wymagane lub zalecane przez NextCloud.
sudo apt install imagemagick php-imagick php8.1-common php8.1-pgsql php8.1-fpm php8.1-gd php8.1-curl php8.1-imagick php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-bcmath php8.1-gmpKrok 5: Włącz HTTPS
Teraz możesz uzyskać dostęp do kreatora instalacji internetowej Nextcloud w swojej przeglądarce internetowej, wprowadzając nazwę domeny dla instalacji Nextcloud.
nextcloud.example.comJeśli strona internetowa nie może się załadować, prawdopodobnie musisz otworzyć port 80 w zaporze.
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPTOraz port 443.
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPTPrzed podaniem jakichkolwiek wrażliwych informacji powinniśmy włączyć bezpieczne połączenie HTTPS w Nextcloud. Darmowy certyfikat TLS możemy uzyskać od Let’s Encrypt. Zainstaluj klienta Let’s Encrypt (certbot) z repozytorium Ubuntu 22.04.
sudo apt install certbot python3-certbot-nginxPython3-certbot-nginx to wtyczka Nginx. Następnie uruchom następujące polecenie, aby uzyskać bezpłatny certyfikat TLS za pomocą wtyczki Nginx.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email -d nextcloud.example.comGdzie :
--nginx: Użyj uwierzytelniacza i instalatora Nginx--agree-tos: Zaakceptuj warunki korzystania z usługi Let's Encrypt--redirect:Wymuś HTTPS, dodając przekierowanie 301.--hsts: Włącz ścisłe zabezpieczenia transportu HTTP. Chroni to przed atakiem polegającym na usuwaniu SSL/TLS.--staple-ocsp: Włącz zszywanie OCSP.--email: Adres e-mail używany do kontaktu podczas rejestracji i odzyskiwania.- Po fladze
-dnastępuje lista nazw domen oddzielonych przecinkami. Możesz dodać maksymalnie 100 nazw domen.
Zostaniesz zapytany, czy chcesz otrzymywać e-maile od EFF (Electronic Frontier Foundation). Po wybraniu T lub N, Twój certyfikat TLS zostanie dla Ciebie automatycznie pobrany i skonfigurowany, o czym informuje poniższy komunikat.
Odkryłem, że Certbot może nie być w stanie dodać nagłówka HSTS do pliku konfiguracyjnego Nginx dla Nextcloud. Jeśli chcesz włączyć HSTS (HTTP Strict Transport Security), edytuj plik.
sudo nano /etc/nginx/conf.d/nextcloud.confNastępnie możemy dodać następujący wiersz w bloku serwera SSL, aby włączyć nagłówek HSTS. (Jeśli już tam jest, oznacza to, że konfiguracja jest w porządku.)
add_header Strict-Transport-Security "max-age=31536000" always;Można także włączyć protokół HTTP2 dodając opcję http2, co przyspieszy ładowanie strony.
listen [::]:443 ssl http2; # managed by Certbot
listen 443 ssl http2; # managed by CertbotJak poniżej.
Zapisz i zamknij plik. Następnie wyślij SMS-a z konfiguracją Nginx.
sudo nginx -tJeśli test zakończy się pomyślnie, załaduj ponownie Nginx, aby zmiana zaczęła obowiązywać.
sudo systemctl reload nginxPowyższa konfiguracja uzyska wynik A+ w teście SSL.
Krok 6: Uruchom kreatora instalacji internetowej w przeglądarce internetowej
Teraz możesz uzyskać dostęp do kreatora instalacji internetowej Nextcloud za pomocą połączenia HTTPS.
https://nextcloud.example.comAby dokończyć instalację, musisz to zrobić
- Utwórz konto administratora
- Wprowadź ścieżkę folderu danych Nextcloud
- Wprowadź szczegóły bazy danych utworzone w kroku 2. Możesz użyć
localhost:5432jako adresu hosta, ponieważ PostgreSQL nasłuchuje na porcie 5432.
Folder danych to miejsce, w którym przechowywane są pliki użytkowników. Ze względów bezpieczeństwa najlepiej umieścić katalog danych poza katalogiem webroot Nextcloud. Zamiast więc przechowywać pliki użytkowników pod /var/www/nextcloud/data/, możemy je zmienić na /var/www/nextcloud-data. które można utworzyć za pomocą następującego polecenia:
sudo mkdir /var/www/nextcloud-dataNastępnie upewnij się, że użytkownik Nginx (www-data) ma uprawnienia do zapisu w katalogu danych.
sudo chown www-data:www-data /var/www/nextcloud-data -RKliknij przycisk Instaluj, a za kilka sekund zobaczysz interfejs sieciowy Nextcloud. Gratulacje! Możesz zacząć używać go jako prywatnego magazynu w chmurze.
Jak skonfigurować powiadomienie e-mailem NextCloud
Jeśli z Twojej instancji NextCloud będzie korzystać więcej niż jedna osoba, ważne jest, aby Twój serwer NextCloud mógł wysyłać e-maile transakcyjne, takie jak e-maile umożliwiające resetowanie hasła. Na początek należy ustawić adres e-mail dla własnego konta. Przejdź do Ustawienia -> Informacje osobiste i ustaw adres e-mail dla swojego konta.
Następnie przejdź do Ustawienia -> Ustawienia podstawowe. Znajdziesz ustawienia serwera poczty e-mail. Istnieją dwa tryby wysyłania: sendmail i smtp. Wybierz tryb sendmail.
Następnie wykonaj samouczek, do którego link znajduje się poniżej, aby skonfigurować przekaźnik SMTP w systemie Ubuntu.
- Jak skonfigurować przekaźnik SMTP Postfix na Ubuntu za pomocą Sendinblue
Po skonfigurowaniu przekaźnika SMTP kliknij przycisk wyślij e-mail w Nextcloud, aby sprawdzić, czy poczta e-mail działa.
Jak zresetować hasło użytkownika Nextcloud z wiersza poleceń
Jeśli zgubiłeś hasło do konta administratora i nie skonfigurowałeś dostarczania poczty e-mail w Nextcloud, musisz zresetować hasło, uruchamiając następujące polecenie na swoim serwerze. Zamień nextcloud_username na swoją prawdziwą nazwę użytkownika.
sudo -u www-data php /var/www/nextcloud/occ user:resetpassword nextcloud_usernameIstnieją również inne polecenia, które mogą okazać się przydatne. Lista dostępnych poleceń za pomocą:
sudo -u www-data php /var/www/nextcloud/occLub
sudo -u www-data php /var/www/nextcloud/console.phpJak przenieść katalog danych
Jeśli chcesz przenieść katalog danych NextCloud, możesz to zrobić w 4 krokach. Najpierw musisz użyć polecenia cp, aby skopiować katalog danych do nowego katalogu. Na przykład punkt podłączenia mojego zewnętrznego dysku twardego to /media/linux-terminal/b43e4eea-9796-4ac6-9c48-2bcaa46353731. Tworzę nowy katalog danych na zewnętrznym dysku twardym.
sudo mkdir /media/linux-terminal/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/Następnie kopiuję oryginalny katalog danych do nowego katalogu danych. Flaga -R oznacza, że operacja kopiowania jest rekurencyjna.
sudo cp /var/www/nextcloud-data/* /media/linux-terminal/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ -RMusisz także skopiować plik .ocdata.
sudo cp /var/www/nextcloud-data/.ocdata /media/linux-terminal/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/Następnie musisz ustawić www-data (użytkownik Nginx) jako właściciela.
sudo chown www-data:www-data /media/linux-terminal/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ -RNa koniec musisz edytować plik config.php.
sudo nano /var/www/nextcloud/config/config.phpZnajdź następujący wiersz i zmień wartość datadirectory.
'datadirectory' => '/var/www/nextcloud-data',Zapisz i zamknij plik. Załaduj ponownie stronę internetową NextCloud i gotowe.
Krok 7: Zwiększ limit pamięci PHP
Domyślny limit pamięci PHP wynosi 128MB. NextCloud zaleca 512MB dla lepszej wydajności. Aby zmienić limit pamięci PHP, edytuj plik php.ini.
sudo nano /etc/php/8.1/fpm/php.iniZnajdź następującą linię. (linia 409)
memory_limit = 128MZmień wartość.
memory_limit = 512MZapisz i zamknij plik. Alternatywnie możesz uruchomić następujące polecenie, aby zmienić wartość bez ręcznego otwierania pliku.
sudo sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/8.1/fpm/php.iniNastępnie załaduj ponownie usługę PHP-FPM, aby zmiany zaczęły obowiązywać.
sudo systemctl reload php8.1-fpmKrok 8: Skonfiguruj PHP, aby poprawnie wysyłał zapytania o zmienne środowiskowe systemu
Edytuj plik www.conf.
sudo nano /etc/php/8.1/fpm/pool.d/www.confZnajdź następującą linię (linia 396).
;clear_env = noUsuń średnik, aby odkomentować tę linię.
clear_env = noZapisz i zamknij plik. Alternatywnie możesz uruchomić następujące polecenie, aby odkomentować ten wiersz bez ręcznego otwierania pliku.
sudo sed -i 's/;clear_env = no/clear_env = no/g' /etc/php/8.1/fpm/pool.d/www.confNastępnie załaduj ponownie usługę PHP-FPM, aby zmiany zaczęły obowiązywać.
sudo systemctl reload php8.1-fpmKrok 9: Zwiększ limit rozmiaru przesyłanego pliku
Domyślny maksymalny limit rozmiaru przesyłanego pliku ustawiony przez Nginx to 1MB. Aby umożliwić przesyłanie dużych plików na serwer NextCloud, edytuj plik konfiguracyjny Nginx dla NextCloud.
sudo nano /etc/nginx/conf.d/nextcloud.confUstawiliśmy już maksymalny rozmiar pliku w tym pliku, jak wskazuje
client_max_body_size 512M;Możesz to zmienić, jeśli wolisz, na przykład 1G.
client_max_body_size 1024M;Zapisz i zamknij plik. Następnie załaduj ponownie Nginx, aby zmiany odniosły skutek.
sudo systemctl reload nginxPHP ustawia również limit rozmiaru przesyłanego pliku. Domyślny maksymalny rozmiar pliku do przesłania to 2MB. Aby zwiększyć limit rozmiaru przesyłanych plików, dokonaj edycji pliku konfiguracyjnego PHP.
sudo nano /etc/php/8.1/fpm/php.iniZnajdź następującą linię (linia 846).
upload_max_filesize = 2MZmień wartość jak poniżej:
upload_max_filesize = 1024MZapisz i zamknij plik. Alternatywnie możesz uruchomić następujące polecenie, aby zmienić wartość bez ręcznego otwierania pliku.
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 1024M/g' /etc/php/8.1/fpm/php.iniNastępnie uruchom ponownie PHP-FPM.
sudo systemctl restart php8.1-fpmKrok 10: Skonfiguruj pamięć podręczną Redis dla NextCloud
Jeśli przejdziesz do strony ustawienia NextCloud -> przegląd, może pojawić się następujące ostrzeżenie:
No memory cache has been configured. To enhance your performance please configure a memcache if available.Włączymy buforowanie pamięci dla nextCloud za pomocą Redis. Uruchom następujące polecenie, aby zainstalować serwer Redis z repozytorium Ubuntu.
sudo apt install redis-serverWersję możesz sprawdzić za pomocą:
redis-server -vPrzykładowe wyjście:
Redis server v=6.0.16 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=a3fdef44459b3ad6Teraz możemy sprawdzić, czy serwer Redis działa.
systemctl status redisWskazówka: jeśli powyższe polecenie nie zakończyło się natychmiast, możesz nacisnąć klawisz Q, aby odzyskać kontrolę nad terminalem.
Na powyższym zrzucie ekranu widać, że działa i włączone jest automatyczne uruchamianie. Jeśli z jakiegoś powodu nie działa, wykonaj następujące polecenie:
sudo systemctl start redis-serverA jeśli automatyczne uruchamianie podczas uruchamiania nie jest włączone, możesz użyć następującego polecenia, aby je włączyć:
sudo systemctl enable redis-serverAby skonfigurować Redis jako pamięć podręczną dla nextCloud, musimy zainstalować rozszerzenie PHP do współpracy z Redis.
sudo apt install php8.1-redisSprawdź, czy rozszerzenie jest włączone.
php8.1 --ri redisWidzimy, że rozszerzenie Redis jest włączone. Jeśli nie jest włączona, uruchom następujące polecenie:
sudo phpenmod redisNastępnie edytuj plik konfiguracyjny nextCloud.
sudo nano /var/www/nextcloud/config/config.phpDodaj następujące linie nad końcową linią );.
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),Zapisz i zamknij plik. Następnie uruchom ponownie Nginx i PHP-FPM.
sudo systemctl restart nginx php8.1-fpmTeraz przejdź ponownie do strony ustawienia NextCloud -> przegląd i odśwież stronę internetową, ostrzeżenie o buforowaniu pamięci powinno zniknąć.
Dodawanie brakujących indeksów
Jeśli na stronie Ustawienia -> Przegląd NextCloud zobaczysz następujący komunikat,
The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically.Następnie musisz ręcznie dodać te indeksy. Przejdź do katalogu webroot Nextcloud.
cd /var/www/nextcloud/Uruchom następujące polecenie, aby dodać indeksy do bazy danych Nextcloud.
sudo -u www-data php occ db:add-missing-indicesTeraz, jeśli odświeżysz stronę Ustawienia -> Przegląd NextCloud, ostrzeżenie o brakujących indeksach powinno zniknąć.
Konwersja na Big Int
Jeśli na stronie Ustawienia -> Przegląd NextCloud zobaczysz następujący komunikat,
Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically.Następnie musisz ręcznie zmienić typ kolumny. Przejdź do katalogu webroot Nextcloud.
cd /var/www/nextcloud/Zmień Nextcloud w tryb konserwacji, aby uniemożliwić użytkownikom logowanie się i wprowadzanie zmian.
sudo -u www-data php occ maintenance:mode --onNastępnie uruchom następujące polecenie, aby zmienić typ kolumny.
sudo -u www-data php occ db:convert-filecache-bigintPo zakończeniu wyłącz tryb konserwacji.
sudo -u www-data php occ maintenance:mode --offTeraz, jeśli odświeżysz stronę Ustawienia -> Przegląd NextCloud, ostrzeżenie o big int powinno zniknąć.
Jak zainstalować klienta NextCloud na komputerze stacjonarnym Ubuntu 22.04
Uruchom następujące polecenia na pulpicie Ubuntu 22.04, aby zainstalować klienta z domyślnego repozytorium.
sudo apt install nextcloud-clientKlient NextCloud na Ubuntu 22.04
Oprogramowanie klienckie dla systemów macOS, Windows, Android i iOS można znaleźć na stronie pobierania Nextcloud.
Jak włączyć OnlyOffice/Collabora Online
Domyślnie Nextcloud jest dostarczany z obsługą OnlyOffice, pakietu biurowego online, który umożliwia edycję plików doc, ppt i xls bezpośrednio z NextCloud. Aby móc korzystać z tej funkcji, wystarczy zainstalować aplikację. Przejdź do Aplikacje Nextcloud -> Biuro i SMS. Znajdź i włącz aplikację serwer dokumentów społeczności.
Teraz, gdy klikniesz przycisk dodawania (+) w Nextcloud, będziesz mógł tworzyć dokumenty Word, arkusze kalkulacyjne i prezentacje bezpośrednio z serwera Nextcloud.
Jednak odkryłem, że ta aplikacja nie jest zbyt niezawodna. Wersja społecznościowa pozwala na maksymalnie 20 użytkowników. Jeśli masz więcej niż 20 użytkowników, musisz kupić wersję Enterprise. Istnieje inny pakiet biurowy online oparty na LibreOffice o otwartym kodzie źródłowym o nazwie Collabora Online, który ma tę samą funkcjonalność, ale bez ograniczeń co do liczby użytkowników. Możesz przeczytać poniższy artykuł, aby zintegrować go z Nextcloud.
- Zintegruj Collabora Online z Nextcloud na Ubuntu bez Dockera
Dodawanie lokalnego wpisu DNS
Zaleca się edycję pliku /etc/hosts na serwerze Nextcloud i dodanie następującego wpisu, aby Nextcloud sam nie musiał odpytywać publicznego DNS, co może poprawić ogólną stabilność. Jeśli Twój serwer Nextcloud nie może rozpoznać nazwy hosta nextcloud.example.com, może wystąpić błąd przekroczenia limitu czasu bramy 504.
127.0.0.1 localhost nextcloud.example.comAdres IP w pliku /etc/hosts może mieć wiele nazw hostów, więc jeśli masz zainstalowane inne aplikacje na tym samym urządzeniu, możesz także dodać inne nazwy hostów lub subdomeny w tej samej linii w ten sposób :
127.0.0.1 localhost focal ubuntu nextcloud.example.com collabora.example.comUżywanie Crona do uruchamiania zadań w tle
Domyślnie Nextcloud używa AJAX do wykonania jednego zadania przy każdym załadowaniu strony. Do uruchamiania zadań w tle można używać wydajniejszej systemowej usługi cron. Przejdź do Ustawienia Nextcloud -> Ustawienia podstawowe i wybierz Cron.
Następnie edytuj plik crontab użytkownika www-data.
sudo -u www-data crontab -eDodaj następujący wiersz w tym pliku, aby zadanie cron było uruchamiane co 5 minut.
*/5 * * * * php8.1 -f /var/www/nextcloud/cron.phpZapisz i zamknij plik.
(Opcjonalnie) Zapobiegaj złośliwym próbom logowania
Jeśli Twój komputer ma statyczny publiczny adres IP, możesz utworzyć białą listę adresów IP w pliku konfiguracyjnym Nginx.
sudo nano /etc/nginx/conf.d/nextcloud.confDodaj następujące wiersze w bloku serwera SSL, aby ograniczyć dostęp do adresu URL /login, tak aby dostęp do tego adresu URL miał tylko Twój adres IP. Zamień 78.56.34.12 na swój własny adres IP.
location ~* ^/login{
try_files $uri /index.php;
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
#Avoid sending the security headers twice
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
allow 78.56.34.12;
deny all;
}Zapisz i zamknij plik. Następnie przetestuj konfigurację Nginx.
sudo nginx -tJeśli test zakończy się pomyślnie, załaduj ponownie Nginx, aby zmiany zaczęły obowiązywać.
sudo systemctl reload nginxJeśli nie masz statycznego adresu IP w sieci domowej, możesz skonfigurować serwer VPN w centrum danych.
Wskazówki dotyczące rozwiązywania problemów
Jeśli napotkasz błędy, możesz sprawdzić jeden z poniższych plików dziennika, aby dowiedzieć się, co jest nie tak.
- Dziennik błędów Nginx:
/var/log/nginx/error.log - Dziennik błędów Nginx dla hosta wirtualnego Nextcloud:
/var/log/nginx/nextcloud.error - Dziennik aplikacji Nextcloud:
/var/www/nextcloud/data/nextcloud.log
Na przykład kiedyś miałem „Wewnętrzny błąd serwera” w mojej instancji Nextcloud i plik /var/log/nginx/nextcloud.error powiedział mi to
FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught OC\HintException: [0]: Memcache \OC\Memcache\Redis not available for local cache (Is the matching PHP module installed and enabled?)
Okazało się, że ponieważ użyłem ppa:ondrej/php PPA na moim serwerze Ubuntu, muszę także zainstalować php8.0-redis oprócz php-redis pakiet.
Aktualizacja NextCloud
Ważne jest, aby aktualizować serwer Nextcloud najnowszymi zabezpieczeniami i poprawkami błędów. Przeczytaj poniższy samouczek, aby dowiedzieć się, jak zaktualizować Nextcloud.
- 2 sposoby na aktualizację Nextcloud [wiersz poleceń i graficzny interfejs użytkownika]
Podsumowanie
Mam nadzieję, że ten samouczek pomógł Ci zainstalować NextCloud na serwerze Ubuntu 22.04 z Nginx. Jak zawsze, jeśli uważasz ten post za przydatny, zapisz się do naszego bezpłatnego biuletynu, aby uzyskać więcej porad i wskazówek. Uważaj 🙂



















