PDA

Bekijk Volledige Versie : PHP extensie probleem



askmurphy
14/10/09, 22:10
Probeer APC (cache) aan de praat te krijgen, is gecompileerd en de extensie moet alleen nog geladen worden door php.
Alleen dat werkt nog niet.


nano -w /var/log/httpd/error_log geeft dit als laatste:

PHP Warning: PHP Startup: Unable to load dynamic library './memcache.so' - ./memcache.so: cannot open shared object file: No such file or directory in Unknown on line 0


php -i | grep php.ini geeft dit;

Configuration File (php.ini) Path => /usr/local/lib
Loaded Configuration File => /usr/local/lib/php.ini

[root@server01 lib]#

Heb dit in /usr/local/lib/php.ini staan:

; Directory in which the loadable extensions (modules) reside.
extension_dir = "./"

; Dynamic Extensions ;
extension=memcache.so

In /usr/local/lib staat de file memcache.so

Wie kan vertellen vertellen waarom het niet werkt ?

PreServer
14/10/09, 22:24
Het is duidelijk dat de locatie van waar je memcache.so gezet heb niet goed is, zoek anders eens naar de file mysql.so (of mysqli.so) en zet hem in die directory.

het helpt ook als je hier je besturings systeem neerzet

PreServer
14/10/09, 22:26
onder debian is de directory /usr/lib/php5/[datum+versie]/

PreServer
14/10/09, 22:27
je kan mysql.so vinden met "locate mysql.so" op de meeste linux dozen

askmurphy
14/10/09, 22:27
Gebruik CENTOS v5.3 64 bits.

PreServer
14/10/09, 22:28
als locate niet werkt kan je ook dit proberen: (kan lang duren)

cd /; find . | grep mysql.so

PreServer
14/10/09, 22:30
je kan ook met phpinfo() kijken wat je extention dir is
onder Configuration > PHP Core > extension_dir

askmurphy
14/10/09, 22:31
locate mysql.so geeft dit:

/var/lib/mysql/mysql.sock


Maar waar moet memcache.so nu staan ?
Er wordt verwezen naar ./ (huidige folder), maar hoe kom ik
er achter welke dat is ?

Alvast bedankt voor de hulp !

PreServer
14/10/09, 22:32
maak php bestand ergens in je webtree met het volgende erin:

<?php phpinfo(); ?>

run het en kijk

onder Configuration > PHP Core > extension_dir

PreServer
14/10/09, 22:34
als daar ook ./ of geen volledig path staat moet je even de url naar dat phpinfo bestand geven dan kan ik even kijken hoe php geconfigureerd is, centos heb ik weinig ervaring mee

PreServer
14/10/09, 22:37
volgens een ander forum zou het path:

/usr/lib/php/modules

of voor 64bit
/usr/lib64/php/modules

moeten zijn

PreServer
14/10/09, 22:39
Probeer APC (cache) aan de praat te krijgen, is gecompileerd en de extensie moet alleen nog geladen worden door php.
Alleen dat werkt nog niet.

*snip*

php -i | grep php.ini geeft dit;

Configuration File (php.ini) Path => /usr/local/lib
Loaded Configuration File => /usr/local/lib/php.ini


php command line / cli hoeft niet dezelfde versie te zijn als je de php die je webserver gebruikt, ook kunnen ze verschillende configuraties hebben, vandaar dat ik vraag om een phpinfo(); vanuit de webserver

askmurphy
14/10/09, 22:44
Ok, momentje ;-)

PreServer
14/10/09, 23:02
probeer is
cd \; find . | grep -iE ioncube.*?\.so
dat is een van de weinige extenties die je hebt waarvan ik zeker weet dat het een module is

PreServer
14/10/09, 23:04
je kan ook error_log aanzetten, meschien dat hij daar wel het volledige path in vermeld

PreServer
14/10/09, 23:05
je zou ook gewoon een volledig path in extension_dir kunnen zetten, maar dan krijg je wel problemen met andere extenties (in dit geval bijv ioncube)

askmurphy
14/10/09, 23:07
/usr/local/lib/ioncube_loader_lin_5.2.so

In die map had ik memcache.so al gezet, httpd herstart maar php kan
de extensie toch niet vinden ???

Misschien dat Randy nog een tip heeft als centos kenner ?

Ben al een paar dagen bezig....veel op gegoogled...

PreServer
14/10/09, 23:09
btw heb je wel eens gekeken naar naar xcache? die vind ik zelf erg goed, ik weet niet meer precies het verschil tussen apc en xcache maar ik heb ze in het verleden allebei gebruikt en ben toen van apc overgestapt naar xcache

PreServer
14/10/09, 23:11
vond die maar 1 ioncube loader? meestal heb je er 2 (1 voor 32bit en 1 voor 64bit) meestal staan die ook in verschillende directories

PreServer
14/10/09, 23:13
btw wat is je ServerRoot van apache? ik meen me ook te herinneren dat php vaf die directory relative paths ging doen, ik heb er in het verleden iig ook wel eens problemen mee gehad

askmurphy
14/10/09, 23:30
Als ik in /usr/local/lib/php.ini dit aanpas:

; Directory in which the loadable extensions (modules) reside.
extension_dir = "./"

in:

extension_dir = "/usr/local/lib/modules"

en die module in die map zet en httpd weer herstart dan wordt memcache (APC) netjes geladen, de rest lijkt ook allemaal goed te werken.

Toch zou ik graag willen weten waar die "./" nu eigenlijk naar verwijst (current map, maar welke is dat dan ?)

In elk geval bedankt allemaal voor de hulp !

Zal een howto voor de memcache installatie bij centos v5.3 maken en hier posten,
dan hebben anderen er ook misschien wat aan ;-)

PreServer
14/10/09, 23:40
Mooi dat het iig nu goed werkt (check wel nog even of ioncube ook nog geladen word die stond namelijk een directory hoger)

over je (prive) vraag over xcache:

het beste kan ik je verwijzen naar http://xcache.lighttpd.net/ het is net zo iets als apc (opcode cacher) maar er zit ook gelijk een optimizer in. In het verleden heb ik veel problemen gehad met apc dat die stopte met werken of vage errors gaf (vooral bij classes)
ik gebruik het nu ook vooral om dat het standaart in debian zit en je apc moet steeds moet compilen

askmurphy
14/10/09, 23:54
vond die maar 1 ioncube loader? meestal heb je er 2 (1 voor 32bit en 1 voor 64bit) meestal staan die ook in verschillende directories

Ja hoor, heb die er zelf in gezet.
Is een 64bits centos versie, dus 32bits is dan niet nodig.

askmurphy
14/10/09, 23:55
Mooi dat het iig nu goed werkt (check wel nog even of ioncube ook nog geladen word die stond namelijk een directory hoger)

over je (prive) vraag over xcache:

het beste kan ik je verwijzen naar http://xcache.lighttpd.net/ het is net zo iets als apc (opcode cacher) maar er zit ook gelijk een optimizer in. In het verleden heb ik veel problemen gehad met apc dat die stopte met werken of vage errors gaf (vooral bij classes)
ik gebruik het nu ook vooral om dat het standaart in debian zit en je apc moet steeds moet compilen

ioncube werkt nog, wordt als zend_extension geladen in php.ini ;-)

Zal zeker even naar xcache kijken !