PHP/PEAR

Aus schokokeks.org Wiki
< PHP
Wechseln zu: Navigation, Suche

Das PHP Extension and Application Repository (PEAR) ist eine Sammlung fertiger PHP-Lösungen für viele Standardaufgaben. Um Pakete von dieser Sammlung zu installieren, steht der PEAR-Paket-Manager zur Verfügung, den Sie auf der SSH-Kommandozeile nutzen können.

Eigene PEAR-Umgebung in Betrieb nehmen

Vor der ersten Nutzung müssen Sie allerdings Ihre eigene PEAR-Datenbank in Betrieb nehmen, da Sie als Benutzer natürlich keine Pakete für alle Benutzer verwalten können.

Führen Sie daher folgende Befehle aus:

pear config-create ${HOME}/websites ${HOME}/.pearrc

Dabei wird eine Konfigurationsdatei erstellt, die sich auf Verzeichnisse im Pfad ~/websites/pear bezieht.

Damit PEAR dieses Verzeichnis erstellt, führen Sie bitte einmal diesen Befehl aus:

pear channel-update pear.php.net

Aufgrund eines momentan nicht näher eingegrenzten Fehlers wird dabei ein Verzeichnis nicht automatisch erzeugt, was später zu Problemen führt. Bitte führen Sie daher auch noch folgendes Kommando aus:

mkdir ~/websites/pear/cache

Damit haben Sie bereits die Voraussetzungen geschaffen um PEAR-Pakete installieren zu können.

Pakete installieren

Um nun ein Paket aus der PEAR-Sammlung zu installieren, können Sie wie gewohnt

pear install [Projekt/Paketname]

verwenden.

Normalerweise kennt PEAR nur die Pakete, die direkt unter pear.php.net angeboten werden. Bei Paketen aus einer anderen Quelle muss diese Quelle vorher noch hinzugefügt werden:

pear channel-discover [Quelle]

PEAR-Pakete in eigenen PHP-Scripts verwenden

Um die installierten PEAR-Pakete nutzen zu können, müssen Sie den include_path erweitern. Dazu können Sie entweder direkt im betreffenden PHP-Script am Beginn in etwa den Befehl

set_include_path(get_include_path() . PATH_SEPARATOR . '/home/username/websites/pear/php');

eintragen, oder Sie erstellen eine Datei .user.ini im Stammverzeichnis der betreffenden Website mit dem Inhalt

include_path = '.:/usr/share/php5:/usr/share/php:/home/username/websites/pear/php';