PECL extensie installeren (Entropy PHP)
Ik gebruik al sinds gebruime tijd de PHP package van entropy.ch en dat naar volle tevredenheid. Nu loop ik echter tegen een probleem aan bij het installeren van aanvullende PECL extensies.
Ik probeerde via de pecl installer de xdebug extensie te installeren. De installer gaf netjes aan dat de installatie gelukt was en dat ik de regel 'extension=xdebug.so' nog in mijn php.ini op moest nemen. Na ook dit gedaan te hebben (en uiteraard apache herstart te hebben) wordt de xdebug extensie toch niet geladen.
Dingen die ik zeker weet:
- extension_dir is correct ingesteld in php.ini
- xdebug.so is aanwezig in de extension_dir
- xdebug wordt geladen in php.ini
Verder geeft PHP de volgende startup error:
Het lijkt erop dat compilen van de extensie dus wel gelukt is, maar dat het mis gaat bij het laden van de extensie tijdens het starten van de server.
Iemand enig idee waar de fout zou kunnen zitten en hoe ik dit probleem zou kunnen oplossen? Ik was ook al van plan om deze vraag te stellen op het forum van entrophy.ch, maar daar moet de webmaster mijn registratie eerst goedkeuren :-S
ps. De gebruike versie van de package is PHP 5.2.5 beta 6, bij mijn weten de laatste.
Ik probeerde via de pecl installer de xdebug extensie te installeren. De installer gaf netjes aan dat de installatie gelukt was en dat ik de regel 'extension=xdebug.so' nog in mijn php.ini op moest nemen. Na ook dit gedaan te hebben (en uiteraard apache herstart te hebben) wordt de xdebug extensie toch niet geladen.
Dingen die ik zeker weet:
- extension_dir is correct ingesteld in php.ini
- xdebug.so is aanwezig in de extension_dir
- xdebug wordt geladen in php.ini
Verder geeft PHP de volgende startup error:
Code (php)
1
[17-Jun-2008 23:56:12] PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so' - (null) in Unknown on line 0
Het lijkt erop dat compilen van de extensie dus wel gelukt is, maar dat het mis gaat bij het laden van de extensie tijdens het starten van de server.
Iemand enig idee waar de fout zou kunnen zitten en hoe ik dit probleem zou kunnen oplossen? Ik was ook al van plan om deze vraag te stellen op het forum van entrophy.ch, maar daar moet de webmaster mijn registratie eerst goedkeuren :-S
ps. De gebruike versie van de package is PHP 5.2.5 beta 6, bij mijn weten de laatste.
Gesponsorde koppelingen:
Apache in Leopard is 64 bit, zo ook PHP 5.2.5 beta 6. Dus je extensie moet ook in 64 bit worden gecompiled, anders werkt het niet en krijg je die foutmelding.
Blijkbaar compileert hij automatisch naar 32 bit. Je kan de compiler in 64-bit modus forceren door net voor 'configure' en/of 'make' even `export CFLAGS="-arch x86_64"` in dezelfde terminal te typen. De .so die er dan uit komt zou moeten werken.
Ik ben alleen nog op zoek hoe je die CFLAGS automatisch ook binnen PECL kan instellen. Want als dat kan, dan kan je gewoon PECL gebruiken om ze te compileren, en dan wordt het helemaal makkelijk. Geen phpize meer, geen configure of make. Want nu zal je het nog 'met de hand' moeten doen.
Oeh, ik vind net de originele post terug waar ik het zelf vandaan had: http://www.designified.com/blog/article/60/compiling-installing-xdebug-for-php-525-entropych-build-on-os-x-105
Blijkbaar compileert hij automatisch naar 32 bit. Je kan de compiler in 64-bit modus forceren door net voor 'configure' en/of 'make' even `export CFLAGS="-arch x86_64"` in dezelfde terminal te typen. De .so die er dan uit komt zou moeten werken.
Ik ben alleen nog op zoek hoe je die CFLAGS automatisch ook binnen PECL kan instellen. Want als dat kan, dan kan je gewoon PECL gebruiken om ze te compileren, en dan wordt het helemaal makkelijk. Geen phpize meer, geen configure of make. Want nu zal je het nog 'met de hand' moeten doen.
Oeh, ik vind net de originele post terug waar ik het zelf vandaan had: http://www.designified.com/blog/article/60/compiling-installing-xdebug-for-php-525-entropych-build-on-os-x-105
hik!
Gewijzigd op 01/01/1970 01:00:00 door Jelmer rrrr
Thnx Jelmer, dit ga ik eens proberen! Zou deze zelfde methode voor alle andere pecl extensie werken?
Volgens mij wel. Misschien dat het wat lastiger wordt wanneer je extensies hebt die weer andere libs nodig hebben, bijvoorbeeld Imagick. Dat weet ik zo niet. Ik kan me voorstellen dat je dan de afhankelijkheden ook in 64 bit moet compileren.
hik!
Gewijzigd op 01/01/1970 01:00:00 door Jelmer rrrr
Inderdaad, xdebug zonder problemen kunnen installeren. Werkt helemaal top!
Maar goed, dan direct door naar het volgende probleem. De installatie van de fileinfo extensie. Wederom gaat het compilen van de extensie in 32 bit prima, maar uiteraard zal deze versie van fileinfo.so niet geladen worden.
Nadeel is echter dat deze extensie afhankelijk is van de libmagic library die waarschijnlijk ook als 32 bit gecompiled is en dus loopt de compiler vast zodra ik hem in 64 bit modus duw.
De foutmelding die gegeven wordt bij het aanroepen van ./configure:
En dat doet mijn bovenstaande vermoeden alleen maar sterker worden.
De volgende (logische) stap zou waarschijnlijk het als 64bit compilen van de libmagic library zijn, maar ik heb werkelijk geen idee hoe ik dat zou aanpakken. Wellicht dat je een idee hebt hoe ik dit probleem nu zou kunnen tackelen?
Maar goed, dan direct door naar het volgende probleem. De installatie van de fileinfo extensie. Wederom gaat het compilen van de extensie in 32 bit prima, maar uiteraard zal deze versie van fileinfo.so niet geladen worden.
Nadeel is echter dat deze extensie afhankelijk is van de libmagic library die waarschijnlijk ook als 32 bit gecompiled is en dus loopt de compiler vast zodra ik hem in 64 bit modus duw.
De foutmelding die gegeven wordt bij het aanroepen van ./configure:
Code (php)
1
2
2
checking for magic_open in -lmagic... no
configure: error: wrong magic lib version or lib not found
configure: error: wrong magic lib version or lib not found
En dat doet mijn bovenstaande vermoeden alleen maar sterker worden.
De volgende (logische) stap zou waarschijnlijk het als 64bit compilen van de libmagic library zijn, maar ik heb werkelijk geen idee hoe ik dat zou aanpakken. Wellicht dat je een idee hebt hoe ik dit probleem nu zou kunnen tackelen?
Via macports kan je redelijk gemakkelijk dat soort libs binnen halen en compileren. Als je in de handleiding zoekt op x86_64 komt je bij dit config-bestandje uit waarin de universal_archs parameter staat. Misschien werkt het wanneer je hier x86_64 aan toevoegt, en libmagic opnieuw compileert en installeert.
edit: zie ook deze thread: http://www.mail-archive.com/macports-users@lists.macosforge.org/msg01183.html
edit: zie ook deze thread: http://www.mail-archive.com/macports-users@lists.macosforge.org/msg01183.html
Gewijzigd op 01/01/1970 01:00:00 door Jelmer rrrr
Hmm, het wil toch nog niet echt lukken...
Allereerst de macports.conf aangepast en de volgende regel toegevoegd:
Vervolgens met behulp van macports file-4.23, waar libmagic in zit, geinstalleerd. De standaard locatie waar de files kwamen te staan was /opt/local/lib.
Tijdens configure van fileinfo wordt er echter naar de libraries in /usr/local/lib gekeken. Geprobeerd om dat te wijzigen via de opties --libdir en --with-libdir, maar beide geen succes. Toen maar de libraries uit /opt/local/lib gekopieerd en configure nogmaals uitgevoerd in 64 bit modus.
Toen kreeg ik precies dezelfde melding als in mijn vorige post. Echter, normaal uitvoeren van configure (dus als 32 bit) werkt wel prima, de met macports geƮnstalleerde libs voldoen dan wel.
Allereerst de macports.conf aangepast en de volgende regel toegevoegd:
Vervolgens met behulp van macports file-4.23, waar libmagic in zit, geinstalleerd. De standaard locatie waar de files kwamen te staan was /opt/local/lib.
Tijdens configure van fileinfo wordt er echter naar de libraries in /usr/local/lib gekeken. Geprobeerd om dat te wijzigen via de opties --libdir en --with-libdir, maar beide geen succes. Toen maar de libraries uit /opt/local/lib gekopieerd en configure nogmaals uitgevoerd in 64 bit modus.
Toen kreeg ik precies dezelfde melding als in mijn vorige post. Echter, normaal uitvoeren van configure (dus als 32 bit) werkt wel prima, de met macports geƮnstalleerde libs voldoen dan wel.
Even een bumpje, ik ben er nog niet achter hoe ik dit voor elkaar zou kunnen krijgen...
Wellicht nog iemand die hier een antwoord op weet?



