Mongodb и MAMP - PullRequest
       38

Mongodb и MAMP

17 голосов
/ 22 сентября 2010

Я использую MAMP и хотел бы использовать mongo с PHP.Я застрял, потому что версия MAMP, которую я использую, является последней версией, которую я могу найти, и она работает на PHP 5.2.11.Единственная установка Mongo PHP, которую я могу найти для OSX , предназначена для PHP 5.3.

Есть ли способ заставить Монго работать с PHP, используя MAMP?

Ответы [ 6 ]

29 голосов
/ 20 марта 2013

Для MAMP 2.1.2 и PHP 5.4.10

  1. Скачать драйвер MongoDB php.

  2. копия mongo.so до

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

    и использование темринального

    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. открыто

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

    Найти ; Extensions

    добавить extension=mongo.so

  4. Перезапустить MAMP.


Вышеуказанные шаги установят драйвер MongoDB 1.2.10.

Чтобы установить последний драйвер Mongodb, используя PECL

  1. install autoconf используя домашние порты или порты Mac

    brew install autoconf
    
  2. Загрузите источник php 5.4.10 с php.net .

  3. переименуйте несжатую исходную папку php из php-5.4.10 в php и вставьте ее в эту папку

    /Applications/MAMP/bin/php/php5.4.10/include/
    
  4. с помощью открытого терминалаПапка php и запустите ./configure

    cd /Applications/MAMP/bin/php/php5.4.10/include/php/ && ./configure
    
  5. Добавьте MAMP bin в вашу ~/.bash_profile

    echo "export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH" >> ~/.bash_profile 
    source ~/.bash_profile
    
  6. установите последнюю версию

    pecl install mongo
    
  7. перезапустить сервер MAMP:).

6 голосов
/ 02 апреля 2012

Вот учебник, как это сделать: http://www.davidgolding.net/mongodb/installing-mongodb-on-mamp-1-9-5.html

Пост был удален, поэтому вот учебник:

Appsolute запустил MAMP версии 1.9.5 сегодня, так что я подумал, что это будетпрекрасное время, чтобы добавить MongoDB и улучшить мои навыки работы с NoSQL.

  1. Подготовить MAMP для файлов MongoDB

Создать новую папку в Applications / MAMP / db / mongo с помощьютри дополнительные подпапки с именами bin, data и tmp.Предоставьте этим папкам права доступа chmod 0755.Эти папки станут основным местом выполнения Mongo после запуска MAMP.

  1. Загрузить MongoDB

Получить последний установочный пакет Mac OS для MongoDB.Моя настройка сервера требовала OS X 64-bit, версия 1.6.5.Там будет каталог с именем bin.Перетащите файлы из этой папки в папку / Applications / MAMP / db / mongo / bin, которую вы уже создали.

  1. Загрузить драйвер Mongo для PHP

Я работаюPHP 5.3 (зачем использовать MongoDB с любой более ранней версией PHP?), Поэтому мне понадобится расширение mongo.so для совместной работы PHP и Mongo.Это доступно в репозитории MongoDB GitHub в бинарном файле PHP 5.3 для Mac.После распаковки загруженного файла поместите файл расширения mongo.so в папку /Applications/MAMP/bin/php5.3/lib/php/extensions.

Обновление: альтернативой является размещение mongo.soфайл в папке /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626 и избегайте необходимости редактировать файл php.ini.Похоже, что MAMP 1.9.5 уже имеет строку extension = mongo.so в блоке расширений файла php.ini, хотя версия 1.9.5 не поставляется в комплекте с Mongo.4. Создайте процедуры запуска для MAMP

Наконец, вам нужно создать процедуры запуска, чтобы MAMP запускал Mongo вместе с MySQL и Apache.Создайте новый файл в /Applications/MAMP/bin/startMongo.sh и поместите в него следующий код:

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

При вызове этот скрипт запускает Mongo, используя относительные пути MAMP, а не систему Mongo.значения по умолчанию.

Создайте другой файл в /Applications/MAMP/bin/stopMongo.sh и поместите метод отключения:

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

Это работает как предыдущий скрипт, за исключением того, что убивает монго.процесс pid, эффективно закрывающий Mongo.

Чтобы MAMP автоматически вызывал эти сценарии запуска Mongo, откройте файлы /Applications/MAMP/bin/start.sh и /Applications/MAMP/bin/stop.sh ивставьте следующие строки над строками startMysql.sh соответственно:

1 /Applications/MAMP/bin/startMongo.sh

1 /Applications/MAMP/bin/stopMongo.sh

Теперь MAMP автоматически запустит Mongo при запуске.

Осталось только сказать PHP запустить расширение mongo.so.Если вы работаете с MAMP Pro, отредактируйте файл php.ini, выбрав «Файл»> «Редактировать шаблон»> PHP 5.3 php.ini, в противном случае вам нужно будет найти путь к файлу php.ini на экране запуска MAMP в разделе «phpInfo».»И« Загруженный файл конфигурации ».

Вставьте следующую строку в файл / шаблон php.ini, сохраните файл и перезапустите MAMP.

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

Mongo теперь должен работать в фоновом режиме на MAMP, к которому вы можете подключиться из PHP, используя основные процедуры подключения, перечисленные на сайте PHP.Добро пожаловать в NoSQL на MAMP!

3 голосов
/ 09 октября 2013

MAMP теперь в версии 2.2, которая поставляется с PHP v 5.5.3.Мне удалось заставить Mongodb работать, пришлось прыгнуть через несколько обручей, чтобы добраться туда.

Начните с чистой установки MAMP 2.2, убедитесь, что она работает.

1. Я сделал это системной версией PHP (не уверен, если это необходимо на данном этапе).

Найдите версию php по умолчанию, которую вы используете, с помощью команды терминала

$ which php
/usr/bin/php

Затем сделайте резервную копию

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

Затем создайте символическую ссылку на последнюю версию MAMP php

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

Проверьте, что это было обновлено

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

2. Установка 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

Тест, чтобы убедиться, что mongo работает

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

Должен вывести некоторый код, заканчивающийся 'waiting for connections on port 27017', нажмите Ctrl + C, чтобы выйти сейчас.

3. Теперь мы можем создать скрипт для автоматического запуска / остановки mongod из графического интерфейса MAMP.Это вдохновение пришло из предыдущего ответа Александра Рада, но он не совсем сработал, как он объяснил - я думаю, что это связано с тем, чтобы быть более новой версией MAMP.

В /Applications/MAMP/bin создайте файл с именем startMongo.sh и вставьте следующее

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

Я также создал папку mongo tmp в /Applications/MAMP/tmp/mongo

В том же каталоге bin создайте файл с именем stopMongo.sh и вставьте следующее:

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

Сделайте эти файлы исполняемыми

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

Теперь обновите сценарии startApache.sh и stopApache.sh, чтобы они включали наши новые файлы соответственно.

Используйте Монитор активности в/ Приложения / Утилиты и поиск mongod.Когда вы сейчас запустите MAMP, вы увидите, что процесс mongod запущен.Когда вы останавливаете или выходите из MAMP, вы должны видеть, что этот процесс автоматически убивается.

4. Нам все еще нужно установить драйвер mongo-php, что также является проблемой.Для этого я добавил каталог bin MAMP в мою переменную bash $ PATH.Для этого мне пришлось отредактировать скрытый файл ~/.profile - но помните, что ваш $ PATH может быть загружен откуда-то еще.

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

Обратите внимание, что каждый элемент отделен :.Выйдите из терминала и снова откройте, затем $ echo $PATH, чтобы проверить, что ваши новые каталоги были добавлены в путь.Вы также можете попробовать $ which pecl или $ which mongod.

Нам все еще нужны некоторые дополнения из PHP php.net скачать ту же самую стабильную версию php и распаковать ее.Создайте папку «include» в /Applications/MAMP/bin/php/php5.5.3/include.Перетащите разархивированную стабильную версию php в папку include и переименуйте ее в «php».

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

Теперь, наконец, мы можем запустить

$ sudo pecl install mongo

5. Теперь нам просто нужно обновить наш конфигурационный файл php, чтобы добавить mongo.soрасширение.Откройте /Applications/MAMP/bin/php/php5.5.3/conf/php.ini в текстовом редакторе, в разделе «расширения» добавьте

extension=mongo.so

Выйдите и снова откройте MAMP!

3 голосов
/ 22 сентября 2010

В Mac OS X 10.6 Snow Leopard (с последними обновлениями) установлен PHP 5.3 вместе с Apache.

Вы можете включить установленный Apache в «Системных настройках», «Общий доступ», «Общий веб-доступ» (имеется значок справки (?), который показывает подробности использования веб-сервера системы).

См. Также этот вопрос StackOverflow:
Самый простой способ активировать PHP и MySQL в Mac OS 10.6 (Snow Leopard)?

2 голосов
/ 02 октября 2010

Вот как я это сделал, и это было довольно просто.

Сначала прочитайте, что говорит Монго @ http://www.mongodb.org/display/DOCS/PHP+Language+Center

Когда вы запустите sudo pecl install mongo, он будет установлен для стандартной установки OSX PHP, поэтому, если по какой-то причине вы используете встроенную установку Apache.

Как и вы, мне нравится использовать MAMP. Я не хотел разбираться, как загрузить Mongo в MAMP, поэтому я просто создал символическую ссылку в папке MAMP PHP Extensions и поместил строку расширения в MAMP php.ini. Перезапустил MAMP Apache и все заработало прекрасно!

Пару вещей, которые стоит отметить, после установки Mongo, обратите внимание на папку расширений, в которую он его установил, затем проверьте MAMP php.ini, чтобы увидеть, где установлены его расширения. Вы заметите, что окончание очень похоже.

1 голос
/ 18 марта 2012

Для MAMP PRO 2.0.5

Вы можете скомпилировать свой собственный mongo.so (http://m -schmidt.eu / 2011/11/06 / develop-mongodb-web-apps-with-mamp-under-mac-os-x / ) или загрузить скомпилированный (http://www.davidgolding.net/mongodb/installing-mongodb-on-mamp-1-9-5.html). Я бы хотел скомпилировать.

После шагов mongo.so не включать в конфигурацию php,потому что в MAMP PRO php.ini помещен в

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

I с использованием php5.3.6.ini файл для моей конфигурации.

...