Archiv von Kategorie ‘PHP’

pecl & oci8 unter ubuntu 9.04

Montag, April 19th, 2010

Zend Server CE bringt diese Extension gleich mit und man muss nur darauf achten, dass man libaio1 installiert hat. Hat man aber sein System mit Paketen installiert, fehlt einem irgendwann die Extension oci8. Diese Extension setzt (wie unter Windows auch) den Oracle Instant Client voraus. Der Client ist unter http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html als rpm oder zip zu bekommen. Wir benötigen Basic & SDK.

user@host:/opt$ sudo unzip /tmp/instantclient-basic-linux32-11.2.0.1.zip
user@host:/opt$ sudo unzip /tmp/instantclient-sdk-linux32-11.2.0.1.zip
user@host:/opt$ sudo ln -s instantclient_11_2/ instantclient
user@host:/opt/instantclient$ sudo ln -s libclntsh.so.11.1 libclntsh.so
 
# Abhängigkeiten: php5-dev, libaio1
user@host:/opt$ sudo aptitude install php5-dev libaio1
 
# Installation von Pecl oci8
user@host:/opt$ sudo pecl update-channels
# Bei der Eingabeaufforderung nun "instantclient,/opt/instantclient" angeben
user@host:/opt$ sudo pecl install oci8

Sollte die Installation der Extension nicht erfolgen weil der Pfad zum Instantclient nicht akzeptiert wird kann man die Extension dennoch “zu Fuß” kompilieren:

# Das Downloadverzeichnis befindet sich norm. unter /tmp/pecl
user@host:/tmp/pecl/download/oci8-1.4.1$ sudo phpize
user@host:/tmp/pecl/download/oci8-1.4.1$ sudo ./configure --with-oci8=shared,instantclient,/opt/instantclient
user@host:/tmp/pecl/download/oci8-1.4.1$ sudo make
user@host:/tmp/pecl/download/oci8-1.4.1$ sudo make install

Die Extension aktivieren wir in der php.ini, die gewöhnlich unter /etc/php5/apache2/php.ini liegt und ergänzen sie um folgende Zeile: extension=oci8.so
Alternativ kann man auch eine eigene Konfigurationsdatei anlegen unter /etc/php5/conf.d/oci.ini und hier die gleiche Zeile eingeben.
Apache neu starten - fertig.

Zend Core & symfony

Dienstag, Juni 24th, 2008

Unter Ubuntu scheint es Probleme zu geben wenn php auf der Kommandozeile ausführen möchte:

Beim Ausführen von

./symfony init-project PROJECT-NAME

erhielt ich die Fehlermeldung: /usr/bin/env: php: No such file or directory

Der Befehl:

export php=/path/to/php

half nicht.
Ein symbolischer Link löst das Problem:

ln -s /usr/local/Zend/Core/bin/php php
which php

liefert nun auch den entsprechenden Pfad: /usr/bin/php

Pear- und Symfony-Befehle sollten nun endlich konsequent zur Verfügung stehen.