Я очень хочу начать работать с PHP 7, однако одна проблема мешает … Я в основном использую MongoDB для базы данных, и проблема в том, что я не знаю, как установить драйвер / клиент MongoDB для PHP 7 ,
Моя текущая установка PHP 5.6 и на моем Mac и brew install php56-mongo
делает трюк.
Кто-нибудь может порекомендовать, как я могу заставить это работать на моем Mac или Ubuntu установить?
Заранее спасибо и высоко ценится!
Расширение Mongo для версии PHP 5.99.99 или старше был заменен:
https://pecl.php.net/package/mongo
Используйте более новую версию для PHP 7.99.99 или старше вместо:
https://pecl.php.net/package/mongodb
Вы можете установить расширение PECL / PEAR автоматически:
pecl install mongodb
или же вручную.
классы тоже были изменены:
new \MongoClient(); // legacy class!
увидеть http://php.net/manual/en/book.mongo.php
new \MongoDB\Driver\Manager(); // new classes!
увидеть http://php.net/manual/en/set.mongodb.php
Дополнительную информацию о совместимости можно найти здесь:
https://docs.mongodb.org/ecosystem/drivers/php/#compatibility
Драйвер MongoDB, который поддерживает PHP 7 был только выпущен 22 декабря — его вероятные нижестоящие репозитории, такие как brew, не обновлялись.
Обновление подтверждено в настоящее время нет php70-mongo
скрипт brew, хотя есть активный тянуть запрос добавить один.
Вы можете быть в состоянии установить его вручную через pecl в это время:
pecl channel-update pecl.php.net
pecl install mongodb
echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
Как связать php 7.0 с MongoDB в Ubuntu 16.04 lts?
1) Установите LAMP, используя следующую ссылку. Он устанавливает Apache2, MySQL и PHP 7.0.
https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04
2) Установите MongoDB Community Edition в Ubuntu, выполнив действия, указанные в следующей ссылке.
http://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
3) Введите следующую команду, чтобы получить расширение mongoDB из pecl
sudo apt install php-pear
4) Добавьте следующее в файл php.ini по адресу /etc/php/apache2/7.0
extension=mongodb.so
Важно — классы тоже были изменены:
new MongoClient(); //Old Class
new MongoDB\Driver\Manager(); // New Class
Обратитесь — http://php.net/manual/en/set.mongodb.php
Вы можете попробовать установить драйвер mongodb с помощью:
sudo apt-get install php-mongodb
Драйвер MongoDB для PHP версии 5.99.99 или более ранней версии:
https://pecl.php.net/package/mongo
чтобы установить это нам нужно использовать:
sudo apt-get установить php-pear php5-dev
sudo pecl установить монго
Начиная с PHP 7, это новый драйвер
https://pecl.php.net/package/mongodb Чтобы установить это использовать: sudo pecl install mongodb
Если вы используете каркас Laravel или проекты с composer, то эта библиотека является наиболее подходящей:
https://github.com/jenssegers/Laravel-MongoDB
Используйте версию 3.0.0, чтобы получить PHP 7 & Поддержка Laravel 5 и использование старой версии 2.2.2.
Команда композитора:
композитор требует jenssegers / mongodb
Если вы используете другие PHP-фреймворки без composer, используйте эту библиотеку: https://github.com/mongodb/mongo-php-library который также используется в вышеупомянутой библиотеке
Нет, устаревший драйвер, к сожалению, не поддерживает PHP7. Вот совершить и JIRA Ticket где это было официально завершено.
Новый драйвер PHP MongoDB можно найти в PECL здесь (или же GitHub).
Для установки достаточно:
pecl channel-update pecl.php.net
pecl install mongodb
echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
Документацию для нового драйвера можно найти Вот. Я хотел бы добавить примечание из документации:
В конечном счете, это расширение не предназначено для использования в одиночку. Пользователям следует рассмотреть возможность использования этого драйвера вместе с одной или несколькими пользовательскими библиотеками PHP, такими как Монго-PHP-библиотека.
Новый mongodb
расширение драйвера / PHP намного более низкого уровня, чем унаследованное mongo
драйвер, и вам рекомендуется использовать библиотеку более высокого уровня поверх драйвера, а не использовать ее непосредственно в своем коде.
Mongo PHP Library (релизы) является официальной высокоуровневой библиотекой для PHP, и это то, что рекомендуется использовать в ваших проектах. Он все еще находится в бета-версии, но, похоже, это самый безопасный и перспективный путь вперед с PHP7.
Для кого-то может быть возможно портировать устаревший драйвер на PHP7, но, вероятно, в этом нет особой необходимости, поскольку существует много других проблем с устаревшим драйвером.
Старый вопрос, но новое отличное решение. Просто используйте Mongostead7 автоматизированный скрипт для установки всего необходимого. У меня сработало просто отлично. Никакой дополнительной работы не требуется.
Используйте это следующим образом:
sudo curl -sS https://raw.githubusercontent.com/zakhttp/Mongostead7/master/mongoHomestead7.sh | sudo sh
Дополняю ответы и публикую то, что у меня работает:
1 следовал этому руководству, чтобы установить лампу https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04 (Третий шаг необходим только для установки клиента Монго)
2 $ sudo apt-get install php7.0-dev
3 $ sudo pecl install mongodb
4 $ sudo nano /etc/php/7.0/apache2/php.ini
Добавьте следующую строку в файл:
extension = mongo.so;
(Вам может потребоваться указать точное местоположение файла. В моем случае
файл был в /usr/lib/php/20151012/mongodb.so.)
И это все, что нужно для установки только клиента mongo для php 7.0
Я дополняю ответ Пранша Тивари