Schlagwort-Archive: PHP

nextcloud – HTTP error 500 nach update (memory caching)

Nach einem fehlgeschlagenen Update von Version 11.0.4.1 auf die aktuelle Version 12.0.4. auf dem Raspberry Pi 2 konnte ich die meinen privaten Onlinespeicher nicht mehr erreichen.  Nach dem Aufruf der URL reagierte der Apache-Webserver mit dem HTTP Error 500 (Internal Server Error). Ein Blick in das Fehlerprotokoll (dieses wird im Datenverzeichnis gespeichert, bei Verwendung des Editors ’nano‘ kann mit der Tastenkombination ‚Strg+W+V‘ in die letzte Zeile gesprungen werden) verriet, dass die ‚Memory Caching‘-Funktion scheinbar Verursacher der Fehlers ist. Daraufhin habe ich mir die Konfigurationsdatei im Installationsverzeichnis von Nextcloud angeschaut und den folgenden Eintrag gefunden:

'memcache.local' => '\\OC\\Memcache\\APC',

Nachdem ich diese Zeile auskommentiert habe, konnte ich das Update beenden. Eine kurze Recherche hat ergeben, dass die ‚Memory Caching‘-Funktion zur signifikanten Verbesserung der Server-Performance dient, weshalb diese genutzt werden sollte. Im Admin-Bereich erhalte ich nun auch diese Einrichtungswarnung, weshalb ich mich nach der erfolgreichen Syncronisierung aller mit dem Server verbundenen Clients um die (Re-) Aktivierung der Funktion kümmern werde.

Der PHP-OPcache ist nicht richtig konfiguriert. Für eine bessere Leistung empfiehlt es sich folgende Einstellungen in der php.ini vorzunehmen:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Das Logo von Nextcloud ist Eigentum der Nextcloud GmbH aus Stuttgart, Deutschland.

Installation Grundsystem inkl. Owncloud 5.0.5 Linux Ubuntu Server 12.04.2 LTS

Nachdem die Installation und Konfiguration der MySQL-Datenbank sowie der Skriptsprache PHP nur unter erheblichen Mehraufwand realisiert werden konnte und die Funktionalitäten von Owncloud unter IIS 7.5 / 8 bisher nur eingeschränkt verfügbar sind, ist die gesamte Architektur des Colocation-Servers geändert worden. Um zu einem späteren Zeitpunkt das Betriebssystem wechseln zu können, wurde auch der Einsatz der spezifischen Virtualisierungsplattform „Hyper-V“ überdacht. Zentraler Bestandteil des neuerlichen Konzepts ist die Verwendung der Virtualisierungssoftware „Virtual Box“.

Zukünftig sollen zwei virtuelle Maschinen die zentralen Aufgaben des Colocation-Servers übernehmen. Ein linux-basiertes System soll auf der Basis einer LAMP-Installation alle Hostingaufgaben realisieren und durch den Einsatz einer RSYNC- sowie FTP-Serverrolle als Backupsystem fungieren. Zusätzlich wird durch die Installation der Plex-Serversoftware jene Maschine als Mediaserver genutzt. Ein windows-basiertes System soll als Entwicklerplattform dienen und durch die freie Skalierbarkeit zusätzlicher Ressourcen für den Einsatz von Active Directory-, Sharepoint- und Exchange-Rollen bereitstellen.

Somit kommen wir zunächst zu einer ausführlichen Dokumentation der Testumgebung. Als erster wichtiger Baustein wird die Installation des Linux-Servers vorangetrieben. Durch die Einrichtung einer neuen virtuellen Maschine unter „Virtual Box“, wird das Fundament für den produktiven Einsatz gelegt.

Nachdem die Installation abgeschlossen ist, kann das System durch folgende Befehle aktualisiert werden.

sudo apt-get update
sudo apt-get upgrade

Da der Colocation-Server hardwareseitig genügend Potenzial für ein leistungsfähiges System besitzt und für die spätere Verwaltung von Medieninhalten eine grafische Oberfläche vorteilhaft sein kann, wird nachträglich ein GUI (Graphic User Interface) installiert.

sudo apt-get install ubuntu-desktop

Nun kann die Linux-Installation nach den Anforderungen der Anwendungen konfiguriert werden. In einem ersten Schritt wird die Webserver [Linux, Apache, PHP, MySQL (LAMP)] beschrieben.

sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server mysql-client php5-mysql phpmyadmin

Jetzt kann die Vorbereitung des Webservers und des Datenspeicherorts für Owncloud gestartet werden. Hinsichtlich späterer Datensicherungsmöglichkeiten und erhöhter Flexibilität bei der Datenspeicherung wird eine eigene virtuelle Festplatte erstellt. Diese wird mit über den nachfolgenden Befehl mit den entsprechenden Rechten für die Apache-Nutzergruppe ausgestattet.

chown -R www-data:www-data /datalocation

Wiki.Ubuntuusers.de – CHOWN

Optional kann der Apache-Webserver mit einer SSL-Zertifikat gesichert werden. Diese Möglichkeit soll zu einem späteren Zeitpunkt genutzt werden.

Heise Security SSL für lau

Wiki.Ubuntuusers.de – Apache SSL

SSLTrust – Apache 2.x SSL Einrichtung

Zertifizierungstelle CAcert

Zertifizierungstelle StartSSL

Als letzten Schritt auf dem Weg zur Owncloud-Installation muss der Apache-Webserver für die Verarbeitung von .htaccess vorbereitet und zwei Apache-Module aktiviert werden.

Zunächst die Verarbeitung von .htaccess-Dateien:

sudo vi /etc/apache2/sites-available/owncloud

Inhalt des Konfigurations-Datei:

Inhalt Konfigurationsdatei

Durch den folgenden Befehle wird der Apache-Webserver über die Aktivierung der Website informiert:

sudo a2ensite owncloud

Nun werden noch die beiden Apache-Module aktiviert:

sudo a2enmod headers rewrite

Zum Abschluss wird der Apache-Webserver einmal neu gestartet:

sudo service apache2 restart

Jetzt kann mit dem Installationsprozess von Owncloud begonnen werden. Dabei gibt es zwei verschiedene Wege: Installation über das Terminal oder über das Ubuntu Software Center. In der nachfolgenden Bildergalerie wird die Installation über das Software Center gezeigt. Die Befehle für das Terminal lauten:

echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /' >> /etc/apt/sources.list.d/owncloud.list
apt-get update
apt-get install owncloud

Falls es beim Installationsprozess zu Problemen bezüglich der Rechteverwaltung auf der virtuellen Festplatte kommt, hilft eventuell ein Blick in diesen oder jenen Foreneintrag.

Weitere Informationen:

Fernwartung eines Linux-Systems über RDP [(Windows-) Remote Desktop Protocol] durch XRDP

mntechblog.de – LAMP Installation

http://forum.ubuntuusers.de/

http://wiki.ubuntuusers.de/MySQL

Upload von großen Dateien Owncloud

Das Ubuntu Logo ist Eigentum der Canonical Ltd.

PHP Einstellungen Owncloud und Strato Webhosting

Nach der Installation des Owncloud-Pakets müssen Änderungen an den globalen PHP-Einstellungen sowie einer spezifischen PHP-Datei vorgenommen werden. Diese sind notwendig, um die volle Funktionalität sicherzustellen.

Um bei dem im Titel genannten Webhosting-Anbieter die globalen PHP-Einstellungen zu ändern, muss eine eigene PHP-Konfiguration erstellt werden. Unter Verwendungen eines beliebigen Texteditors werden die von den Standardeinstellungen abweichenden Parameter in ein Dokument geschrieben und die Datei unter dem Namen „php.ini“ abgespeichert. Diese Datei wird danach mit einem beliebigen FTP-Programm oder einer SSH-Verbindung in das Owncloud-Wurzelverzeichnis hochgeladen. Durch dieses Vorgehen wird sichergestellt, dass der Apache-Webserver des Hosters die geänderten Parameter auf alle Unterverzeichnis anwendet. Für die eigene Installation habe ich mich für folgende Abweichungen entschieden:

file_uploads = On
max_execution_time = 600
safe_mode = Off
post_max_size = 650M
upload_max_filesize = 500M
max_file_uploads = 20
register_globals = Off

Diese Werte geben an, dass der Upload von Dateien mit max. 500 MB möglich ist. Für die Änderung von PHP-Parametern gibt es unzählige Möglichkeiten. Um den Upload großer Dateien zu ermöglichen, werden in diesem Artikel einige Hinweise auf die korrekten Werte gegeben.

Der Apache-Webserver von Strato ist so eingestellt, dass automatisch eine .htaccess-Datei in dem Verzeichnis der php.ini angelegt wird. Dadurch wird der Webserver angewiesen, die geänderten Einstellungen zu verwenden. Falls diese Datei nicht erstellt wird, so kann diese auch manuell geschrieben werden.

SetEnv PHPRC /verzeichnis der eigenen php.ini

Zur Kontrolle der PHP-Einstellungen bietet es sich an, eine Subdomain auf einen beliebigen Unterordner des Owncloud-Wurzelverzeichnis (/owncloud, /php) einzurichten und über eine „index.php“  mit dem folgendem Inhalt die Werte auszulesen.

<?php
phpinfo();
phpversion();
?>

Nachdem die PHP-Einstellungen erfolgreich angepasst sind, muss noch ein spezifisches Problem gelöst werden. Denn ohne die Änderung der „local.php“ im nachstehenden Verzeichnis, ist der Upload von Daten nicht möglich.

/domain/owncloud/lib/filestorage

Dies ist auf eine fehlerhafte bzw. unvollständige Verarbeitung einer Funktion zurückzuführen. Um diesen Fehler zu korrigieren, muss der folgende Code gesucht werden.

public function free_space($path) {
return disk_free_space($this->datadir.$path);

Nun muss der zweite Teil der Funktion je nach verfügbarem Speicher des Hosting-Paketes anpasst werden. Wenn zum Beispiel 2 GB für die Verwendung von Owncloud zur Verfügung stehen, so muss dieser Wert zunächst in Byte (2 GB = 2147483648 B) umgerechnet und dann in der Funktion explizit übergeben werden.

public function free_space($path) {
return 2147483648;

Damit wird sichergestellt, dass ein exakter Wert bezüglich des freien Speichers übergeben wird. Mithilfe dieser Änderungen ist der erfolgreiche Betrieb eines eigenen Cloudspeichers über den Hostinganbieter „Strato“ möglich.

Stand: Owncloud Version 4.5.6 | PHP 5.3.22

Hier sind alle geänderten Dateien in einem ZIP-Archiv zusammengefasst.

Weitere Informationen:

Owncloud-Forum „OwnCloud 4.0.3 Max Upload Size = 0B?“

BITblokes „ownCloud bei Shared Webhosting – Kann keine Datei hochladen (Upload max. B)“

Webdecker „PHP: INI-WERTE ÜBERSCHREIBEN“

Byterechner

Das Owncloud-Logo ist Eigentum der Owncloud Inc.

Installation Owncloud Webhosting

Um das Owncloud-System auf einer Linux-Installation zu testen, damit es zu einem späteren Zeitpunkt auch auf dem Colocation-Server eingesetzt werden kann, werde ich an dieser Stelle beschreiben wie die Installation auf vorhandenen Speicherplatz von Webhostinganbietern durchgeführt wird. Wichtig ist, dass sowohl PHP als auch MySQL unterstützt bzw. bereitgestellt werden.

Zu einem späteren Zeitpunkt werde ich auch versuchen, eine verschlüsselte Verbindung einzurichten.

1. Schritt

Es gibt zwei Wege Owncloud zu installieren. Das Installationspaket kann als Archiv runtergeladen oder als Skript ausgeführt werden. Ich werde an dieser Stelle die Installation mit Hilfe eines FTP-Programms sowie einer SSH-Konsole beschreiben. Daher kommt das Installationsskript nicht zur Anwendung. Eigentlich benötigt man nur ein FTP-Programm, jedoch kann die Installation durch die Verwendung von SSH-Befehlen um einige Zeit verkürzt werden.

Als erstes legt man einen neuen Ordner an. Hierbei sollte man sich an der Domain orientieren, über die man das Interface später aufrufen möchte.

Das Installationsarchiv wird anschließend in den Ordner mittels FTP-Programm hochgeladen.

2. Schritt

Danach wird mittels SSH-Programm (z.B. PuttY) eine Verbindung zu den Servern des Webhostinganbieters aufgebaut. Man muss in das Verzeichnis mit den Installationsarchiv wechseln. Man verwendet dafür den folgenden Befehl:

cd <verzeichnisname>

Das Archiv liegt im Format .tar.bz2 vor. Daher muss es entpackt werden:

bzip2 -d <verzeichnisname>.tar.bz2
d: Dekomprimieren

Danach liegt es im Format .tar vor. Ein weiteres Mal muss die Datei entpackt werden:

tar vxf <verzeichnisname>.tar
x: Dateien aus dem Archiv holen
v: Listet alle Dateien beim Entpacken auf
f: Gibt das Archiv an das entpackt werden soll

Diese Vorgänge werden mit einer SSH-Konsole sehr viel schneller erledigt, da bei einem FTP-Programm alle Dateien manuell übertragen werden müssen.

3. Schritt

Nun wird mittels des Webinterface des Webhostinganbieters eine Umleitung zum Verzeichnis eingerichtet. Danach kann die Einrichtung von Owncloud abgeschlossen werden. Dafür müssen Verbindungseinstellungen für eine MySQL-Datenbank vorliegen (siehe Screenshot).

 

4. Schritt

Der letzte Schritt ist die Anpassung der Einstellung für PHP in der php.ini. An dieser Stelle komme ich im Moment noch weiter, da ich zwar eine Anpassung vorgenommen habe, dieser aber nicht für die Unterverzeichnisse angewendet wird.

Weitere interessante SSH-Befehle

.tar verpacken

tar cvf <verzeichnisname>.tar
c: Neues Archiv erzeugen
v: Listet alle Dateien beim Verpacken auf
f: Gibt das Archiv an, das verpackt werden soll

Ordner erstellen

mkdir <ordnername>
erstellt einen neuen Ordner

Datei löschenn

rm <dateiname>
löscht die Datei

Ordner löschen

rm -R <ordnername>
löscht den Ordner mit dem gesamten Inhalt

Das Owncloud-Logo ist Eigentum der Owncloud Inc.

php.ini bei 1und1 Webhosting-Paketen anpassen

Um auch größere Dateiuploads z.B. in WordPress zuzulassen, sind zwei Änderungen notwendig:

  1. Hinzufügen einer .htaccess – Datei in das Hauptverzeichnis, dessen PHP-Einstellungen geändert werden sollen.
    • .htaccess (Datei befindet sich im .ZIP-Archiv)
  2. Die geänderte php.ini muss in das Verzeichnis kopiert werden, welche die Einstellungen erben soll (bei WordPress „wp-admin“)

Bei der „Recommended“-PHP.ini handelt es sich um die nicht geänderte Version aus der Installation von PHP 5.2.17. In der angepassten Version wurde das Upload-Limit auf 40MB erhöht. Selbstverständlich muss der Dateiname im Verzeichnis auf „php.ini“ gekürzt werden.

Das Logo von PHP ist Eigentum der gleichnamigen Foundation.

 

MySQL

Zunächst möchte ich deutlich machen, dass ich mit diesem Eintrag an die Erläuterung vom 12/04/2012 anknüpfen. Angekündigt waren Artikel, welche die Basis für dynamische Webanwendungen unter Windows Server 2008 bilden. Aus diesem Grund soll an dieser Stelle auf zwei neue Anleitung verwiesen werden, welche die Installation und Grundkonfiguration der MySQL-Datenbank und der Skriptsprache PHP beschreiben.

2012-03-mysql-installation-gesichert.pdf

vorschau-mysql-installation-ws08r2

Das Logo von MySQL ist Eigentum der Oracle Corporation . Windows ist eine Marke der Microsoft Corporation.

PHP

Zunächst möchte ich deutlich machen, dass ich mit diesem Eintrag an die Erläuterung vom 12/04/2012 anknüpfen. Angekündigt waren Artikel, welche die Basis für dynamische Webanwendungen unter Windows Server 2008 bilden. Aus diesem Grund soll an dieser Stelle auf zwei neue Anleitung verwiesen werden, welche die Installation und Grundkonfiguration der MySQL-Datenbank und der Skriptsprache PHP beschreiben.

2012-04-php-installation-gesichert.pdf

vorschau-php-installation-ws08r2

Das Logo von PHP ist Eigentum der gleichnamigen Foundation. Windows ist eine Marke der Microsoft Corporation.

Wofuer kann ein Webserver genutzt werden?

Wie bereits angekündigt, werden sich die nächsten Anleitungen mit allerlei Fragen rund um das Thema „Webserver“ beschäftigen. Um einen ersten Eindruck zu bekommen, welche Aufgaben mit Hilfe eines eigenen Webservers erledigt werden können, habe ich ein kleine Übersicht der Funktionen meines Servers erstellt. Dies gibt auch einen Ausblick auf den Fokus der Anleitungen, da es zunächst um die Einrichtung einer Basis für web-basierte Dienste gehen wird. Für jene Zwecke ist der IIS7-Webserver als Standardkomponente im Windows Web Server 2008-BS integriert. Um diesen auf die Anforderungen der dynamischen Inhalte vorzubereiten, sind einige zusätzliche Installationen notwendig. Die Installationsbeschreibung jener Komponenten schließt sich an die Vorbereitungsarbeiten an. Darüber hinaus sollten zusätzliche Schnittstellen für den Dateitransfer geschaffen werden. Mit Abschluss dieser vorbereitenden Maßnahmen geht es an die Installation und Konfiguration der eigentlichen Anwendungen.

Spannend wird mit Sicherheit die Konfiguration des OpenERP-Systems, da ich mir von diesem eine grossen Nutzen verspreche und hoffentlich ein guter Transfer in andere Bereiche möglich ist.