Instalacja Nextcloud na Windows Server 2022 BEZ Dockera

Aby zainstalować Nextcloud na Windows Server 2022 z użyciem IIS (Internet Information Services) i bez użycia Dockera, proces wymaga skonfigurowania kilku kluczowych komponentów. Nextcloud jest aplikacją PHP, która standardowo działa na serwerach z systemem Linux (LAMP stack), ale można ją uruchomić także na serwerach Windows z IIS, odpowiednio konfigurowując środowisko.

Poniżej przedstawiam kroki, jak to zrobić:

1. Zainstaluj IIS (Internet Information Services)

  • Otwórz Server Manager.
  • Kliknij Add Roles and Features.
  • Wybierz Role-based or feature-based installation, następnie zaznacz rolę Web Server (IIS).
  • W sekcji Role Services upewnij się, że zaznaczono:
  • CGI (dla obsługi PHP),
  • Common HTTP Features (Static Content, Default Document, etc.),
  • Security (Basic Authentication, Windows Authentication, Request Filtering),
  • Application Development (ISAPI Extensions, ISAPI Filters).
  • Ukończ instalację.

2. Instalacja WSL i dystrybucji Linuxa

Jeśli nie masz jeszcze zainstalowanego WSL na swoim systemie Windows, wykonaj następujące kroki:

  1. Otwórz PowerShell jako administrator.
  2. Uruchom następujące polecenie, aby zainstalować WSL:
bash
Skopiuj kod
wsl --install
  1. Po ponownym uruchomieniu systemu wybierz dystrybucję Linuxa (np. Ubuntu), jeśli nie została automatycznie zainstalowana.
  2. Możesz też zainstalować dystrybucję ręcznie z Microsoft Store.
  3. Zalecana dystrybucja to Ubuntu, ponieważ większość instrukcji jest dostosowana do niej.
  4. Po instalacji uruchom WSL poprzez wyszukanie aplikacji "Ubuntu" lub innej zainstalowanej dystrybucji i skonfiguruj konto użytkownika.


3. Aktualizacja pakietów i instalacja Apache, PHP, MariaDB

  1. Zaktualizuj listę pakietów i zainstaluj zależności:
bash
Skopiuj kod
sudo apt update && sudo apt upgrade -y
  1. Zainstaluj Apache, PHP oraz MariaDB:
bash
Skopiuj kod
sudo apt install apache2 mariadb-server libapache2-mod-php php php-mysql php-xml php-mbstring php-zip php-gd php-curl php-intl php-bcmath unzip -y
  1. Uruchom i skonfiguruj MariaDB:
bash
Skopiuj kod
sudo service mysql start
sudo mysql_secure_installation
  1. Podczas konfiguracji wybierz silne hasło dla root i usuń anonimowych użytkowników oraz testową bazę danych.
  2. Zaloguj się do MariaDB, aby stworzyć bazę danych dla Nextcloud:
bash
Skopiuj kod
sudo mysql -u root -p
  1. Wprowadź hasło roota, a następnie wykonaj poniższe zapytania SQL, aby utworzyć bazę danych i użytkownika dla Nextcloud:
sql
Skopiuj kod
CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
  1. Zmienna strongpassword to hasło użytkownika bazy danych, które sam wybierzesz.


5. Instalacja Nextcloud

  1. Pobierz najnowszą wersję Nextcloud:
bash
Skopiuj kod
wget https://download.nextcloud.com/server/releases/latest.zip
  1. Rozpakuj archiwum:
bash
Skopiuj kod
unzip latest.zip
  1. Przenieś folder Nextcloud do katalogu Apache:
bash
Skopiuj kod
sudo mv nextcloud /var/www/html/
  1. Zmień właściciela i uprawnienia do plików Nextcloud:
bash
Skopiuj kod
sudo chown -R www-data:www-data /var/www/html/nextcloud
sudo chmod -R 755 /var/www/html/nextcloud


6. Konfiguracja Apache dla Nextcloud

  1. Stwórz plik konfiguracji dla Nextcloud w Apache:
bash
Skopiuj kod
sudo nano /etc/apache2/sites-available/nextcloud.conf
  1. Wklej następującą zawartość do pliku:
apache
Skopiuj kod
<VirtualHost *:80>
    DocumentRoot /var/www/html/nextcloud/
    ServerName localhost

    <Directory /var/www/html/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All

        <IfModule mod_dav.c>
            Dav off
        </IfModule>

        SetEnv HOME /var/www/html/nextcloud
        SetEnv HTTP_HOME /var/www/html/nextcloud
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  1. Włącz moduły Apache i aktywuj konfigurację:
bash
Skopiuj kod
sudo a2enmod rewrite headers env dir mime
sudo a2ensite nextcloud.conf
sudo service apache2 reload

7. Finalizacja instalacji Nextcloud

  1. Otwórz przeglądarkę w systemie Windows i wpisz adres:
bash
Skopiuj kod
http://localhost
  1. Powinien pojawić się kreator konfiguracji Nextcloud.
  2. Podaj ścieżkę instalacyjną /var/www/html/nextcloud/data, użytkownika i hasło admina, a także dane do bazy danych, które stworzyliśmy wcześniej:
  • Użytkownik bazy danych: nextclouduser
  • Hasło: to, które ustawiłeś wcześniej
  • Nazwa bazy danych: nextcloud
  1. Kliknij "Finish Setup".

8. Zainstaluj moduł URL Rewrite i Application Request Routing (ARR)

Aby IIS mógł działać jako reverse proxy, musisz zainstalować dwa dodatkowe moduły:

  1. URL Rewrite:
  • Pobierz i zainstaluj moduł URL Rewrite z oficjalnej strony Microsoftu.
  1. Application Request Routing (ARR):
  • Pobierz i zainstaluj Application Request Routing z tej strony.

ARR umożliwia przesyłanie żądań HTTP do serwera proxy, a URL Rewrite pomaga w przekierowywaniu adresów.

9. Włącz reverse proxy w IIS

  1. Po zainstalowaniu modułów otwórz IIS Manager.
  2. W lewej kolumnie wybierz serwer (główny węzeł serwera, np. nazwę komputera).
  3. W sekcji IIS kliknij na Application Request Routing Cache.
  4. Po prawej stronie kliknij na Server Proxy Settings.
  5. W sekcji Proxy zaznacz opcję Enable Proxy.
  6. Zastosuj zmiany klikając Apply.

10. Skonfiguruj domenę w IIS

  1. W IIS Manager, kliknij prawym przyciskiem myszy na Sites i wybierz Add Website.
  2. Podaj nazwę witryny, fizyczną ścieżkę do dowolnego katalogu na dysku (np. C:\inetpub\nextcloud), i wybierz odpowiedni port oraz domenę.
  3. Upewnij się, że Twoja domena jest zarejestrowana w pliku hosts (lub przez DNS) na systemie Windows, aby wskazywała na adres localhost.
  4. Aby edytować plik hosts:
  • Otwórz notatnik jako administrator i edytuj plik znajdujący się w:
  • C:\Windows\System32\drivers\etc\hosts.
  • Dodaj linię z przypisaniem domeny do lokalnego adresu IP:
plaintext
Skopiuj kod
127.0.0.1 your-domain.com
  1. Po skonfigurowaniu witryny przejdź do zakładki URL Rewrite (na poziomie tej nowo utworzonej witryny).

11. Skonfiguruj regułę proxy w IIS (URL Rewrite)

  1. Wybierz witrynę, którą właśnie utworzyłeś w IIS Manager.
  2. Kliknij URL Rewrite.
  3. Po prawej stronie wybierz Add Rule(s)....
  4. Wybierz opcję Blank rule i kliknij OK.
  5. W sekcji Name podaj nazwę reguły, np. Nextcloud Proxy.
  6. W sekcji Match URL, w polu Requested URL wybierz Matches the Pattern, a w polu Using wybierz Regular Expressions. W polu Pattern wpisz .*, aby przechwycić wszystkie żądania.
  7. Przejdź do sekcji Conditions i kliknij Add.
  8. W polu Condition input wpisz {HTTP_HOST}. W polu Pattern wpisz swoją domenę, np. your-domain.com, a następnie kliknij OK.
  9. W sekcji Action ustaw:
  • Action Type: Rewrite
  • Rewrite URL: http://localhost:PORT{R:0} (gdzie PORT to port, na którym działa Twoja instancja Nextcloud w WSL, zazwyczaj jest to port 80 lub inny, na który przekierowałeś ruch WSL).
  • Append Query String: zaznaczone.
  1. Na przykład, jeśli Twoja instancja Nextcloud działa na WSL na porcie 8080, wpisz:
plaintext
Skopiuj kod
http://localhost:8080/{R:0}
  1. Kliknij Apply, aby zapisać zmiany.

12. Uruchom Nextcloud w WSL na odpowiednim porcie

Aby upewnić się, że Twoja instancja Nextcloud działa poprawnie na odpowiednim porcie w WSL, wykonaj następujące kroki:

  1. Otwórz terminal WSL i uruchom Apache na specyficznym porcie (jeśli to konieczne):
bash
Skopiuj kod
sudo service apache2 start
  1. Możesz sprawdzić, na którym porcie działa Nextcloud, otwierając go w przeglądarce za pomocą adresu:
bash
Skopiuj kod
http://localhost:PORT
  1. Upewnij się, że port używany przez WSL (np. 8080) jest przekierowany z localhost (Windows) do WSL.


13. Skonfiguruj HTTPS

  • Konfiguracja HTTPS jest zalecana dla Nextcloud ze względu na bezpieczeństwo. Możesz użyć Certyfikatów SSL w IIS.
  • Skonfiguruj certyfikaty SSL za pomocą narzędzia IIS Manager:
  • Bindings > Dodaj HTTPS > Wybierz certyfikat SSL.

14. Dodatkowe Konfiguracje

  • Aby zwiększyć wydajność Nextcloud, rozważ konfigurację opcjonalnych modułów PHP i serwera, takich jak:
  • Opcache (dla PHP),
  • Redis (dla cache’owania).

15. Testowanie

  • Upewnij się, że Nextcloud działa poprawnie, odwiedzając stronę instalacji i logując się do interfejsu administratora.
  • Testuj funkcje, takie jak przesyłanie plików, tworzenie użytkowników itp.

Uwagi końcowe:

Instalacja Nextcloud na IIS wymaga nieco więcej konfiguracji niż na serwerach opartych na Linuxie, głównie z powodu innych ścieżek instalacyjnych i obsługi modułów. Jednak po poprawnym skonfigurowaniu system będzie działał bez problemów na Windows Server 2022.

Kontakt z nami

Masz pomysły, uwagi lub pytania?

Liczba wyświetleń: 29

An unhandled error has occurred. Reload 🗙