Nextcloud na VPS: instalacja, Nginx, PHP 8.2, Redis i OnlyOffice
Opublikowano: 9 kwietnia 2026 · Kategoria: VPS / Aplikacje
Nextcloud to open source platforma do prywatnej chmury — alternatywa dla Google Drive czy Dropbox, którą hostujesz sam. Na VPS z Nginx, PHP-FPM 8.2 i Redis uzyskasz szybką i bezpieczną instalację dla kilku do kilkudziesięciu użytkowników. Ten przewodnik przeprowadzi Cię przez kompletną instalację na Ubuntu 24.04.
Instalacja zależności — Nginx, PHP 8.2, MariaDB, Redis
Zacznij od instalacji wszystkich wymaganych pakietów. Nextcloud działa najlepiej z PHP-FPM (FastCGI Process Manager) zamiast mod_php — lepsza izolacja procesów i łatwiejsze zarządzanie wersjami PHP.
# Aktualizacja systemu
apt update && apt upgrade -y
# Nginx
apt install -y nginx
# PHP 8.2 + rozszerzenia wymagane przez Nextcloud
apt install -y php8.2-fpm php8.2-cli php8.2-mysql php8.2-pgsql \
php8.2-gd php8.2-xml php8.2-mbstring php8.2-curl php8.2-zip \
php8.2-intl php8.2-bcmath php8.2-gmp php8.2-imagick \
php8.2-redis php8.2-apcu php8.2-ldap
# MariaDB
apt install -y mariadb-server
# Redis
apt install -y redis-server
# Certbot dla SSL
apt install -y certbot python3-certbot-nginx Konfiguracja PHP-FPM dla Nextcloud
PHP-FPM wymaga dostosowania limitów pamięci i czasu wykonania dla Nextcloud. Edytuj plik konfiguracyjny pool-a www.
# Edytuj /etc/php/8.2/fpm/php.ini
# Kluczowe ustawienia dla Nextcloud:
memory_limit = 512M
upload_max_filesize = 16G
post_max_size = 16G
max_execution_time = 3600
max_input_time = 3600
output_buffering = Off
# Opcache — wymagane przez Nextcloud
opcache.enable = 1
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1
# APCu — local cache
apc.enable_cli = 1
# Zastosuj zmiany
systemctl restart php8.2-fpm Baza danych i pobranie Nextcloud
# Konfiguracja MariaDB
mysql_secure_installation
# Utwórz bazę danych i użytkownika Nextcloud
mysql -u root -p <<EOF
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'ncuser'@'localhost' IDENTIFIED BY 'silnehaslo123';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'ncuser'@'localhost';
FLUSH PRIVILEGES;
EOF
# Pobierz Nextcloud (sprawdz aktualna wersje na nextcloud.com/install)
cd /var/www/
wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
rm latest.zip
chown -R www-data:www-data nextcloud/
chmod -R 750 nextcloud/ Konfiguracja Nginx dla Nextcloud
Nextcloud wymaga specyficznej konfiguracji Nginx — obsługi .well-known (WebDAV, CalDAV,
CardDAV), nagłówków bezpieczeństwa i przekierowania requestów do PHP-FPM.
# /etc/nginx/sites-available/nextcloud
server {
listen 80;
server_name cloud.twojadomena.pl;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name cloud.twojadomena.pl;
ssl_certificate /etc/letsencrypt/live/cloud.twojadomena.pl/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cloud.twojadomena.pl/privkey.pem;
root /var/www/nextcloud;
index index.php;
client_max_body_size 16G;
client_body_timeout 3600s;
# Nagłówki bezpieczeństwa
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "no-referrer" always;
# .well-known dla CalDAV/CardDAV
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
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\/.+)\.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;
fastcgi_param HTTPS on;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
fastcgi_read_timeout 3600;
}
location ~ \.php$ {
return 404;
}
location ~* \.(?:css|js|woff|woff2|ttf|svg|ico)$ {
expires 6M;
add_header Cache-Control "public";
}
} # Aktywuj konfigurację
ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
# SSL z Let's Encrypt
certbot --nginx -d cloud.twojadomena.pl Redis — cache sesji i distributed locking
Redis znacząco przyspiesza Nextcloud — eliminuje operacje dyskowe dla sesji i zapewnia
poprawne blokady przy synchronizacji z wielu urządzeń jednocześnie. Konfiguracja w config/config.php:
# /var/www/nextcloud/config/config.php — dodaj/edytuj:
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
'timeout' => 3.0,
'password' => '', // zostaw puste jesli brak hasła Redis
'dbindex' => 0,
),
# Opcjonalnie — zabezpiecz Redis hasłem w /etc/redis/redis.conf:
requirepass "silnehasloredis"
# Zrestartuj Redis po zmianie konfiguracji
systemctl restart redis-server OnlyOffice Document Server — edycja dokumentów online
OnlyOffice pozwala edytować dokumenty Word, Excel i PowerPoint bezpośrednio w przeglądarce, podobnie jak Google Docs. Wymaga osobnego serwera (minimum 4 GB RAM) lub Docker. Najprostszy sposób instalacji to Community Document Server przez Docker:
# Instalacja Docker (jesli nie masz)
apt install -y docker.io docker-compose
# Uruchom OnlyOffice Community Server
docker run -i -t -d -p 8080:80 \
--restart=always \
--name onlyoffice-document-server \
onlyoffice/documentserver
# W Nextcloud — zainstaluj aplikację ONLYOFFICE przez web UI:
# Apps → Office & Text → ONLYOFFICE → Install
# Konfiguracja w Nextcloud:
# Settings → ONLYOFFICE → Document Editing Service address:
# http://IP_TWOJEGO_VPS:8080
# Sprawdz czy Document Server działa
curl http://localhost:8080/healthcheck Wymagania systemowe — tabela
| Komponent | Minimalne | Zalecane (10 użytk.) |
|---|---|---|
| RAM | 512 MB | 2 GB (4 GB z OnlyOffice) |
| CPU | 1 vCPU | 2 vCPU |
| Dysk (system) | 10 GB | 20 GB SSD/NVMe |
| PHP | 8.1 | 8.2 (najszybszy) |
| Baza danych | MySQL / MariaDB / PostgreSQL | MariaDB 10.6+ lub PostgreSQL 14+ |