OwnCloud: Unterschied zwischen den Versionen

Aus Wiki Novoys.ch
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 15: Zeile 15:
set -e
set -e


### === KONFIGURATION ===
# === KONFIGURATION ===
DB_NAME="owncloud"
DB_NAME="owncloud"
DB_USER="ownclouduser"
DB_USER="ownclouduser"
Zeile 22: Zeile 22:
IP_ADDR="$(hostname -I | awk '{print $1}')"
IP_ADDR="$(hostname -I | awk '{print $1}')"


echo "[1/7] System aktualisieren..."
echo "[1/10] PHP 8.x entfernen (falls vorhanden)..."
apt update && apt upgrade -y
sudo apt remove -y 'php*' || true
sudo apt autoremove -y || true


echo "[2/7] Benötigte Pakete installieren..."
echo "[2/10] Repository & GPG-Key für PHP 7.4 hinzufügen..."
apt install -y apache2 mariadb-server unzip wget curl \
sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2 wget curl
    php libapache2-mod-php php-mysql php-xml php-mbstring php-curl \
sudo mkdir -p /etc/apt/keyrings
    php-zip php-gd php-intl php-bcmath php-imagick
wget -qO - https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/php.gpg
echo "deb [signed-by=/etc/apt/keyrings/php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update


echo "[3/7] MariaDB konfigurieren..."
echo "[3/10] PHP 7.4 + Apache + Module installieren..."
mysql -u root <<EOF
sudo apt install -y apache2 mariadb-server unzip \
CREATE DATABASE ${DB_NAME};
php7.4 php7.4-cli php7.4-common php7.4-mysql php7.4-xml php7.4-mbstring \
CREATE USER '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASSWORD}';
php7.4-curl php7.4-zip php7.4-gd php7.4-intl php7.4-bcmath php7.4-imagick libapache2-mod-php7.4
 
echo "[4/10] Apache auf PHP 7.4 umstellen..."
sudo a2dismod php8.2 || true
sudo a2enmod php7.4
sudo update-alternatives --set php /usr/bin/php7.4
sudo systemctl restart apache2
 
echo "[5/10] MariaDB konfigurieren..."
sudo mysql -u root <<EOF
CREATE DATABASE IF NOT EXISTS ${DB_NAME};
CREATE USER IF NOT EXISTS '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASSWORD}';
GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';
GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';
FLUSH PRIVILEGES;
FLUSH PRIVILEGES;
EOF
EOF


echo "[4/7] OwnCloud herunterladen..."
echo "[6/10] OwnCloud herunterladen..."
cd /tmp
cd /tmp
wget https://download.owncloud.org/community/owncloud-complete-latest.tar.bz2
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2 -O owncloud.tar.bz2
tar -xjf owncloud-complete-latest.tar.bz2
tar -xjf owncloud.tar.bz2
rm -rf ${OWNCLOUD_DIR}
sudo rm -rf ${OWNCLOUD_DIR}
mv owncloud ${OWNCLOUD_DIR}
sudo mv owncloud ${OWNCLOUD_DIR}


echo "[5/7] Berechtigungen setzen..."
echo "[7/10] Dateirechte setzen..."
chown -R www-data:www-data ${OWNCLOUD_DIR}
sudo chown -R www-data:www-data ${OWNCLOUD_DIR}
chmod -R 755 ${OWNCLOUD_DIR}
sudo chmod -R 755 ${OWNCLOUD_DIR}


echo "[6/7] Apache konfigurieren..."
echo "[8/10] Apache VirtualHost konfigurieren..."
cat <<APACHECONF > /etc/apache2/sites-available/owncloud.conf
sudo tee /etc/apache2/sites-available/owncloud.conf > /dev/null <<EOF
<VirtualHost *:80>
<VirtualHost *:80>
     DocumentRoot ${OWNCLOUD_DIR}
     DocumentRoot ${OWNCLOUD_DIR}
Zeile 58: Zeile 72:
         Options +FollowSymlinks
         Options +FollowSymlinks
         AllowOverride All
         AllowOverride All
 
        Require all granted
         <IfModule mod_dav.c>
         <IfModule mod_dav.c>
             Dav off
             Dav off
         </IfModule>
         </IfModule>
         SetEnv HOME ${OWNCLOUD_DIR}
         SetEnv HOME ${OWNCLOUD_DIR}
         SetEnv HTTP_HOME ${OWNCLOUD_DIR}
         SetEnv HTTP_HOME ${OWNCLOUD_DIR}
Zeile 70: Zeile 83:
     CustomLog \${APACHE_LOG_DIR}/owncloud_access.log combined
     CustomLog \${APACHE_LOG_DIR}/owncloud_access.log combined
</VirtualHost>
</VirtualHost>
APACHECONF
EOF


a2ensite owncloud.conf
echo "[9/10] Apache aktivieren & neu starten..."
a2dissite 000-default.conf
sudo a2ensite owncloud.conf
a2enmod rewrite headers env dir mime setenvif
sudo a2dissite 000-default.conf
systemctl restart apache2
sudo a2enmod rewrite headers env dir mime setenvif
sudo systemctl reload apache2


echo "[7/7] Installation abgeschlossen."
echo "[10/10] Installation abgeschlossen "
echo ""
echo ""
echo "---------------------------------------------------------"
echo "-----------------------------------------------------------"
echo "OwnCloud-Webinstaller erreichbar unter:"
echo "OwnCloud ist jetzt erreichbar unter:"
echo "   http://${IP_ADDR}/owncloud"
echo "➡  http://${IP_ADDR}/owncloud"
echo ""
echo ""
echo "Datenbank-Zugangsdaten:"
echo "📂 Datenbank-Zugang:"
echo "  DB-Name    : ${DB_NAME}"
echo "  DB-Name    : ${DB_NAME}"
echo "  DB-Benutzer: ${DB_USER}"
echo "  Benutzer   : ${DB_USER}"
echo "  DB-Passwort: ${DB_PASSWORD}"
echo "  Passwort   : ${DB_PASSWORD}"
echo "---------------------------------------------------------"
echo "-----------------------------------------------------------"
 
</pre>
</pre>


Dieses Skript automatisiert die komplette Installation und Konfiguration von ownCloud auf einem Debian-basierten System.
Dieses Skript automatisiert die komplette Installation und Konfiguration von ownCloud auf einem Debian-basierten System.

Version vom 26. Mai 2025, 14:24 Uhr

ownCloud ist eine Open-Source-Software zur sicheren Speicherung, Synchronisation und Freigabe von Dateien. Sie erlaubt es, eine eigene Cloud auf dem eigenen Server zu betreiben, unabhängig von externen Diensten wie Dropbox oder Google Drive. Wichtige Funktionen:

  • Dateiverwaltung und -freigabe
  • Benutzer- und Rechteverwaltung
  • Kalender- und Kontakt-Synchronisation (CalDAV, CardDAV)
  • Erweiterbar durch Plugins
  • Datenschutz und volle Datenhoheit

Installation mit Bash-Skript

Die Installation erfolgte automatisiert mit folgendem Bash-Skript, das von ChatGPT mitentwickelt wurde:

#!/bin/bash
set -e

# === KONFIGURATION ===
DB_NAME="owncloud"
DB_USER="ownclouduser"
DB_PASSWORD="raspberry"
OWNCLOUD_DIR="/var/www/html/owncloud"
IP_ADDR="$(hostname -I | awk '{print $1}')"

echo "[1/10] PHP 8.x entfernen (falls vorhanden)..."
sudo apt remove -y 'php*' || true
sudo apt autoremove -y || true

echo "[2/10] Repository & GPG-Key für PHP 7.4 hinzufügen..."
sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2 wget curl
sudo mkdir -p /etc/apt/keyrings
wget -qO - https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/php.gpg
echo "deb [signed-by=/etc/apt/keyrings/php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update

echo "[3/10] PHP 7.4 + Apache + Module installieren..."
sudo apt install -y apache2 mariadb-server unzip \
php7.4 php7.4-cli php7.4-common php7.4-mysql php7.4-xml php7.4-mbstring \
php7.4-curl php7.4-zip php7.4-gd php7.4-intl php7.4-bcmath php7.4-imagick libapache2-mod-php7.4

echo "[4/10] Apache auf PHP 7.4 umstellen..."
sudo a2dismod php8.2 || true
sudo a2enmod php7.4
sudo update-alternatives --set php /usr/bin/php7.4
sudo systemctl restart apache2

echo "[5/10] MariaDB konfigurieren..."
sudo mysql -u root <<EOF
CREATE DATABASE IF NOT EXISTS ${DB_NAME};
CREATE USER IF NOT EXISTS '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASSWORD}';
GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';
FLUSH PRIVILEGES;
EOF

echo "[6/10] OwnCloud herunterladen..."
cd /tmp
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2 -O owncloud.tar.bz2
tar -xjf owncloud.tar.bz2
sudo rm -rf ${OWNCLOUD_DIR}
sudo mv owncloud ${OWNCLOUD_DIR}

echo "[7/10] Dateirechte setzen..."
sudo chown -R www-data:www-data ${OWNCLOUD_DIR}
sudo chmod -R 755 ${OWNCLOUD_DIR}

echo "[8/10] Apache VirtualHost konfigurieren..."
sudo tee /etc/apache2/sites-available/owncloud.conf > /dev/null <<EOF
<VirtualHost *:80>
    DocumentRoot ${OWNCLOUD_DIR}
    ServerName ${IP_ADDR}

    <Directory ${OWNCLOUD_DIR}>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
        <IfModule mod_dav.c>
            Dav off
        </IfModule>
        SetEnv HOME ${OWNCLOUD_DIR}
        SetEnv HTTP_HOME ${OWNCLOUD_DIR}
    </Directory>

    ErrorLog \${APACHE_LOG_DIR}/owncloud_error.log
    CustomLog \${APACHE_LOG_DIR}/owncloud_access.log combined
</VirtualHost>
EOF

echo "[9/10] Apache aktivieren & neu starten..."
sudo a2ensite owncloud.conf
sudo a2dissite 000-default.conf
sudo a2enmod rewrite headers env dir mime setenvif
sudo systemctl reload apache2

echo "[10/10] Installation abgeschlossen ✅"
echo ""
echo "-----------------------------------------------------------"
echo "OwnCloud ist jetzt erreichbar unter:"
echo "➡  http://${IP_ADDR}/owncloud"
echo ""
echo "📂 Datenbank-Zugang:"
echo "   DB-Name    : ${DB_NAME}"
echo "   Benutzer   : ${DB_USER}"
echo "   Passwort   : ${DB_PASSWORD}"
echo "-----------------------------------------------------------"

Dieses Skript automatisiert die komplette Installation und Konfiguration von ownCloud auf einem Debian-basierten System.