| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
MaGdev Site Admin

Anmeldungsdatum: 04.02.2004 Beiträge: 711 Wohnort: Hamburg
|
10.06.2005 19:40 [HowTo] Eigene PEAR Installation bei Shared Hosting |
|
|
Vefasst von Cybersmog
Was ist PEAR überhaupt?
| Zitat: | PEAR (PHP Extension and Application Repository) ist ein zentrales Archiv für Klassen und Bibliotheken in PHP mit einem hohen Wiederverwendungswert. Innerhalb von PEAR existiert darüber hinaus PECL, in dem Erweiterungen für PHP, die in C und C++ geschrieben sind, enthalten sind.
Der Zweck von PEAR ist die Verbreitung nützlicher, geprüfter und qualitativ hochwertiger objekt orientierter Skripte (Packages) in PHP und Erweiterungen in C, die von allen PHP-Entwicklern genutzt werden können.
Gleichzeit sollen die Standards, die in PEAR definiert werden, dazu dienen, dass Entwickler Code schreiben können, der portabel, auf vielen anderen Systemen und Konfigurationen einsetzbar und gut lesbar ist.
Zitat von http://www.dclp-faq.de/q/q-pear-was.html |
PEAR lässt sich also am ehesten mit dem CPAN für Perl vergleichen.
Über den Sinn bzw. Unsinn von PEAR kann man gerne streiten. Ich für meinen Teil benutze PEAR sehr gerne.
PEAR bei Shared Hosting Providern?
Seit PHP > 4.3.0 ist PEAR mit ein paar Basispaketen (DB, Net_Socket, Net_SMTP, Mail, XML_Parser, PHPUnit-0.6.2) bei jeder PHP Installation dabei. Auch ein paar Provider bieten diese Basispakete schon an, z.B. Host Europe. Wenn PEAR aber nun nicht angeboten wird oder man auch andere Pakete nutzen möchte, steht man im Regen. Eine Möglichkeit wäre nun, die Pakete von Hand in den Webspace zu kopieren und in die Skripten einzubinden.
Ich möchte hier aber eine viel komfortablere Möglichkeit erklären, wie man zu seiner eigenen PEAR Installation mit graphischen Frontend kommt. Dazu werde ich die Installation am Beispiel von Host Europe erklären, aber die Anleitung müsste analog auch bei anderen Providern funktionieren.
Vorbereitungen
Als erstes muss der physikalische Document Root des Webservers ermittelt werden. Dazu reicht dieses kleine Skript: | PHP: | <?php
echo $_SERVER['DOCUMENT_ROOT'];
?> |
Der Output sollte in etwa so aussehen: | Code: | | /is/htdocs/00000/www.domain.tld | Mein Beispiel ist jetzt von Host Europe, jeder Provider macht das etwas anders.
Installation von PEAR
- Als erstes braucht man das Installer Skript. Dazu ruft man http://go-pear.org/ auf (wichtig: ohne www). Man bekommt dann den Quelltext zu sehen, den man sich in einer Datei speichert. Ich nenne sie mal pearinstaller.php.
- Dann erstellt man im eigenen Webspace per FTP Programm ein Verzeichnis im Document Root, z.B. _pear. Auf das erstellte Verzeichnis wendet man dann noch
an. Das ist nötig, damit später auch der Webserver Schreibrechte auf das Verzeichnis hat.
In das erstellte Verzeichnis wird dann die Installerdatei, in meinem Fall pearinstaller.php hochgeladen.
Per Browser ruft man die Datei dann auf: http://www.domain.tld/_pear/pearinstaller.php
Man sollte dann das Installer Frontend zu Gesicht bekommen. Mit einem Klick auf next kommt man dann zur Konfiguration.
Im Feld "Installation prefix" sollte dann schon etwas in dieser Art drinstehen: | Code: | | /is/htdocs/00000/www.domain.tld/_pear | Das Verzeichnis setzt sich aus dem oben ermittelten Document Root und dem Unterverzeichnis, in meinem Fall _pear, zusammen.
In den Feldern 4 - 7 muss nun gegen ausgetauscht werden.
In Feld 10 wird nur eingetragen.
Das Kästchen mit der Frage nach den Standard PEAR Paketen sollte man markiert lassen.
Nachdem alle Einstellungen gemacht sind, kann die Installation gestartet werden.
Die Installation läuft jetzt vollautomatisch ab. Da die ganzen Pakete erst runtergeladen werden müssen, kann das eine Weile dauern. Die Installation ist fertig, wenn man am Ende der Seite den Link Start Web Frontend of the PEAR Installer zu sehen bekommt. Auf den Link klickt man dann natürlich.
Wenn alles geklappt hat, bekommt man nun den Packet Manager zu sehen. Bevor man eigene Pakete installieren kann, müssen aber nochmals Einstellungen gemacht werden. Dazu klickt man links auf den Link Configuration.
Auf der Konfigurationsseite müssen nun noch 3 Felder angepasst werden: | Code: | PEAR documentation directory: => /is/htdocs/00000/www.domain.tld/_pear/docs
PEAR data directory: => /is/htdocs/00000/www.domain.tld/_pear/data
PEAR test directory: => /is/htdocs/00000/www.domain.tld/_pear/tests | Die Änderungen werden dann mit einem Klick auf den Go! Button gespeichert.
Damit ist die Installation abgeschlossen und man kann loslegen.
Nach der Installation
Nach der PEAR Installation sollte man als erstes die Installer Datei (pearinstaller.php) löschen. Außerdem sollte man das Installationsverzeichnis unbedingt per .htaccess vor unberechtigtem Zugriff schützen.
Installation von PEAR Paketen
Die Pakete lassen sich über das Package Mangament nun ganz einfach per Klick auf das grüne Kreuz installieren, bzw. per Klick auf den Mülleimer deinstallieren. Über die Info Buttons kommt man an weiter Informationen.
Es empfiehlt sich, von Zeit zu Zeit auch mal auf den Link list avail. upgrades zu klicken, um an die neuesten Versionen der installierten Pakete zu kommen.
Einbinden von PEAR Paketen in eigene Skripten
Um PEAR nun nutzen zu können, müssen die Pakete natürlich auch in den Quelltext eingebunden werden. Dazu gibt es 3 Möglichkeiten:
- Man fügt in jede einzelne PHP Datei den Pfad manuell ein, z.B. so:
| PHP: | <?php require_once '/is/htdocs/00000/www.domain.tld/_pear/PEAR/Mail/mime.php' |
Eine andere Möglichkeit ist, am Anfang jeder PHP Datei, in der man PEAR Pakete braucht, diese Zeile einzügen: | PHP: | <?php ini_set('include_path', '/is/htdocs/00000/www.domain.tld/_pear/PEAR/'); | Die einzelnen Module kann man dann relativ einfach einbinden: | PHP: | <?php require_once 'Mail/mime.php' |
Die eleganteste Methode meiner Meinung nach ist, sich eine .htaccess Datei mit folgendem Inhalt anzulegen: | Code: | | php_value include_path /is/htdocs/00000/www.domain.tld/_pear/PEAR/ | Diese Datei lädt man dann per FTP in das Document Root Verzeichnis hoch. Dadurch steht dann der PEAR Include Pfad überall zur Verfügung und man braucht in den einzlnen PHP Dateien nur noch das Modul selbst einbinden: | PHP: | <?php require_once 'Mail/mime.php' |
Schlußbemerkung
Was sich jetzt relativ aufwendig anhört, ist in Wirklichkeit nicht sehr schwer. Meiner Meinung nach lohnt sich der Aufwand, denn man kann jetzt jederzeit PEAR Pakete installieren, updaten oder löschen.
Allen Interessierten sei auf jeden Fall die offizielle PEAR Homepage ans Herz gelegt. Dort finden sich viele weitere Informationen und natürlich auch ein (englisches) Handbuch.
Auch im PHP Magazin, das alle 2 Monate erscheint, stehen immer wieder interessante Artikel über PEAR Pakete drin.
Feedback auf dieses Tutorial ist jederzeit erwünscht. Eventuell vorhandene Fehler werde ich natürlich korrigieren. _________________ Auch der längste Weg beginnt immer mit einem kleinem Schritt!
Vorgehen bei Problemen:
1. PHP-Handbuch oder PEAR-Handbuch lesen!
2. Forensuche benutzen!
3. Fragen posten und dabei die Regeln beachten! |
|
| Nach oben |
|
 |
data Neuer User
Anmeldungsdatum: 24.02.2008 Beiträge: 3
|
24.02.2008 1:11 |
|
|
Problemfall open_basedir:
In meinem Fall gab es ein Problem bei der Installation mit dem Frontend Installer.
Die Systemconfig wurde aus irgendeinem Grund auf /usr//etc/pear.conf gesetzt.
Zur abhilfe gegen die lästige Fehlermedung das der Befehl "file_exist" nicht auf den Pfad ausserhalb des open_basedir Bereiches zugreifen darf habe ich in der Datei
/DOMAIN.com/pear/PEAR/PEAR/Config.php
folgendes geändert
| PHP: | <?php
if (getenv('PHP_PEAR_SYSCONF_DIR')) {
define('PEAR_CONFIG_SYSCONFDIR', getenv('PHP_PEAR_SYSCONF_DIR'));
} elseif (getenv('SystemRoot')) {
define('PEAR_CONFIG_SYSCONFDIR', getenv('SystemRoot'));
} else {
// define('PEAR_CONFIG_SYSCONFDIR', PHP_SYSCONFDIR);
define('PEAR_CONFIG_SYSCONFDIR', $PEAR_INSTALL_DIR);
}
?> |
Jetzt ist das PEAR_CONFIG_SYSCONFDIR der Pfad zu meiner Pearinstallation und es läuft ohne Probleme. |
|
| Nach oben |
|
 |
luti User
Anmeldungsdatum: 29.11.2008 Beiträge: 15
|
27.01.2009 21:44 Update / Hinweis |
|
|
Zwei kurze Ergänzungen:
1. Der Link http://go-pear.org/ ist veraltet, aktuell ist: http://pear.php.net/go-pear
2. Bei meiner Installation musste ich bei der Konfiguration im Feld 10 () nicht nur $prefix sonder $prefix/index.php stehen lassen, sonst gab es am Ende eine Fehlermeldung.
Die Anpassungen unter 11. waren übrigens bei mir nicht nötig ...
Grüße, luti |
|
| Nach oben |
|
 |
Apfel007 Neuer User
Anmeldungsdatum: 03.03.2009 Beiträge: 1
|
03.03.2009 16:12 hosteurope - include path |
|
|
Hallo Luti,
tolle Anleitung hast Du geschrieben. Die Installation funktioniert. Habe auch ein Webpack bei HE.
Nur habe ich ein Problem mit dem Include path.. Ich möchte pear mit drupal verwenden.
Ich habe auch schon das mit der htaccess probiert... im root.. keine Seite war mehr zu erreichen ..
in der php.info steht dieses... kann das stimmen? Ich habe ja den gleichen Install.Pfad genommen wie Du.
include_path .:/usr/share/pear/php5
Hast Du einen Rat für mich? Irgend etwas muß ja falsch laufen. Wie muß der include pfad heißen?
Gruß Apfel007 |
|
| Nach oben |
|
 |
luti User
Anmeldungsdatum: 29.11.2008 Beiträge: 15
|
03.03.2009 16:51 Re: hosteurope - include path |
|
|
Hallo Apfel,
| Apfel007 hat folgendes geschrieben: | tolle Anleitung hast Du geschrieben.
|
Danke, aber die Aneitung stammt gar nicht von mir - nur die Ergänzung ...
| Apfel007 hat folgendes geschrieben: | in der php.info steht dieses... kann das stimmen?
include_path .:/usr/share/pear/php5
|
Das stimmt, ist aber der Pfad zu den standardmäßig von HE bereitgestellten Paketen (siehe http://www.pear-forum.de/ftopic2337.html).
| Apfel007 hat folgendes geschrieben: | Ich habe ja den gleichen Install.Pfad genommen wie Du.
|
Das hoffe ich nicht ;). Dann hättest Du ja Pear auf meinem WebPack installiert ...
| Apfel007 hat folgendes geschrieben: | Wie muß der include pfad heißen?
|
Den Pfad zu Deinem WebPack findest Du im KIS. Er sollte in etwa lauten:
/is/htdocs/wp1123456_xyz/
Daran hängst Du einfach den Pfad, in dem Du Pear bei Dir installiert hast. (z.B. /pear oder /offline/pear) Den includierst Du dann per htaccess oder ini_set() am Anfang jeden Skriptes.
Glück auf, luti[/url] |
|
| Nach oben |
|
 |
maumi3 Neuer User
Anmeldungsdatum: 17.04.2009 Beiträge: 1
|
17.04.2009 10:09 Probleme bei Hosteurope |
|
|
Hallo zusammen,
habe versucht PEAR auf meinem Webpack bei Hosteurope zu installieren. Das Installationsskript lief auch ohne probleme durch. Allerdings kann ich danach das Frontend nicht erreichen. Ich erhalte folgende Meldung:
Warning: require_once(PEAR/Remote.php) [function.require-once]: failed to open stream: No such file or directory in /is/htdocs/wpxxxxxx_xxxxxxx/_pear/PEAR/PEAR/Frontend/Web.php on line 35
Fatal error: require_once() [function.require]: Failed opening required 'PEAR/Remote.php' (include_path='/is/htdocs/wpxxxxxx_xxxxxxx/_pear/PEAR') in /is/htdocs/wpxxxxxx_xxxxxxx/_pear/PEAR/PEAR/Frontend/Web.php on line 35
Wer hat eine Idee, woran das liegen kann?
Grüße
Maumi |
|
| Nach oben |
|
 |
|
|
|
Zu Deinen Favoriten hinzufügen
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
|