Nextcloud auf einem CentOS-7-Server bei centron installieren
Nextcloud ist – wie der Name schon andeutet – eine überzeugende Alternative zur Open-Source-Dateihosting-Lösung ownCloud.
In dieser Anleitung zeige ich dir, wie du Nextcloud auf einer centron CentOS-7-Serverinstanz bereitstellst.
Voraussetzungen
- Eine frisch bereitgestellte centron CentOS-7-Serverinstanz.
- Ein Benutzerkonto mit sudo-Rechten für den Login.
Schritt 1: System aktualisieren
Melde dich mit deinem sudo-Benutzer an und bringe das System auf den neuesten stabilen Stand:
sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now
Nach dem Neustart loggst du dich erneut mit demselben sudo-Benutzer ein.
Schritt 2: Apache installieren
Richte Apache als Webserver ein, über den Nextcloud laufen wird:
sudo yum install httpd -y
Deaktiviere die standardmäßige Apache-Willkommensseite:
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
Aus Sicherheitsgründen soll Apache keine Verzeichnisinhalte im Webroot /var/www/html auflisten:
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
Wie von Nextcloud gefordert, verhindere das Laden der WebDAV-Module durch Apache:
sudo sed -i 's/^/#&/g' /etc/httpd/conf.modules.d/00-dav.conf
Starte Apache und stelle sicher, dass der Dienst beim Booten automatisch startet:
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Schritt 3: PHP und benötigte PHP-Erweiterungen installieren
Nextcloud empfiehlt PHP 5.6. Du kannst PHP 5.6 sowie die erforderlichen Erweiterungen über das IUS-YUM-Repository installieren.
Füge zunächst das IUS-YUM-Repository hinzu:
cd
wget https://centos7.iuscommunity.org/ius-release.rpm
sudo rpm -Uvh ius-release.rpm
Installiere danach PHP 5.6 samt aller notwendigen Erweiterungen aus IUS:
sudo yum install php56u php56u-common php56u-xml php56u-gd php56u-mbstring php56u-process php56u-mysqlnd php56u-intl php56u-mcrypt php56u-imap php56u-cli -y
Erhöhe die PHP-Upload-Limits auf einen passenden Wert, zum Beispiel 50 MB:
sudo cp /etc/php.ini /etc/php.ini.bak
sudo sed -i "s/post_max_size = 8M/post_max_size = 50M/" /etc/php.ini
sudo sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 50M/" /etc/php.ini
Starte Apache neu, damit die Änderungen aktiv werden:
sudo systemctl restart httpd.service
Schritt 4: MariaDB installieren und eine Nextcloud-Datenbank anlegen
Installiere MariaDB:
sudo yum install mariadb mariadb-server -y
Starte MariaDB und aktiviere den Autostart beim Systemboot:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Sichere die MariaDB-Installation ab:
sudo /usr/bin/mysql_secure_installation
Beantworte die Fragen dabei wie folgt:
- Enter current password for root (enter for none): Enter
- Set root password? [Y/n]: Y
- New password: <your-password>
- Re-enter new password: <your-password>
- Remove anonymous users? [Y/n]: Y
- Disallow root login remotely? [Y/n]: Y
- Remove test database and access to it? [Y/n]: Y
- Reload privilege tables now? [Y/n]: Y
Lege nun eine eigene Datenbank für Nextcloud an:
mysql -u root -p
Gib das zuvor gesetzte MariaDB-Root-Passwort ein, um die MySQL-Shell zu öffnen.
In der Shell erstellst du Datenbank und Benutzer und vergibst Rechte. Ersetze den Datenbanknamen nextcloud, den Nutzer nextclouduser und das Passwort yourpassword konsequent durch deine Werte:
CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Schritt 5: Nextcloud installieren
Lade die aktuelle stabile Nextcloud-Version von der offiziellen Website herunter. Zum Zeitpunkt der Erstellung dieser Anleitung war 9.0.53 die neueste stabile Version.
cd
wget https://download.nextcloud.com/server/releases/nextcloud-9.0.53.zip
Entpacke das Nextcloud-Archiv:
sudo yum install unzip -y
unzip nextcloud-9.0.53.zip
Verschiebe die Nextcloud-Dateien in das Webroot und setze die passenden Berechtigungen:
sudo mv nextcloud/* /var/www/html && sudo chown apache:apache -R /var/www/html
Installiere Nextcloud per Kommandozeile mit den folgenden Beispielwerten. Ersetze sie durch deine echten Daten.
- database-name: nextcloud
- database-user: nextclouduser
- database-pass: yourpassword
- admin-user: admin
- admin-pass nextcloudadminpassword
Starte die Installation mit:
cd /var/www/html/
sudo -u apache php occ maintenance:install --database "mysql" --database-name "nextcloud" --database-user "nextclouduser" --database-pass "yourpassword" --admin-user "admin" --admin-pass "nextcloudadminpassword"
Wenn alles korrekt läuft, erscheint eine Ausgabe wie:
Nextcloud is not installed - only a limited number of commands are available
ownCloud was successfully installed
Trage deine Server-IP (z. B. 203.0.113.1) und deine Domain (z. B. www.example.com) in die Liste der vertrauenswürdigen Domains ein:
sudo vi /var/www/html/config/config.php
Suche diese Zeile:
0 => 'localhost',
Füge direkt darunter diese beiden Zeilen ein:
1 => '203.0.113.1',
2 => 'www.example.com',
Speichere und beende den Editor:
:wq!
Nach der Installation solltest du strikte Rechte für Dateien und Ordner setzen, um unbefugten Zugriff zu verhindern:
sudo find /var/www/html -type f -print0 | sudo xargs -0 chmod 0640
sudo find /var/www/html -type d -print0 | sudo xargs -0 chmod 0750
sudo chown -R root:apache /var/www/html
sudo chown -R apache:apache /var/www/html/apps
sudo chown -R apache:apache /var/www/html/config
sudo chown -R apache:apache /var/www/html/data
sudo chown -R apache:apache /var/www/html/themes
sudo chown -R apache:apache /var/www/html/updater
sudo chmod 0644 /var/www/html/.htaccess
sudo chown root:apache /var/www/html/.htaccess
sudo chmod 0644 /var/www/html/data/.htaccess
sudo chown root:apache /var/www/html/data/.htaccess
Beachte außerdem, dass das Verzeichnis /var/www/html/assets noch nicht existiert. Falls du es später anlegst, führe diesen Befehl aus:
sudo chown -R apache:apache /var/www/html/assets
Diese Rechte helfen dabei, Nextcloud vor unautorisiertem Zugriff zu schützen.
Hinweis: Für spätere Updates kannst du die Rechte vorübergehend lockern mit:
sudo chown apache:apache -R /var/www/html
Nach dem Update setzt du die strikten Rechte wie oben wieder.
Starte Apache neu, um alles zu übernehmen:
sudo systemctl restart httpd.service
Passe die Firewall so an, dass HTTP und HTTPS erreichbar sind:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
Fertig. Du kannst nun im Browser http://203.0.113.1 aufrufen und dich mit dem angelegten Nextcloud-Admin-Konto anmelden.


