Mongodb e MAMP

Sto usando MAMP e vorrei usare mongo con PHP. Sono bloccato perché la versione di MAMP che sto usando è l'ultima versione che riesco a trovare, ed è in esecuzione PHP 5.2.11. L'unica installazione Mongo PHP che posso trovare per OSX è per PHP 5.3.

C'è un modo per far funzionare Mongo con PHP usando MAMP?

Per MAMP 2.1.2 e PHP 5.4.10

  1. Scarica il driver php MongoDB.

  2. copia mongo.so a

    /Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/ 

    e usando Temrinal

     cd /Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/ && wget https://github.com/downloads/stennie/mongo-php-driver/mongo.so 
  3. Aperto

     /Applications/MAMP/bin/php/php5.4.10/conf/php.ini 

    Trova ; Extensions ; Extensions

    aggiungi extension=mongo.so

  4. Riavvia MAMP.


I passaggi precedenti installeranno il driver MongoDB 1.2.10.

Per installare l'ultimo driver Mongodb utilizzando PECL

  1. installa autoconf usando homebrew o porte Mac

     brew install autoconf 
  2. Scarica php 5.4.10 fonte da php.net .

  3. rinomina la cartella di origine php non compressa da php-5.4.10 a php e incollala in questa cartella

     /Applications/MAMP/bin/php/php5.4.10/include/ 
  4. usando il terminal apri la cartella php ed esegui ./configure

     cd /Applications/MAMP/bin/php/php5.4.10/include/php/ && ./configure 
  5. Aggiungi il cestino MAMP al tuo ~/.bash_profile

     echo "export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH" >> ~/.bash_profile source ~/.bash_profile 
  6. installa l'ultimo mongo

     pecl install mongo 
  7. riavviare il server MAMP :).

Ecco un tutorial su come farlo: http://www.davidgolding.net/mongodb/installing-mongodb-on-mamp-1-9-5.html

Il post è stato rimosso, quindi ecco il tutorial:

Appsolute ha lanciato oggi MAMP versione 1.9.5, quindi ho pensato che sarebbe stato un buon momento per aggiungere MongoDB e migliorare le mie competenze NoSQL.

  1. Preparare MAMP per i file MongoDB

Crea una nuova cartella in Applicazioni / MAMP / db / mongo con tre sottocartelle aggiuntive denominate bin, data e tmp. Fornire queste cartelle con le autorizzazioni di accesso chmod 0755. Queste cartelle saranno la posizione di runtime principale per Mongo dopo che MAMP lo ha eseguito.

  1. Scarica MongoDB

Scarica l'ultimo pacchetto di installazione Mac OS di MongoDB. La configuration del mio server richiedeva OS X 64-bit, versione 1.6.5. Avrà una directory chiamata bin. Trascina i file da questa cartella nella cartella / Applicazioni / MAMP / db / mongo / bin che hai già creato.

  1. Scarica Mongo Driver per PHP

Sto usando PHP 5.3 (perché usare MongoDB con qualsiasi versione precedente di PHP?), Quindi avrò bisogno dell'estensione mongo.so per far funzionare PHP e Mongo insieme. Questo è disponibile nel repository GitHub MongoDB, sotto PHP 5.3 per Mac binario. Dopo aver decompresso il file scaricato, posiziona il file di estensione mongo.so nella cartella /Applications/MAMP/bin/php5.3/lib/php/extensions.

Aggiornamento: un'alternativa è posizionare il file mongo.so nella cartella /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626 ed evitare di wherer modificare php.ini file. Sembra che MAMP 1.9.5 abbia già l'estensione = mongo.so line nel block delle estensioni del file php.ini, anche se la versione 1.9.5 non è inclusa in bundle con Mongo. 4. Creare le routine di avvio per MAMP

Infine, dovrai creare le routine di avvio in modo che MAMP avvii Mongo insieme a MySQL e Apache. Crea un nuovo file in /Applications/MAMP/bin/startMongo.sh e inserisci il seguente codice:

 # /bin/sh /Applications/MAMP/db/mongo/bin/mongod --dbpath /Applications/MAMP/db/mongo/data --logpath /Applications/MAMP/db/mongo/mongodb.log --pidfilepath /Applications/MAMP/db/mongo/tmp/mongo.pid --fork --logappend 

Quando chiamato, questo script avvierà Mongo usando i routes relativi a MAMP piuttosto che i default di sistema di Mongo.

Crea un altro file in /Applications/MAMP/bin/stopMongo.sh e posiziona il metodo shutdown:

 # /bin/sh /bin/kill `cat /Applications/MAMP/db/mongo/tmp/mongo.pid` 

Funziona come lo script precedente, tranne che uccide il process mongo.pid, chiudendo effettivamente Mongo.

Per fare in modo che MAMP chiami automaticamente questi script di avvio di Mongo, apri i file /Applications/MAMP/bin/start.sh e /Applications/MAMP/bin/stop.sh e inserisci le seguenti righe sopra le linee startMysql.sh, rispettivamente:

1 /Applications/MAMP/bin/startMongo.sh

1 /Applications/MAMP/bin/stopMongo.sh

Ora MAMP avvierà automaticamente Mongo all'avvio.

L'unica cosa che rimane da fare è dire a PHP di eseguire l'estensione mongo.so. Se stai usando MAMP Pro, modifica il file php.ini selezionando File> Modifica model> PHP 5.3 php.ini, altrimenti dovrai cercare il path del file php.ini dalla schermata di avvio di MAMP, sotto "phpInfo" "E" File di configuration caricato ".

Inserire la seguente row nel file php.ini / template, salvare il file, quindi riavviare MAMP.

1 estensione = "/ Applicazioni / MAMP / bin / php5.3 / lib / php / extensions / mongo.so"

Mongo dovrebbe ora essere eseguito in background su MAMP, che puoi connettere da PHP usando le routine di connessione principali elencate sul sito PHP. Benvenuto in NoSQL su MAMP!

Mac OS X 10.6 Snow Leopard (con gli aggiornamenti più recenti) ha PHP 5.3 installato insieme ad Apache.

È ansible abilitare Apache installato in Preferenze di Sistema, Condivisione, Condivisione Web (c'è un'icona di aiuto ( ? ) Che mostra i dettagli sull'utilizzo del server Web del sistema).

Vedi anche questa domanda StackOverflow:
Il modo più semplice per triggersre PHP e MySQL su Mac OS 10.6 (Snow Leopard)?

MAMP è ora alla versione 2.2, che viene fornito con PHP v 5.5.3. Sono riuscito a far funzionare Mongodb wherendo fare qualche salto per arrivarci.

Inizia con un'installazione pulita di MAMP 2.2, assicurati che funzioni.

1. Ho reso questa la versione di sistema di PHP, (non sono sicuro se necessario in questa fase).

Scopri la versione predefinita di php che stai utilizzando, con il command del terminal

 $ which php /usr/bin/php 

Quindi torna indietro

 $ sudo mv /usr/bin/php /usr/bin/php.bak 

Quindi creare un collegamento simbolico all'ultima versione di PHP di Mp

 $ sudo ln -s /Applications/MAMP/bin/php/php5.5.3/bin/php /usr/bin/php 

Verifica che questo è stato aggiornato

 $ which php /Applications/MAMP/bin/php/php5.5.3/bin/php 

2. Installazione di Mongo

 $ cd /Applications/MAMP/db $ curl http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.4.6.tgz > mongodb.tgz $ tar -zxvf mongodb.tgz $ rm mongodb.tgz $ mv mongodb* mongo $ mkdir mongo/data/db 

Prova a verificare che mongo stia funzionando

 $ ./mongo/bin/mongod --dbpath /Applications/MAMP/db/mongo/data/db 

Dovresti produrre un codice, terminando con 'waiting for connections on port 27017' premi Ctrl + C per uscire ora.

3. Ora possiamo creare uno script per avviare / fermare automaticamente mongod dalla GUI MAMP. Questa ispirazione è venuta da una precedente risposta, di Alexandru Rada, ma non ha funzionato come ha spiegato – penso che questo abbia a che fare con l'essere una versione MAMP più recente.

In /Applications/MAMP/bin crea un file chiamato startMongo.sh e inserisce quanto segue

 # /bin/sh /Applications/MAMP/db/mongo/bin/mongod --dbpath /Applications/MAMP/db/mongo/data/db --logpath /Applications/MAMP/logs/mongodb.log --pidfilepath /Applications/MAMP/tmp/mongo/mongo.pid --fork --logappend 

Ho anche creato la cartella mongo tmp in /Applications/MAMP/tmp/mongo

Nella stessa directory bin creare un file chiamato stopMongo.sh e inserire quanto segue:

 # /bin/sh /bin/kill `cat /Applications/MAMP/tmp/mongo/mongo.pid` 

Rendi questi file eseguibili

 $ chmod 775 /Applications/MAMP/bin/startMongo.sh /Applications/MAMP/bin/stopMongo.sh 

Ora aggiorna gli script startApache.sh e stopApache.sh per includere rispettivamente i nostri nuovi file.

Usa il monitor delle attività in / Applicazioni / Utility e cerca mongod . Quando avvii ora MAMP dovresti vedere il process di mongod . Quando interrompi o esci da MAMP dovresti vedere questo process viene automaticamente ucciso.

4. Abbiamo ancora bisogno di installare il driver mongo-php, che è anche un dolore. Per fare questo ho aggiunto la directory bin MAMP alla mia variabile bash $ PATH. Per fare questo ho dovuto modificare il file nascosto ~/.profile – ma attenzione che il tuo $ PATH potrebbe essere caricato da qualche altra parte.

 export PATH=$PATH:/Applications/MAMP/bin/php/php5.5.3/bin:/Applications/MAMP/db/mongo/bin 

Nota che each elemento è separato da : Chiudere il terminal e riaprire, quindi $ echo $PATH per verificare che le nuove directory siano state aggiunte al path. Puoi anche provare $ which pecl o $ which mongod .

Abbiamo ancora bisogno di alcuni extra da PHP php.net per scaricare la stessa versione stabile di php e decomprimerla. Crea la cartella 'include' in /Applications/MAMP/bin/php/php5.5.3/include. Trascina la versione stabile decompressa di php nella cartella include e rinominala in "php".

 $ cd /Applications/MAMP/bin/php/php5.5.3/include/php $ ./configure 

Ora finalmente possiamo sperare di scappare

 $ sudo pecl install mongo 

5. Ora abbiamo solo bisogno di aggiornare il nostro file di configuration php per aggiungere l'estensione mongo.so. Apri /Applicazioni/MAMP/bin/php/php5.5.3/conf/php.ini in un editor di text, sotto la sezione "estensioni", aggiungi

 extension=mongo.so 

Chiudi e riapri MAMP!

Ecco come l'ho fatto ed è stato abbastanza semplice.

Per prima cosa, leggi cosa dice Mongo @ http://www.mongodb.org/display/DOCS/PHP+Language+Center

Quando esegui sudo pecl install mongo lo installerà per l'installazione standard di OSX PHP da utilizzare, quindi se per qualche motivo stai usando l'installazione di Apache integrata.

Come te, mi piace usare MAMP. Non volevo capire come scaricare Mongo in MAMP, quindi ho appena creato un link simbolico nella cartella MAMP PHP Extensions e ho inserito la linea di estensione nel php.ini di MAMP. Riavviato MAMP Apache e tutto ha funzionato magnificamente!

Un paio di cose da notare, dopo aver installato Mongo, nota la cartella delle estensioni in cui è installato, quindi controlla il php.ini MAMP per vedere where ha le sue estensioni impostate. Noterai che il finale è molto simile.

Per MAMP PRO 2.0.5

Puoi compilare il tuo mongo.so ( http://m-schmidt.eu/2011/11/06/develop-mongodb-web-apps-with-mamp-under-mac-os-x/ ) o scaricare compilato ( http://www.davidgolding.net/mongodb/installing-mongodb-on-mamp-1-9-5.html ). Mi piacerebbe compilare.

Dopo i passaggi mongo.so non include la configuration php, perché in MAMP PRO è stato inserito php.ini

/ Applicazioni / MAMP PRO / MAMP PRO.app/Contents/Resources

Utilizzo il file php5.3.6.ini per la mia configuration.