[php] cli + apc_fetch (doctrine)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dag iedereen,

Ik ben wat aan het experimenteren met Doctrine en CodeIgniter. Daarbij volg ik deze tutorial. Tot nu toe ging alles goed maar zit nu al 2 dagen te zoeken naar een oplossing voor een zeer ambetante foutmelding.
Wanneer ik mijn proxies wil laten genereren m.b.v php doctrine-cli orm:generate-proxies krijg ik de volgende foutmelding:

PHP Fatal error: Call to undefined function Doctrine\Common\Cache\apc_fetch() in pad_naar_diezelfde_directory/ApcCache.php on line 60

[...]



Ik heb hier de afgelopen dagen vanalles voor opgezocht en kwam onder andere te weten dat ik de apc module in php nodig had. Deze heb ik dan gedownload van downloads.php.net/pierre en succesvol geïnstalleerd.

Wanneer dit niet bleek te werken ben ik wat verder gaan zoeken en kwam er dan achter dat de cli een andere cache gaat aanspreken: (bron)
Note that the APC cache accessible from PHP running through Apache is not accessible from CLI-PHP (the commandline PHP version). They are 2 different APC caches.

If you are trying for example to run a script from cron that needs to access the same APC cache as your scripts (executed through Apache) with PHP CLI, use file_get_contents to execute the real script or to send over the data.
Doing so executes the script on Apache.
You can also specify a return value in order to move data around.

PHP:
1
2
3
<?PHP
file_get_contents('http://localhost/actual_processing_script.php');
?>
Nu was ik wat verder aan het zoeken naar hoe ik dit kan omzeilen maar kon niet direct iets werkend vinden. Op Stackoverflow stond te lezen dat dit simpelweg niet mogelijk is. Toch nog een beetje verder gezocht en toen kwam ik dit tegen:
Enabling APC for the command line interpreter
We have to add just two lines to the appropriate ini file:
code:
1
2
apc.enabled = 1
apc.enable_cli = 1
Dus dan ook maar even mijn C:\wamp\bin\php\php5.3.8\php.ini en C:\wamp\bin\apache\Apache2.2.21\bin\php.ini aangevuld met:

code:
1
2
3
4
5
6
7
[APC]
apc.enabled = 1
apc.enable_cli = 1
apc.shm_segments = 1
apc.shm_size = 64M
apc.max_file_size = 10M
apc.stat = 1


... maar ook dit blijkt uiteindelijk niet te werken. Nu ben ik dus ten einde raad en kom ik de Tweakerts om hulp vragen.

Misschien moet ik eens proberen om het met file_get_contents() proberen maar ik weet niet goed hoe ik hieraan moet beginnen aangezien ik parameters moet megeven...

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:10
Wordt die APC module überhaupt wel geladen? (Met een extension=... regel in php.ini of zo.)

Wat vindt php -r "phpinfo();" ervan?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Jup de extension wordt geladen. (extension=php_apc.dll)
Wanneer ik phpinfo() open krijg ik het volgende resultaat:

Afbeeldingslocatie: http://i.imgur.com/S20Vs.png

[ Voor 7% gewijzigd door Verwijderd op 20-01-2012 21:33 ]


Acties:
  • 0 Henk 'm!

  • SoulWar1
  • Registratie: Augustus 2004
  • Laatst online: 11-09 22:43
Het kan zijn dat je via de CLI een andere php.ini gebruikt. Controleer eens welke geladen is via de commandline.
code:
1
php -i

Zoeken naar 'Loaded Configuration File'.

[ Voor 18% gewijzigd door SoulWar1 op 21-01-2012 00:49 ]

Know Thyself


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is me gelukt!
Ik had in beide php.ini files dit gezet:

code:
1
2
3
4
5
6
7
[APC]
apc.enabled = 1
apc.enable_cli = 1
apc.shm_segments = 1
apc.shm_size = 64M
apc.max_file_size = 10M
apc.stat = 1


maar was in 1 van de 2 extension=apc.dll vergeten :F

Acties:
  • 0 Henk 'm!

  • --MeAngry--
  • Registratie: September 2002
  • Laatst online: 11:22

--MeAngry--

aka Qonstrukt

Het maakt in dit geval ook niet uit dat APC vanaf de CLI uit een andere cache leest, het probleem was enkel dat de hele functie niet gevonden kon worden, maar dat heb je nu gelukkig opgelost. :)

Tesla Model Y RWD (2024)

Pagina: 1