Ihre Cloud, Ihre Daten, Ihr Weg! - ownCloud 4.0 auf CentOS 6.2 + nginx + PostgreSQL
Dieses Dokument beschreibt, wie man ownCloud von der "ownCloud-Community" auf einem CentOS 6.2-basierten Webserver aus dem tar-Paket auf einem nginx- und php-fpm mit einer postgreSQL-Datenbank als Backend installiert und einrichtet. Bei anderen Distributionen können geringfügige Änderungen an den Installationsverfahren für die Softwarevoraussetzungen vorgenommen werden. Diese Anleitung hilft nicht nur bei der Installation des Produkts, sondern versteht auch, warum bestimmte Punkte so gemacht werden, wie sie gemacht werden (dies ist am hilfreichsten für Benutzer mit wenig oder gar keinem Wissen, die, wie ich vor einiger Zeit, erst angefangen haben, Linux zu verwenden).
Was ist ownCloud?
Es ist ein Datei-/Kontakt-/Kalender-Sharing-Tool für Gruppen oder Unternehmen, das aus meiner Sicht sowohl Dropbox als auch GroupOffice (mit Ausnahme der bisherigen E-Mail-Integration) am besten macht und nicht so überladen oder schwerfällig ist wie Alfresco oder Sharepoint.
Links zu mehreren Abschnitten von Entwicklern:
- Produkthomepage:http://owncloud.org/
- IRC:http://webchat.freenode.net/?channels=owncloud
- Unterstützung:http://owncloud.org/support/
Ich garantiere nicht, dass es für Sie funktioniert, da später Änderungen an der Software, sowohl der Voraussetzung als auch der Hauptsoftware, so vorgenommen werden können, dass die in diesem Tutorial erwähnten Verfahren unterbrochen werden oder auf andere Weise nicht erfolgreich abgeschlossen werden können.
P.S. Alle hinzugefügten Fehler sind von mir. Verwenden Sie Kommentare oder navigieren Sie zu IRC.
Vorbemerkung
In diesem Tutorial verwenden wir:
- Centos 6.2-Installationsmedien
- Hostname:owncloud.example.com
- IP-Adresse:192.168.1.100
- Routeradresse:192.168.1.1
- Netzmaske:255.255.255.0
- Nehmen Sie an (stellen Sie sich vor), dass der Server mit dem öffentlichen Internet verbunden ist
- Wir verwenden unseren Computer, um den Server per ssh (Putty unter Windows) fernzusteuern, auch wenn Sie den Server an Ihrer Seite haben oder ihn als virtuelle Maschine unter Ihrem Hauptbetriebssystem laufen lassen
- GNU vim als unser primärer Texteditor. Sie können aber auch andere Ihrer Wahl verwenden
Anforderungen
Wir benötigen eine funktionierende saubere (minimale) Installation von Centos 6.2 (x86 oder x86_64 ist irrelevant), ich persönlich verwende die x86_64-Version und empfehle Ihnen dringend, dasselbe zu tun.
Das Wichtigste zuerst
Melden Sie sich als Root bei der Serverkonsole an. Sie werden an der Eingabeaufforderung [[email protected] ~]# angezeigt.
Ich bevorzuge bestimmte Einstellungen, die völlig optional sind, aber Sie könnten sie später nützlich finden. Ich richte mein Terminal so ein, dass die Ausgabe in Farbe mit Datum, Uhrzeit, Servername und aktuellem Ordner an der Eingabeaufforderung angezeigt wird. Auch um den Befehlsverlauf mit Datum/Uhrzeit anzuzeigen. Ich erhöhe auch die Standardwerte für die Verlaufsgröße.
Führen Sie dazu Folgendes aus:
vi ~/.bash_profile
Fügen Sie die erwähnten Zeilen nach der export PATH-Direktive hinzu. Falls Sie es nicht wissen, drücken Sie "i", um in den Einfügemodus zu gelangen, und "ESC", um ihn zu verlassen. Vi ist vi :)
#Verlaufsgröße für 50.000 Befehle und zehnmal größere Dateigrößeexport HISTSIZE=50000export HISTFILESIZE=500000#Verlauf mit Datum als Beispiel anzeigen:"24.05.2012 - 14:28:56"export HISTTIMEFORMAT="%d.%m .%Y - %H:%M:%S "#Autocolor-Ausgabe des Befehls "ls" export LS_OPTIONS='--color=auto'eval "`dircolors`"#Eingabeaufforderung so einstellen, dass sie als Beispiel angezeigt wird:"Thu May 24 2012 14 :28:56 owncloud.example.com von root @ ~]"#und Datum, Zeit und Ort unterschiedlich einfärben. Alle Eingabetexte auf Standardwerte setzen.PS1="\e[1;37m\][\e[1;36m\] \d \D{%Y} \e[1;31m\]\t \e[1;37m\] \H von \u @ \W] \033[00m\]"
Datei speichern und beenden. Wenn Sie es nicht wissen, geben Sie außerhalb des Einfügemodus entweder ":wq" ein und drücken Sie die Eingabetaste, um zu speichern und zu beenden, oder drücken Sie einfach "ZZ", um dasselbe zu tun. Um sich erneut am Terminal anzumelden, um die Änderungen zu übernehmen, führen Sie Folgendes aus:
beenden
Netzwerk
Wenn Sie während der Installation keine statische IP-Adresse eingerichtet haben, sagen Sie, Sie haben einen DHCP-fähigen Router, müssen Sie dies jetzt tun, andernfalls fahren Sie mit dem nächsten Schritt fort.
vi /etc/sysconfig/network-scripts/ifcfg-eth0
Nur erwähnte Zeilen ändern oder hinzufügen.
BOOTPROTO="none"NETWORK="192.168.1.0"NETMASK="255.255.255.0"IPADDR="192.168.1.100"GATEWAY="192.168.1.1"
Speichern und schließen. Starten Sie dann das Netzwerk neu:
Neustart des Dienstnetzwerks
Prüfen Sie, ob das Netzwerk neu konfiguriert ist, indem Sie Folgendes ausführen:
ifconfig
Jetzt sollten Sie in der Lage sein, als Root per SSH auf den Server unter 192.168.1.100 zuzugreifen. Aber tun Sie das jetzt noch nicht, führen Sie zuerst den nächsten Schritt durch.
Sicherung des Servers
Bevor wir fortfahren, da wir davon ausgegangen sind, dass der Server tatsächlich mit dem Internet verbunden ist, müssen wir ihn sichern. Wir werden drei Dinge tun.
- Konfigurieren Sie den ssh-Server neu, sodass er keine Root-Anmeldung zulässt, und ändern Sie den Standardport 22 auf etwas anderes, weniger gebräuchliches, z. B. 60606,
- Richten Sie iptables ein, um eingehende Verbindungen auf einem neuen Port zuzulassen,
- Fügen Sie unseren ersten Systembenutzer hinzu, um sich mit ihm über ssh anzumelden.
-
Sichern der Remote-Anmeldung
Wenn Sie noch nicht von der Konsole beim Server angemeldet sind (ich meine die lokale Konsole, noch nicht ssh), melden Sie sich als root an und führen Sie dann Folgendes aus:
vi /etc/ssh/sshd_config
In Zeile dreizehn der unveränderten Standarddatei (falls Sie sich erneut fragen, geben Sie ":set number" ein und drücken Sie die Eingabetaste außerhalb des Einfügemodus, um die Zeilennummern zu erhalten) Es gibt eine Port 22-Direktive. Duplizieren Sie sie, ändern Sie die Portnummer in 60606 und kommentieren Sie sie aus.
Suchen Sie dann (außerhalb des Einfügemodus drücken Sie "/" und geben Sie den gesuchten Satz ein) PermitRootLogin yes-Direktive duplizieren Sie erneut und ändern Sie ihren Wert in no und kommentieren Sie sie ebenfalls aus , dann speichern Sie die Datei. Oh, und es ist ":noh", um die Hervorhebung auszuschalten.
Sshd danach neu starten:service sshd Neustart
-
IPtables setzen
Überprüfen Sie zuerst bereits vorhandene iptables:
iptables -L -v --line-numbers
In der Standardinstallation an Position '4' wird die Anweisung sein, neue TCP-Verbindungen auf dem Standard-SSH-Port zu akzeptieren, wir müssen sie entfernen, also ausführen:
iptables -D INPUT 4
Jetzt müssen wir stattdessen Verbindungen zu Port 60606 zulassen. Ausführen:
iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 60606 -j ACCEPT
Um den aktuellen iptables-Status zu speichern, führen Sie schließlich Folgendes aus:
service iptables save
service iptables neu starten -
Erster Benutzer wird hinzugefügt
Jetzt ist alles gut, bis auf eine Sache, wir haben uns von ssh gesperrt, da root nicht erlaubt ist und es noch keine anderen Systembenutzer gibt. Zeit zur Korrektur:
useradd -c "ownCloud-Systembenutzer" -m -n cloudadmin
Passwort für diesen Benutzer festlegen:
passwd cloudadmin
Erledigt. Sie könnten das Passwort für den Benutzer im ersten Befehl festlegen, aber auf diese Weise wird der Passwortwert während der Eingabe im Terminalfenster angezeigt und auch in der .bash_history des Root-Benutzers gespeichert, was nicht wünschenswert ist.
Jetzt können Sie sich anmelden über ssh führt den folgenden Befehl in Ihrem Terminalfenster auf dem lokalen Computer aus:ssh [email protected] -p60606
Schritte vor der Einrichtung
Die Installation der Software ist in den meisten Fällen ziemlich einfach und wir hätten das meiste davon bei der Erstinstallation "überprüfen" können, aber ich ziehe es vor, die Dinge von Hand zu erledigen.
Ich unterteile die Installation absichtlich in Abschnitte.
-
Anmelden als Superuser
In diesem Moment sollten Sie sich als clouddmin-Benutzer auf der Konsolen-Eingabeaufforderung befinden. Um Root-Privilegien zu erhalten, führen Sie Folgendes aus:
su -
-
Software-Repositorys
Um die gewünschte Software verwenden zu können, sind zwei Repositories erforderlich.
Zuerst EPEL, ausführen:rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm
Und nein, i386 ist kein Fehler, es ist sowohl für 32-Bit- als auch für 64-Bit-Systeme gleich.
Dann Remi, führe Folgendes aus:rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
Überprüfen Sie nun sowohl die epel- als auch die remi-Repositories und falls es nicht vorhanden ist, setzen Sie enabled=1, indem Sie Folgendes ausführen:
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmvi /etc/yum.repos.d/epel.repo
Aktualisieren Sie schließlich Ihr System. Selbst frisch installiertes CentOS muss möglicherweise zuerst aktualisiert werden. Ausführen:
vi /etc/yum.repos.d/remi.repoyum update -y
-
Präzisionszeit
Es ist gut, mit dem Rest der Welt synchronisiert zu sein, führen Sie Folgendes aus:
yum installiere ntp
service ntpd start
chkconfig ntpd on
ntpd -
Einige andere Tools
Um mein Leben etwas einfacher zu machen, verwende ich vim anstelle von vi, htop anstelle von top, elinks, um Dinge innerhalb von Terminal und mc schnell zu testen, als guter und nicht nur Dual-Pane-Dateimanager wird wget benötigt, um Sachen herunterzuladen und Mann ist unerlässlich, wenn Sie so ziemlich alles lesen möchten. Ausführen:
yum install vim htop elinks mc wget man -y
ownCloud-Setup
-
Softwarevoraussetzungen
Ein Haufen PHP-Zeug, führe aus:
yum installiere php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsql
php.ini bearbeiten, ausführen:
vim /etc/php.ini
Es müssen vier Direktiven geändert werden,
die erste sollte auf Zeile 736 stehen, die Direktive post_max_size
die zweite auf Zeile 848, die Direktive cgi.fix_pathinfo
die dritte auf Zeile 885, die Direktive upload_max_filesize
zuletzt Zeile 956, Direktive date.timezone ändere sie entsprechend dem Standort deines Servers.[...]post_max_size =64M[...]cgi.fix_pathinfo =0[...]upload_max_filesize =64M[...]date.timezone ="Europa/Prag"[...]
Falls Sie nicht wissen wie, können Sie Ihren Zeitzonennamen finden, indem Sie Folgendes ausführen:
cat /etc/sysconfig/clock
Konfigurieren Sie als Nächstes php-fpm so, dass Unix-Socket anstelle des TCP-Stacks verwendet wird, führen Sie Folgendes aus:
vim /etc/php-fpm.d/www.conf
Lassen Sie es ab Zeile zwölf so aussehen:
;listen =127.0.0.1:9000listen =/var/run/php-fpm/php-fpm.sock
Starten Sie php-fpm:
chkconfig php-fpm on
service php-fpm start -
Backend - PostgreSQL
Um es zu installieren und einzurichten, führen Sie Folgendes aus:
yum install postgresql postgresql-libs postgresql-server
service postgresql initdb
service postgresql start
chkconfig postgresql onMelden Sie sich bei postgres als postgres-Systembenutzer an, erstellen Sie einen Datenbankbenutzer, eine Datenbank und gewähren Sie Berechtigungen
su - -c "psql" postgres
ERSTELLEN SIE BENUTZER clouduser MIT PASSWORT 'userpass';
ERSTELLEN SIE DATENBANK clouddb EIGENTÜMER clouduser CODIERUNG 'UTF8';
GEWÄHREN SIE ALLE PRIVILEGIEN AUF DATENBANK clouddb AN clouduser;
\qÄndern Sie die postgresql-Konfigurationsdatei, um Kennwortanmeldungen zuzulassen:
vim /var/lib/pgsql/data/pg_hba.conf
-
Suchen Sie nach
# Lokale IPv4-Verbindungen:
hostet alle alle 127.0.0.1/32 ident -
Und ändern Sie es in
# Lokale IPv4-Verbindungen:
Host alle alle 127.0.0.1/32 Passwort
Starten Sie nun die Datenbank neu:
Service-Postgresql-Neustart
-
-
nginx-Webserver
Installieren, beim Booten starten und dann stoppen:
yum installiere nginx
service nginx start
chkconfig nginx on
service nginx stopBereiten Sie die Konfigurationsdatei für die ownclod-Website vor:
vim /etc/nginx/conf.d/owncloud.conf
# http auf https.server umleiten { listen 80; server_name owncloud.example.com; umschreiben ^ https://$server_name$request_uri? dauerhaft; # https erzwingen} # owncloud (ssl/tls) server { listen 443 ssl; ssl_certificate /etc/nginx/certs/server.crt; ssl_certificate_key /etc/nginx/certs/server.key; server_name owncloud.example.com; root /var/www/owncloud; indexindex.php; client_max_body_size 64M; # Maximale Uploadgröße festlegen # Direktzugriffsspeicherort verweigern ~ ^/(data|config|\.ht|db_structure\.xml|README) { deny all; } # Standardspeicherort für Try-Orders / { try_files $uri $uri/ @webdav; } # owncloud WebDAV location @webdav { fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS an; schließen Sie fastcgi_params ein; } # PHP-Speicherort aktivieren ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS an; schließen Sie fastcgi_params ein; }}
Lassen Sie uns nun Zertifikate für den Server erstellen und die Fragen in der Eingabeaufforderung gemäß Ihren Einstellungen beantworten:
mkdir -p /etc/nginx/certs/
cd /etc/nginx/certs/
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key - out server.csr
cp server.key server.key.orig
openssl rsa -in server.key.orig -out server.key
openssl x509 -req -days 365 -in server. csr -signkey server.key -out server.crtLaden Sie nginx neu, um die neue Konfiguration zu aktivieren:
service nginx reload
-
ownCloud-Dateien und -Verzeichnisse
Die Installation von ownCloud besteht aus dem Herunterladen und Entpacken des Archivs, mit einigen Anpassungen auf der Serverseite, also führen Sie Folgendes aus:
cd /tmp
wget http://download2.owncloud.org/releases/owncloud-4.0.0.tar.bz2
tar xjf owncloud-4.0.0.tar.bz2
mv owncloud /var/www/
mkdir -p /var/www/owncloud/data
chmod 770 /var/www/owncloud/data
chown -R root:apache /var/www/owncloudUnd noch einmal, Apache als Gruppe im letzten Befehl ist kein Fehler. php-fpm wird standardmäßig als Benutzer apache
ausgeführt -
Zugriff auf die Website
Öffnen Sie Port 443, um auf die Website zugreifen zu können, führen Sie Folgendes aus:
iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 443 -j ACCEPT
service iptables save
service iptables restart
Testlauf
Navigieren Sie über den Browser Ihrer Wahl zu https://owncloud.example.com und schließen Sie den Installationsvorgang ab.
Wählen Sie den Benutzernamen und das Passwort des Administrators, wählen Sie PostgreSQL als Datenbank-Backend und geben Sie die entsprechenden Werte in den Datenbankverbindungseinstellungen ein.
Genießen.
Fehlerbehebung
Protokolldateien befinden sich wie folgt:
/var/www/owncloud/data/owncloud.log
/var/log/php-fpm/www-error.log
/var/log/nginx/access.log
/var /log/nginx/error.log