Bekijk Volledige Versie : PHP extensie probleem
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 ?
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
onder debian is de directory /usr/lib/php5/[datum+versie]/
je kan mysql.so vinden met "locate mysql.so" op de meeste linux dozen
Gebruik CENTOS v5.3 64 bits.
als locate niet werkt kan je ook dit proberen: (kan lang duren)
cd /; find . | grep mysql.so
je kan ook met phpinfo() kijken wat je extention dir is
onder Configuration > PHP Core > extension_dir
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 !
maak php bestand ergens in je webtree met het volgende erin:
<?php phpinfo(); ?>
run het en kijk
onder Configuration > PHP Core > extension_dir
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
volgens een ander forum zou het path:
/usr/lib/php/modules
of voor 64bit
/usr/lib64/php/modules
moeten zijn
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
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
je kan ook error_log aanzetten, meschien dat hij daar wel het volledige path in vermeld
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)
/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...
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
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
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
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 ;-)
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
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.
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 !