2015-11-10 4 views
2

Любая помощь была бы замечательной. Я застрял на этом часами. Я пытаюсь установить Mongo для работы с PHP на Mac. У меня есть Pear/pecl, установленный и работающий. Когда я звоню sudo pecl install mongo, все выглядит так, будто он компилируется/строится успешно, но в конце я получаю это сообщение.PHP, mongo.so не удалось написать

Build process completed successfully Installing '/usr/lib/php/extensions/no-debug-non-zts-20121212/mongo.so' ERROR: failed to write /usr/lib/php/extensions/no-debug-non-zts-20121212/mongo.so (copy(/usr/lib/php/extensions/no-debug-non-zts-20121212/mongo.so): failed to open stream: Operation not permitted)

И mongo.so никогда не набирается. Может кто-нибудь помочь? Я использую MAMP на Mac OSX El Capitan.

+1

Сначала попробуйте запустить 'sudo su', затем запустите команду. –

+0

отрицательный, sudo su не работает. Все еще получить не удалось написать – Srmuhs

+1

Это решило ту же проблему, что и я. http://stackoverflow.com/a/31884146. Надеюсь, это поможет – iveedee

ответ

0

Роберт решил эту проблему в этом ответе. stackoverflow.com/a/31884146 .

В основном проблема заключается в функции Rootless El Capitan. Его необходимо отключить в режиме восстановления, выполнить установку пакета и снова включить его.

По какой-то причине, PECL не установить его в мои расширения PHP непосредственно так, я должен был скопировать расширение Монго PECL генерируется из локальной библиотеки моих PHP файлов папка расширения XAMPP для его работы

2

I Эта проблема решена путем изменения extension_dir в php.ini.

Создание локальной реж расширение и скопировать существующие расширения в

mkdir -p /usr/local/lib/php/extensions 
cp /usr/lib/php/extensions/no-debug-non-zts-20121212/* /usr/local/lib/php/extensions/ 

Обновите свою php.ini, изменить extension_dir и включить Монго:

extension_dir = "/usr/local/lib/php/extensions/" 
extension=mongo.so 

Теперь расширение НАПРАВЛ записываемые можно скопировать mongo.so есть.


Вот как составить mongo.so

wget http://pecl.php.net/get/mongo 
tar xzvf mongo 
cd mongo-1.6.12 
phpize 
./configure --with-php-config=/usr/bin/php-config --with-mongo-sasl=no 
make 

Вы можете найти скомпилированные библиотеки в папке .libs: .libs/mongo.so Скопируйте его расширения Dir

cp .libs/mongo.so /usr/local/bin/php/extensions/ 

Наконец, вам может проверить, работает он или нет, набрав php -m | grep mongo в командной строке.

+0

Это отлично работает на MacOS, где предотвращает защиту целостности системы (SIP), предотвращает ее легко модифицировать. Благодаря! – TrophyGeek

Смежные вопросы