好的,我已按照MongoDB官方指南安装了所有内容。它不起作用。当我尝试设置
时$connect = new Mongo();
在php文件中,它返回我:
Fatal error: Class 'Mongo' not found in /opt/lampp/htdocs/choqlet/contact/index.php on line 3
mongodb服务器和apache都在...我在这里尝试了这个解决方案(由Neil提供:
同时观看(并应用)此主题:
Mongodb connection in PHP not working
当我转动phpinfo();那里没有mongo ....当我尝试php的时候
echo extension_loaded("mongo") ? "loaded\n" : "not loaded\n"; ?>
它返回我:未加载。
我一整天都在寻找解决方案,似乎没有任何作用......
这是php --ini的输出:
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File: /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed: /etc/php5/cli/conf.d/05-opcache.ini,
/etc/php5/cli/conf.d/10-pdo.ini,
/etc/php5/cli/conf.d/20-json.ini,
/etc/php5/cli/conf.d/20-readline.ini,
/etc/php5/cli/conf.d/30-mongo.ini
和php -m:
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mbstring
mhash
mongo
openssl
pcntl
pcre
PDO
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib
[Zend Modules]
Zend OPcache
所以,mongo应该工作......我也跑了
php -i | grep extension_dir
它给了我一些奇怪的输出:
PHP Warning: Module 'mongo' already loaded in Unknown on line 0
extension_dir => /usr/lib/php5/20121212 => /usr/lib/php5/20121212
答案 0 :(得分:0)
好的,基本上,这是许多人遇到的问题(尝试在XAMPP上运行它的问题),最终的唯一解决方案是:
启动XAMPP后检查localhost上的phpinfo();
;它应该指出你的主要php.ini文件在哪里,负责XAMPP localhost的文件。
如果找到了,请将extension=mongo.so
添加到ini文件的最后。如果您使用的是linux,那么您显然希望通过终端中的sudo nano php.ini
进行此操作。
现在是第二个重要部分。有一个extensions_dir
缺少mongo.so文件。它位于你的linux路径中:/opt/lampp/lib/php/extensions/no-debug-non-zts-20121212
(最后的数字可能会有所不同)。如果该文件中没有mongo.so,则表示您已得到答案。要确认这一点,请检查调用phpinfo();
后是否在底部的某处(字母“m”下方)列出了mongo扩展名。如果没有,那就是解决方案。
如果您遇到我在第3点下列出的问题,请转到您的默认php扩展目录,该目录类似于/usr/lib/php5/20121212/
,复制 mongo。所以文件,并将其粘贴到我在第3点给你看的lampp文件夹。
5。一般重启XAMPP和apache。应该这样做。