Einträge mit Schlagwort ‘pecl’

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.

pecl & phpize-Errors unter Ubuntu 9.04

Montag, September 28th, 2009

Änderungen an Libtool stehen im direkten Zusammenhang mit Fehlermeldungen beim Installieren von PHP Extensions aus dem Pecl Repository. Dies außert sich im Beispiel von APC (oder auch oci8) folgendermaßen:

downloading APC-3.0.19.tgz ...
Starting to download APC-3.0.19.tgz (115,735 bytes)
.................done: 115,735 bytes
47 source files, building
running: phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
configure.in:158: warning: LTOPTIONS_VERSION is m4_require'd but not m4_defun'd
aclocal.m4:2943: LT_INIT is expanded from...
aclocal.m4:2978: AC_PROG_LIBTOOL is expanded from...
configure.in:158: the top level
configure.in:158: warning: LTSUGAR_VERSION is m4_require'd but not m4_defun'd
configure.in:158: warning: LTVERSION_VERSION is m4_require'd but not m4_defun'd
configure.in:158: warning: LTOBSOLETE_VERSION is m4_require'd but not m4_defun'd
configure:6197: error: possibly undefined macro: m4_ifval
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure:8806: error: possibly undefined macro: _LT_SET_OPTIONS
configure:8806: error: possibly undefined macro: LT_INIT
ERROR: `phpize' failed

Problem:

Seit Libtool Version 2.2 wurden diverse Macros in mehrere Dateien gesplittet und somit vermisst das phpize eigene Build-Script build/libtool.m4 autoconf Definitionen und ist somit nicht mehr lauffähig.

Lösung (unter root):

root@host:/usr/share/aclocal cat lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 >> libtool.m4

Quelle: https://bugs.launchpad.net/ubuntu/+source/php5/+bug/262251