2013-02-08 13 views
10

Ho installato il file binario memcached in Windows 7 e l'ho avviato come server.Come installare e usare memcached in Windows per PHP?

Quando si digita il processo wmic, ottenere la descrizione, exetuablepath | findstr memcached.exe ottengo la risposta: memcached.exe c: \ memcached \ memcached.exe sulla riga di comando.

Quando provo l'esecuzione del codice di esempio su php.net, salgo sul mio browser:

Fatal error: Framework \ index.php \ DocumentRoot \ sulla linea 3: Classe 'Memcache' non trovato in C Stack di chiamate: 0.0010 335928 1. {main}() C: \ DocumentRoot \ Framework \ index.php: 0

Quindi, cosa sto facendo di sbagliato? Sto usando memcache.dll dal momento che memcached.dll non esiste per Windows credo?

+2

Spero che tu abbia abilitato l'estensione! :) – Venu

+0

Ho .. Ancora senza fortuna. Quale dll dovrei scaricare esattamente? –

+0

sei sicuro che l'estensione sia stata caricata? controlla 'phpinfo()' e controlla se è elencato. –

risposta

4

Questo è per i futuri visitatori!

  1. controllare phpinfo() e vedere se è elencato.
  2. In caso contrario, controllare se l'estensione è abilitata in php.ini e quindi controllare i log degli errori di apache per il messaggio di errore ! dll deve essere rispettato con lo stesso compilatore del php . (VC9 o VC6) btw, memcache.dll va bene

è possibile ottenere l'estensione php "memcache", per usare memcached con PHP su Windows qui http://downloads.php.net/pierre/

Memcached è il demone del server e si può ottenere per Windows qui http://splinedancer.com/memcached-win32/

+12

Tutti i collegamenti sembrano essere interrotti: | – Gigala

2

In base ai commenti, presumo che tu non abbia scaricato e installato memcached, ma abbia installato correttamente il modulo memcached per PHP. Fondamentalmente, hai le chiavi della macchina, ma non hai la macchina.

memcached è progettato per Linux, ma è stato portato da altri a Windows. Questo tutorial è vecchio, ma potrebbe essere quello che stai cercando: http://www.codeforest.net/how-to-install-memcached-on-windows-machine

12

Una nota per tutti coloro che si imbattono in problemi con ottenere memcached lavorando su Windows.

  • Per i principianti assicurarsi di disporre della versione corretta della dc memcached e che sia accessibile. C'è una vasta selezione disponibile a http://windows.php.net/downloads/pecl/releases/memcache/3.0.8/ e è fin troppo facile scegliere la versione errata di memcached!.
  • Se si utilizza PHP 5.5, è necessario anche php5.dll. È possibile ottenere questo here
  • Potrebbe essere necessario modificare le impostazioni PATH ambiente in modo che questa DLL possa essere trovata. Vai a Risorse del computer-> Proprietà-> avanzato e fai clic su Variabili d'ambiente per visualizzare/modificare il percorso. È necessario riavviare il computer se si modifica questo.
  • Verificare che il server memcached sia installato. Ctrl + Alt + Canc e controlla che memcached sia presente nell'elenco dei servizi
  • Se non è necessario per * installalo dal prompt Cmd esegui come amministratore (dal menu di avvio, scegli accessori, fai clic su prompt dei comandi e scegliere di eseguire come amministratore) c: \ pathtomemcached \ memcached.exe -d install
  • seguire questo con c: \ pathtomemcached \ memcached.exe -d start o net start "memcached Server". Sulla mia installazione ex non funziona
  • Allo stesso modo io sono in grado di avviare memcached dalla scheda Servizi del Task Manager
  • E 'utile per essere in grado di giocare con memcached ad un basso livello in modo enable telnet, se richiesto, e dal prompt dei comandi digitare telnet. Ora apri la porta 11211 e prova ad usare memcached
  • È anche utile essere in grado di tenere sotto controllo ciò che sta accadendo in memcached. phpMemCacheAdmin è di gran lunga lo strumento migliore per il lavoro
+0

Penso che questo: ** "è fin troppo facile scegliere quello sbagliato" ** può essere in grassetto in questa risposta. Ho perso TUTTO il giorno a causa della scelta della versione sbagliata. Voglio anche aggiungere che è MOLTO importante avere la corrispondenza ** 86x/64x ** WAMP e la versione memcache.dll E WAMP compilato VC6/VC9 e corrispondente ** VC6/VC9 ** versione di memcache.dll. Ho WAMP VC9 e stavo usando memcache.dll VC6, ecco perché non era lavoro. – Rob

+0

@Rob - Buon punto! Ho modificato la risposta e evidenziato i bit importanti della risposta. – DroidOS

+0

Per determinare se utilizzare Thread Safe o Non Thread Safe, questo mi ha aiutato: http://stackoverflow.com/a/5800346/470749 – Ryan