PHP, mongo.so 写入失败
PHP, mongo.so failed to write
任何帮助都会很棒。我已经坚持了几个小时。我正在尝试安装 Mongo 以在 Mac 上使用 PHP。我已经安装了 Pear/pecl 并且可以正常工作。当我调用 sudo pecl install mongo
时,一切看起来都像 compiling/building 成功了,但最后我收到了这条消息。
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 永远不会被写入。有人可以帮忙吗?我在 Mac OSX El Capitan 上使用 MAMP。
罗伯特在这个答案中解决了这个问题。
whosebug.com/a/31884146
.
问题基本上是 El Capitan 的无根功能。它需要在恢复模式下禁用,执行 pecl 安装并再次启用它。
出于某种原因,pecl 没有直接将其安装到我的 php 扩展中,所以我不得不将从本地库生成的 mongo 扩展 pecl 复制到我的 php 扩展中文件夹 xampp 个文件以使其工作
我通过更改 php.ini
中的 extension_dir
解决了这个问题。
创建本地扩展目录并将现有扩展复制到
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
并启用 mongo:
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
将其复制到扩展目录
cp .libs/mongo.so /usr/local/bin/php/extensions/
最后,您可以在命令行中输入 php -m | grep mongo
来检查它是否正常工作。
任何帮助都会很棒。我已经坚持了几个小时。我正在尝试安装 Mongo 以在 Mac 上使用 PHP。我已经安装了 Pear/pecl 并且可以正常工作。当我调用 sudo pecl install mongo
时,一切看起来都像 compiling/building 成功了,但最后我收到了这条消息。
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 永远不会被写入。有人可以帮忙吗?我在 Mac OSX El Capitan 上使用 MAMP。
罗伯特在这个答案中解决了这个问题。 whosebug.com/a/31884146 .
问题基本上是 El Capitan 的无根功能。它需要在恢复模式下禁用,执行 pecl 安装并再次启用它。
出于某种原因,pecl 没有直接将其安装到我的 php 扩展中,所以我不得不将从本地库生成的 mongo 扩展 pecl 复制到我的 php 扩展中文件夹 xampp 个文件以使其工作
我通过更改 php.ini
中的 extension_dir
解决了这个问题。
创建本地扩展目录并将现有扩展复制到
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
并启用 mongo:
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
将其复制到扩展目录
cp .libs/mongo.so /usr/local/bin/php/extensions/
最后,您可以在命令行中输入 php -m | grep mongo
来检查它是否正常工作。