Owncloud auf einem Root- oder Microserver installieren und einrichten

Die Installation baut auf meine Serverkonfiguration auf. Falls du bei deinem Server bei Null anfängst, habe ich hier auch noch ein paar Anleitungen parat: Apache2 + PHP5 + MySQL + diverse Module installieren und fastCGI (fcgid) und suEXEC für den Apache2 installieren und einrichten

Hast du bereits einen Server mit Apache2, php5, MySQL etc., dann einfach darauf achten, dass du die hier gemachten Einstellungen an dein System anpasst (fastCGI, suEXEC, etc.).

User und Verzeichnisse anlegen, falls noch nicht geschehen oder vorhanden

Wir fügen den Nutzer wie z.B. owncloud hinzu

adduser owncloud

und fügen den Nutzer www-data, unter welchem auch unser Apache2 läuft, der Nutzergruppe owncloud hinzu

adduser www-data owncloud

Im nächsten Schritt wird die benötigten Verzeichnisstruktur angelegt.

mkdir /var/www/vhosts/owncloud
mkdir /var/www/vhosts/owncloud/conf
mkdir /var/www/vhosts/owncloud/htdocs
mkdir /var/www/vhosts/owncloud/logs
mkdir /var/www/vhosts/owncloud/tmp
mkdir /var/www/vhosts/owncloud/cgi-bin
mkdir /var/www/vhosts/owncloud/cgi-bin/php5-default
mkdir /var/www/vhosts/owncloud/cert

Rechte

chown -R owncloud:owncloud /var/www/vhosts/owncloud
chmod -R 750 /var/www/vhosts/owncloud
chmod 550 /var/www/vhosts/owncloud/conf

Virtuellen Host anlegen (auch schon für SSL)

Falls du einen anderen Benutzer angelegt und eine andere Verzeichnisstruktur angelegt hast, musst du hier deine Daten anpassen, ansonsten solltest du es einfach kopieren können. Möchtest du mehrere Domains oder Dienste auf dem Server betreiben, solltest du auch <VirtualHost *:80> anpassen. Ich habe z.B. für das * die Server IP und für 80 den Port 999 und für 433, 998 eingetragen. Wenn du dich für andere Ports als die Standard Ports entscheidest, musst du dies dem Apache aber auch noch mitteilen. Mehr dazu gleich nach der vHost conf.

cat > /etc/apache2/sites-available/owncloud.conf << EOF
<VirtualHost *:80>
     DocumentRoot /var/www/vhosts/owncloud/htdocs
     ServerName DOMAINODERIP
     SuexecUserGroup owncloud owncloud
     Options -FollowSymLinks
     <FilesMatch ".ph(p3?|tml)$">
          SetHandler fcgid-script
     </FilesMatch>
     <IfModule mod_fcgid.c>
          php_admin_flag engine off
          AddHandler fcgid-script .php
          AddHandler fcgid-script .php5
          FcgidConnectTimeout 20
          FcgidMaxRequestLen 52428800
          FCGIWrapper /var/www/vhosts/owncloud/cgi-bin/php5-default/php-fcgi-wrapper .php
     </IfModule>
     <Directory "/var/www/vhosts/owncloud/htdocs">
          allow from all
          AllowOverride All
          Require all granted
          Options -Indexes +ExecCGI +FollowSymLinks +MultiViews
     </Directory>
     ErrorLog /var/www/vhosts/owncloud/logs/error.log
     LogLevel debug
     CustomLog /var/www/vhosts/owncloud/logs/access.log "combined"
</VirtualHost>

<VirtualHost *:443>
     DocumentRoot /var/www/vhosts/owncloud/htdocs
     Alias /phpmyadmin /usr/share/phpmyadmin
     Alias /phpMyAdmin /usr/share/phpmyadmin
     ServerName DOMAINODERIP
     SuexecUserGroup owncloud owncloud
     Options -FollowSymLinks
     SSLEngine on
     SSLCertificateKeyFile /var/www/vhosts/owncloud/cert/server.key
     SSLCertificateFile /var/www/vhosts/owncloud/cert/server.crt
     <FilesMatch ".ph(p3?|tml)$">
          SetHandler fcgid-script
     </FilesMatch>
     <IfModule mod_fcgid.c>
          php_admin_flag engine off
          AddHandler fcgid-script .php
          AddHandler fcgid-script .php5
          FcgidConnectTimeout 20
          FcgidMaxRequestLen 52428800
          FCGIWrapper /var/www/vhosts/owncloud/cgi-bin/php5-default/php-fcgi-wrapper .php
     </IfModule>
     <Directory "/var/www/vhosts/owncloud/htdocs">
          allow from all
          AllowOverride All
          Require all granted
          Options -Indexes +ExecCGI +FollowSymLinks +MultiViews
     </Directory>
     ErrorLog /var/www/vhosts/owncloud/logs/error.log
     LogLevel debug
     CustomLog /var/www/vhosts/owncloud/logs/access.log "combined"
</VirtualHost>
EOF

Ports dem Apachen mitteilen (nur nötig bei nicht standard Ports!)

nano /etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 80
Listen 999

<IfModule ssl_module>
        Listen 443
        Listen 998
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

php.ini Config

Kopieren der php.ini in unser vHost conf Verzeichnis und Vergabe von Rechten und gleichzeitig auch die Anpassung.

cp /etc/php5/cgi/php.ini /var/www/vhosts/owncloud/conf/
chown owncloud:owncloud /var/www/vhosts/owncloud/conf/php.ini
chmod 440 /var/www/vhosts/owncloud/conf/php.ini
nano /var/www/vhosts/owncloud/conf/php.ini
open_basedir = "none"
max_execution_time = 60
memory_limit = 512M
post_max_size = 1024M
upload_tmp_dir = "/var/www/vhosts/owncloud/tmp"
upload_max_filesize = 1024M
session.save_path = "/var/www/vhosts/owncloud/tmp"

Script für fcgid anlegen

cat > /var/www/vhosts/owncloud/cgi-bin/php5-default/php-fcgi-wrapper << EOF
#!/bin/sh
PHP_INI_SCAN_DIR=/var/www/vhosts/owncloud/conf
export PHP_INI_SCAN_DIR
export PHPRC=/var/www/vhosts/owncloud/conf
export PHP_FCGI_CHILDREN=1
export PHP_FCGI_MAX_REQUESTS=5000
exec /usr/bin/php5-cgi
EOF

Rechte vergeben

chown owncloud:owncloud /var/www/vhosts/owncloud/cgi-bin/php5-default/php-fcgi-wrapper
Ausführbar machen
chmod 750 /var/www/vhosts/owncloud/cgi-bin/php5-default/php-fcgi-wrapper
Immutable Bit setzen, damit die Datei nicht mehr einfach geändert werden kann
chattr +i -V /var/www/vhosts/owncloud/cgi-bin/php5-default/php-fcgi-wrapper

SSL Einrichten

cd /var/www/vhosts/owncloud/cert

Privaten RSA Schlüssel erstellen

openssl genrsa -out server.key 1024

Einen Cert Signing Request erstellen

openssl req -new -key server.key -out server.csr

SSL Zertifikat ausstellen und selbst signieren. Hier sollte man "Country Name" z.B. DE, "Organization Name" z.B. Meine Cloud und "Common Name" die IP oder Domain Namen vergeben. Common Name ist ein muss und die anderen Sachen können frei bleiben. Es ist aber ratsam wenigstens noch bei Organization Name etwas festzulegen.

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
Wenn noch nicht geschehen, dann noch schnell das Apache2 SSL Modul aktivieren
a2enmod ssl

Virtuellen Host aktivieren

a2ensite owncloud

Apache Service neustarten

service apache2 reload

Owncloud laden und installieren

cd /var/www/vhosts/owncloud/htdocs/

Den Server die aktuelle Version von Owncloud laden lassen

wget https://download.owncloud.org/community/owncloud-7.0.1.tar.bz2

Entpacken

tar -xjf owncloud-7.0.1.tar.bz2

Archiv wieder löschen

rm owncloud-7.0.1.tar.bz2

Die zuvor entpackten Dateien ohen owncloud Verzeichnis ind den htdocs Ordner unseres Owncloud Servers kopieren

mv owncloud/* /var/www/vhosts/owncloud/htdocs/

Den nun leeren owncloud Ordner wieder löschen

rm -R owncloud/

 


Neuen Kommentar schreiben

Plain text

  • Keine HTML-Tags erlaubt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.
By submitting this form, you accept the Mollom privacy policy.