Mongodb and MAMP

后端 未结 6 1236
忘了有多久
忘了有多久 2020-12-23 22:40

I am using MAMP and would like to use mongo with PHP. I am stuck because the version of MAMP I\'m using is the latest version I can find, and it\'s running PHP 5.2.11. The

相关标签:
6条回答
  • 2020-12-23 23:13

    For MAMP PRO 2.0.5

    You may compile your own mongo.so (http://m-schmidt.eu/2011/11/06/develop-mongodb-web-apps-with-mamp-under-mac-os-x/) or download compiled (http://www.davidgolding.net/mongodb/installing-mongodb-on-mamp-1-9-5.html). I'd like compile.

    After steps mongo.so don't include to php configuration, because in MAMP PRO php.ini placed in

    /Applications/MAMP PRO/MAMP PRO.app/Contents/Resources

    I using php5.3.6.ini file for my configuration.

    0 讨论(0)
  • 2020-12-23 23:24

    MAMP is now at version 2.2, which comes with PHP v 5.5.3. I managed to get Mongodb working had to jump through a few hoops to get there.

    Start with a clean install of MAMP 2.2, make sure that's working.

    1. I made this the system version of PHP, (not sure if necessary at this stage).

    Find out the default version of php you are using, with the terminal command

    $ which php
    /usr/bin/php
    

    Then back this up

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

    Then create a symlink to the MAMP latest version of php

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

    Check this has been updated

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

    2. Installing 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
    

    Test to make sure mongo is working

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

    Should output some code, ending in 'waiting for connections on port 27017' press Ctrl + C to quit for now.

    3. Now we can create a script to start/stop mongod automatically from the MAMP GUI. This inspiration came from a previous answer, by Alexandru Rada, but didn't quite work how he explained - I think this is to do with being a newer MAMP version.

    In /Applications/MAMP/bin create a file called startMongo.sh and insert the following

    # /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
    

    I also created the mongo tmp folder at /Applications/MAMP/tmp/mongo

    In the same bin directory create a file called stopMongo.sh and insert the following:

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

    Make these files executable

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

    Now update the startApache.sh and stopApache.sh scripts to include our new files respectively.

    Use the Activity Monitor in /Applications/Utilities and search for mongod. When you now start MAMP you should see the process mongod is started. When you stop or quit MAMP you should see this process is automatically killed.

    4. We still need to install the mongo-php driver, which is also a pain. To do this I added the MAMP bin directory to my bash $PATH variable. To do this I had to edit the hidden file ~/.profile - but be aware that your $PATH might be loaded from somewhere else.

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

    Note that each element is separated by a :. Quit terminal and re-open, then $ echo $PATH to check your new directories have been added to the path. You could also try $ which pecl or $ which mongod.

    We still need some extras from PHP php.net download the same php stable version and unzip it. Create the folder 'include' at /Applications/MAMP/bin/php/php5.5.3/include . Drag the unzipped stable version of php to the include folder, and rename it to just 'php'.

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

    Now at last, we can hopefully run

    $ sudo pecl install mongo
    

    5. Now we just need to update our php config file to add the mongo.so extension. Open /Applications/MAMP/bin/php/php5.5.3/conf/php.ini in a text editor, under the 'extensions' section, add in

    extension=mongo.so
    

    Quit and re-open MAMP!

    0 讨论(0)
  • 2020-12-23 23:25

    For MAMP 2.1.2 and PHP 5.4.10

    1. Download MongoDB php driver .

    2. copy mongo.so to

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

      and using 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. open

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

      Find ; Extensions

      add extension=mongo.so

    4. Restart MAMP.


    Above steps will install MongoDB driver 1.2.10.

    To install latest Mongodb driver using PECL

    1. install autoconf using homebrew or Mac Ports

      brew install autoconf
      
    2. Download php 5.4.10 source from php.net.

    3. rename uncompressed php source folder from php-5.4.10 to php and paste it in this folder

      /Applications/MAMP/bin/php/php5.4.10/include/
      
    4. using the terminal open php folder and run ./configure

      cd /Applications/MAMP/bin/php/php5.4.10/include/php/ && ./configure
      
    5. Add MAMP bin to your ~/.bash_profile

      echo "export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH" >> ~/.bash_profile 
      source ~/.bash_profile
      
    6. install latest mongo

      pecl install mongo
      
    7. restart MAMP server :).

    0 讨论(0)
  • 2020-12-23 23:27

    Here's the way I did it and it was fairly simple.

    First, read what Mongo says @ http://www.mongodb.org/display/DOCS/PHP+Language+Center

    When you run sudo pecl install mongo it's going to install it for the standard OSX PHP installation to use, so if for some reason you're using the built-in Apache installation.

    Like you, I like using MAMP. I didn't want to go through figuring how to download Mongo into MAMP, so I just creating a symbolic link in the MAMP PHP Extensions folder and put the extension line in the MAMP php.ini. Restarted MAMP Apache and everything worked beautifully!

    A couple things to note, after installing Mongo, note the extensions folder it installed it into then check MAMP php.ini to see where it has its extensions set to be. You'll notice the ending is very similar.

    0 讨论(0)
  • 2020-12-23 23:28

    Mac OS X 10.6 Snow Leopard (with the newest updates) has PHP 5.3 installed along with Apache.

    You can enable the installed Apache in System Preferences, Sharing, Web Sharing (there is a help icon (?) which shows you details on using the system's web server).

    See also this StackOverflow question:
    Easiest way to activate PHP and MySQL on Mac OS 10.6 (Snow Leopard)?

    0 讨论(0)
  • 2020-12-23 23:32

    Here's a tutorial how to do it: http://www.davidgolding.net/mongodb/installing-mongodb-on-mamp-1-9-5.html

    Post was removed so here's the tutorial:

    Appsolute launched MAMP version 1.9.5 today, so I thought it’d be a great time to add MongoDB to it and improve my NoSQL skills.

    1. Prepare MAMP for MongoDB files

    Create a new folder at Applications/MAMP/db/mongo with three additional subfolders named bin, data, and tmp. Provide these folders with chmod 0755 access permissions. These folders will be the main runtime location for Mongo once MAMP gets it running.

    1. Download MongoDB

    Grab the latest Mac OS install package of MongoDB. My server setup called for OS X 64-bit, version 1.6.5. It’ll have a directory named bin. Drop the files from this folder into the /Applications/MAMP/db/mongo/bin folder you already created.

    1. Download Mongo Driver for PHP

    I’m running PHP 5.3 (why use MongoDB with any earlier version of PHP?), so I’ll need the mongo.so extension to get PHP and Mongo working together. This is available at the MongoDB GitHub repository, under the PHP 5.3 for Mac binary. After unpacking the downloaded file, place the mongo.so extension file in the /Applications/MAMP/bin/php5.3/lib/php/extensions folder.

    Update: An alternative is to place the mongo.so file in the /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626 folder and avoid having to edit the php.ini file. It appears that MAMP 1.9.5 already has the extension=mongo.so line in the extensions block of the php.ini file, even though version 1.9.5 doesn’t come bundled with Mongo. 4. Create Startup Routines for MAMP

    Lastly, you’ll need to create the startup routines so that MAMP will launch Mongo along with MySQL and Apache. Create a new file at /Applications/MAMP/bin/startMongo.sh and place in it the following code:

    # /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
    

    When called, this script will launch Mongo using the MAMP-relative paths rather than Mongo’s system defaults.

    Create another file at /Applications/MAMP/bin/stopMongo.sh and place the shutdown method:

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

    This works like the previous script, except it kills the mongo.pid process, effectively shutting down Mongo.

    To have MAMP automatically call these Mongo startup scripts, open the /Applications/MAMP/bin/start.sh and /Applications/MAMP/bin/stop.sh files, and insert the following lines above the startMysql.sh lines, respectively:

    1 /Applications/MAMP/bin/startMongo.sh

    1 /Applications/MAMP/bin/stopMongo.sh

    Now MAMP will automatically launch Mongo upon startup.

    The only thing left to do is tell PHP to run the mongo.so extension. If you’re running MAMP Pro, edit the php.ini file by selecting File > Edit Template > PHP 5.3 php.ini, otherwise you’ll need to lookup the path the php.ini file from the MAMP startup screen, under “phpInfo” and “Loaded Configuration File.”

    Insert the following line in the php.ini file/template, save the file, then restart MAMP.

    1 extension="/Applications/MAMP/bin/php5.3/lib/php/extensions/mongo.so"

    Mongo should now run in the background on MAMP, which you can connect with from PHP using the main connection routines listed on the PHP site. Welcome to NoSQL on MAMP!

    0 讨论(0)
提交回复
热议问题