Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP,mongo.so未能编写_Php_Mongodb_Pecl - Fatal编程技术网

PHP,mongo.so未能编写

PHP,mongo.so未能编写,php,mongodb,pecl,Php,Mongodb,Pecl,任何帮助都会很好。我已经被困在这个问题上好几个小时了。我正在尝试安装Mongo,以便在Mac上使用PHP。我已安装Pear/pecl并正在工作。当我调用sudopecl install mongo时,一切看起来都是成功编译/构建的,但最后我收到了这条消息 生成过程已成功完成安装 “/usr/lib/php/extensions/no-debug-non-zts-20121212/mongo.so”错误: 写不出来 /usr/lib/php/extensions/no-debug-non-zts-

任何帮助都会很好。我已经被困在这个问题上好几个小时了。我正在尝试安装Mongo,以便在Mac上使用PHP。我已安装Pear/pecl并正在工作。当我调用
sudopecl install mongo
时,一切看起来都是成功编译/构建的,但最后我收到了这条消息

生成过程已成功完成安装 “/usr/lib/php/extensions/no-debug-non-zts-20121212/mongo.so”错误: 写不出来 /usr/lib/php/extensions/no-debug-non-zts-20121212/mongo.so (副本(/usr/lib/php/extensions/no-debug-non-zts-20121212/mongo.so): 无法打开流:不允许操作)


而mongo也从来没有写过。有人能帮忙吗?我正在Mac OSX El Capitan上使用MAMP。

罗伯特在这个答案中解决了这个问题。 .

基本上,问题在于El Capitan的无根特征。需要在恢复模式下禁用它,执行pecl安装,然后重新启用它


由于某些原因,pecl没有直接将其安装到我的php扩展中,因此,我不得不将从本地库生成的mongo扩展pecl复制到我的php扩展文件夹xampp文件中,以便它工作

我通过在
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
,更改
扩展目录
并启用mongo:

extension_dir = "/usr/local/lib/php/extensions/"
extension=mongo.so
现在扩展目录是可写的,您可以在那里复制
mongo


下面是如何编译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
复制到扩展目录

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

最后,您可以通过在命令行中键入
php-m | grep mongo
来检查它是否工作。

首先尝试运行
sudo su
,然后运行命令。否,sudo su不工作。仍然无法写入解决了与我相同的问题。希望如此helps@iveedee这是正确的,非常感谢你的帮助。这在MacOS上非常有效,因为系统完整性保护(SIP)可以防止轻松修改此目录。谢谢我想你的意思是:
cp.libs/mongo.so/usr/local/lib/php/extensions
(“lib”,而不是“bin”)