linux下部署monogoDB服务(以及安装php mogodb扩展)
这两天网站转移到新的服务器后,登录时出现一个问题,会等待几分钟服务器才响应。
开始以为是nginx服务器的问题,后面经过排查发现是php一个登陆验证的函数的问题,每次跑到这个函数就会迟钝几分钟。
经过调试,发现也并不是进入死循环的原因,经过好几个文件的追踪,原来是连接mongoDB的时候出现的问题。
找到config.php配置文件,ping了下配置的ip,发现连上不。原来那台mongoDB服务器已经不在了。
经过考虑后,决定在服务器中部署新的mongoDB服务。
安装php mongoDB扩展
1.首先下载php的mongodb扩展
从http://pecl.php.net/package/mongo这个网址下载mongodb的扩展源码包
wget http://pecl.php.net/get/mongo-1.4.5.tgz
2.解压安装包
tar zxf mongo-1.4..tgz
3.进入解压目录,运行phpize进行安装准备
cd mongo-1.4. /usr/local/php/bin/phpize
4.安装编译
上述命令运行完后,在目录下就生成了configure文件
使用./configure命令进行安装配置,然后使用make && make install进行编译安装,命令如下:
./configure --with-php-config=/usr/local/php/bin/php-config make && make install
5.编辑php.ini增加下述一行添加mongodb扩展
extension=mongo.so
重启web服务器和php-fpm,然后php输入phpinfo(),打开浏览器。看到mongodb的内容就说明安装成功。
或者命令行php -m也可以查看
安装mongoDB服务端
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.1.tgz
[root@localhost soft]# tar -zxvf mongodb-linux-i686-2.0.2-rc2.tgz
[root@localhost mongodb]# mkdir log
[root@localhost mongodb]# mkdir data
[root@localhost mongodb]# cd log
[root@localhost log]# touch mongodb.log
[root@localhost local]# cd mongodb/bin
[root@localhost mongodb]# ./bin/mongod -port 27017 --dbpath data/ --logpath log/mongodb.log --fork
all output going to: log/mongodb.log
[root@localhost mongodb]# ps -ef | grep momgod (查看是否启动成功)
常用的启动参数:
--dbpath:指定存储数据的文件夹
--logpath:指定日志存储文件
--logappend:日志以增加方式产生
--port指定端口,如果不写的话,默认是27017
--fork代表后台运行(注意:如果不加后台启动参数fork,启动的这个页面不能关闭,使用命令连接数据库时要另打开一个窗口)
停止命令:
# ./mongod -shutdown -dbpath=/usr/local/mongodb/data
通过配置文件启动
通过配置文件来配置Mongodb
首先在mongodb目录下新建一个文件,文件名任意,在这里我取名为:mongodb.conf
[root@localhost mongodb]# vi mongodb.conf
然后在配置文件中添加配置信息
port=
dbpath=data/
logpath=log/mongodb.log
logappend=true
解释说明:
port=10001【代表端口号,如果不指定则默认为 27017 】
dbpath=data/ 【数据库路径】
logpath=log/mongodb.log 【日志路径】
logappend=true 【日志文件自动累加,而不是覆盖】
启动Mongodb服务
[root@localhost mongodb]# ./bin/mongod -f mongodb.conf
all output going to: log/mongodb.log
非法关闭服务器,会产生mongod.lock文件
再次强调我的linux发行版本是Fedora
关于mongodb Error: couldnt connect to server 127.0.0.1 shell/mongo.js:84 - kaizhu_QIN - kaizhu_Qin
这时候将mongod.lock文件删除就能解决问题。
执行删除mongod.lock文件:rm -rf mongod.lock
Ps:如果需要将mongod加入到服务器开机自动启动,执行一下命令:
chkconfig --levels 235 mongod on
[root@localhost /]# cd usr/local/mongodb
[root@localhost mongodb]# ./bin/mongo localhost:
MongoDB shell version: 2.0.-rc2
connecting to: localhost:27017/test
>
bye
connecting to: localhost:/test
> db.foo.save({a:})
> db.foo.find()
{ "_id" : ObjectId("4ee66eb440ef7803a9873d2d"), "a" : }
>
linux下部署monogoDB服务(以及安装php mogodb扩展)的更多相关文章
- linux下部署tomcat服务器之安装tomcat
下载tomcat压缩包 apache-tomcat-7.0.82.tar.gz 在把包放到linux 的softwore文件夹下 自己选择文件夹 tar -zxvf apache-tomcat-7. ...
- linux下部署tomcat服务器之安装jdk
如果一开始安装过jdk的可以卸载 rpm -qa | grep java rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x8 ...
- Linux下部署Samba服务环境的操作记录
关于Linux和Windows系统之间的文件传输,很多人选择使用FTP,相对较安全,但是有时还是会出现一些问题,比如上传文件时,文件名莫名出现乱码,文件大小改变等问题.相比较来说,使用Samba作为文 ...
- 关于linux下ntp时间同步服务的安装与配置
1.安装ntp服务,要使用时间同步.那么服务端与客户端都需要使用如下命令安装NTP软件包 [root@ ~]# yum install ntp -y 2.如果只是作为客户端的话,配置则可以非常简单,编 ...
- 如何在Linux下部署Samba服务?
Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件 ...
- linux下部署nginx服务
1.安装依赖包 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2.下载并解压安装包 cd /usr/loc ...
- (转)linux下weblogic12c集群的安装部署
本文介绍linux下weblogic12c集群的安装部署,版本12c,其他版本操作会有所不同,但其大体操作基本都是一样的 关于weblogic的集群,在此就不多做介绍了,如果有不了解的朋友可以百度搜索 ...
- Linux下部署FTP服务器
Linux下部署FTP服务器 下载安装包 在这里介绍的是离线部署FTP,首先下载对应的rpm包,下载链接为: 下载vsftpd服务 下载FTP客户端 安装ftp服务器 关闭防火墙 service ip ...
- linux下部署项目问题
1. 今天linux下部署thinkphp项目,数据库用的mysql. 页面其他都是正常的,但是从数据库中取出的数据都是乱码.最后查了资料 解决方案: 在ThinkPHP里面 Library\Thin ...
随机推荐
- 关于DBX Framewrok 和 FireDac 的一点随笔
DBX Framework (dbExpress Framework )用了很长的时间, 一直觉得简单好用,但今天需要连MySQL5.7, 发现已经没办法用了,感觉是时候放弃用它来作数据连接了. 以前 ...
- bootstrap之navbar
container:固定960px宽度,(如果又引入了响应式样式,则会适当调整,例如1600*900,它会显示1200px) container-fluid:自适应屏幕宽度,即满屏显示. row和co ...
- git tag 常用操作
1.获取最新tag(获取不到就多获取几次) git fetch origin 或者 git fetch origin <tagname> 2. checkout tag到本地分支(如果看 ...
- cocos2dx自带物理引擎-创建物理世界
首先在createScene()里 auto scene = Scene::createWithPhysics(); 创建带有物理的场景 然后再OnEnter里创建边界框 auto body = Ph ...
- iOS之iOS11、iPhone X、Xcode9 适配指南
更新iOS11后,发现有些地方需要做适配,整理后按照优先级分为以下三类: 1.单纯升级iOS11后造成的变化: 2.Xcode9 打包后造成的变化: 3.iPhoneX的适配 一.单纯升级iOS11后 ...
- [UE4]Widget Switcher:控件切换器
一.Widget Switcher可以有很多子控件,但一次只会显示一个子控件.所有的子控件默认情况下都是充满整个Widget Switcher容器 二.Widget Switcher.Active W ...
- html 之 <meta> 标签之http-equiv
语法规则: <meta http-equiv=“参数” content=“参数值” > 1.X-UA-Compatible 文档兼容模式的定义 <meta http-equiv=“X ...
- 使用Oracle DBLink进行数据库之间对象的访问操作
Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象,例如我们新建了一个数据database1,我们需要操作 ...
- 【亲测】关于HTTP协议~
如果有一点点基本的开发者工具基础知识,我们知道:Elements是用来查看网页结构的,也就是可以看到整体的HTML语言:Console是控制台,Network是请求想相应状态. 1)一个Name就是一 ...
- Laravel数据库操作 Eloquent ORM
模型首先在App目录下建立student的文件夹 里面放上 Student.php 且需要继承基类Model //允许批量赋值的字段// protected $fillable = ['name',' ...