MongoDB 单机部署
一、 环境信息
OS:CentOS 7
所需安装包:
httpd-2.2.17.tar.gz
php-5.5.30.tar.gz
mongodb-linux-x86_64-3.0.5.tgz
phpredis-2.2.4.tar.gz
mongo-1.4.0.tgz
rockmongo-1.1.7.tar.gz
二、部署实施过程
1、安装apache
1) 解压文件
[root@192 ~]# tar -xvf httpd-2.2.17.tar.gz && cd httpd-2.2.17
2)编译安装
[root@192 ~]# yum install gcc gcc-c++ openssl-devel
[root@192 ~]# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --with-included-apr
[root@192 ~]# make && make install
3)配置apache启动脚本并启动
[root@192 ~]# cp /usr/local/apache/bin/apachectl /etc/init.d/apache
[root@192 ~]# /etc/init.d/apache start
4)apache测试
[root@192 ~]# curl -I http://localhost/index.html
HTTP/1.1 200 OK
Date: Thu, 04 Jun 2020 23:59:50 GMT
Server: Apache/2.2.17 (Unix) PHP/5.5.30
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: "3096f3e-2c-3e9564c23b600"
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html
2、安装php
1)解压安装包
[root@192 ~]# tar -xvf php-5.5.30.tar.gz && cd php-5.5.30
2)编译安装
[root@192 ~]# yum -y install epel-release
[root@192 ~]# yum install libxml2-devel libcurl libcurl-devel jpeg* png* libpng-devel libmcrypt libmcrypt-devel
[root@192 ~]# yum install php-common php-devel
[root@192 ~]# ./configure --prefix=/usr/local/php --enable-fpm --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=mysqlnd --with-mysqli=mysqlnd -with-pdo-mysql=mysqlnd --without-pdo-sqlite --without-sqlite3 --with-mysql-sock=/tmp/mysql.sock --with-curl --enable-mbstring --with-mhash --with-mcrypt --with-openssl --with-gd --enable-sockets --with-gettext --with-zlib --enable-zip --enable-soap --with-xmlrpc --with-mcrypt
[root@192 ~]# make && make install
如果出现 *** 注: 在configure过程中, 可能会遇到下面的错误! Sorry, I cannot run apxs. ***
Sorry, I cannot run apxs. Possible reasons follow:
Perl is not installed
apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs
Apache was not built using --enable-so (the apxs usage page is displayed)
嗯, 看来我们接近答案了, 运行"head -1 /usr/local/apache/bin/apxs"得到下面内容:
#!/replace/with/path/to/perl/interpreter -w
天啊, 这里没有指明正确的perl执行程序的位置! 原来这就才是真正的问题原因所在!!!
把这一行更改为"#!/usr/bin/perl -w". 再运行php的configure, 一切正常!
3)配置php文件
[root@192 ~]# cp php.ini-production /usr/local/php/php.ini
[root@192 ~]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@192 ~]# /usr/local/php/sbin/php-fpm
4)配置apache支持php并启动apache服务
[root@192 ~]# vim /usr/local/apache/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
[root@192 ~]# /etc/init.d/apache stop
[root@192 ~]# /etc/init.d/apache start
5)上传程序源代码
#上传论坛包到 /usr/local/apache/htdocs
[root@192 ~]# vim /usr/local/apache/htdocs/index.php
<?php
phpinfo();
?>
[root@192 ~]# curl -I http://localhost/index.php
HTTP/1.1 200 OK
Date: Fri, 05 Jun 2020 00:36:17 GMT
Server: Apache/2.2.17 (Unix) PHP/5.5.30
X-Powered-By: PHP/5.5.30
Content-Type: text/html
6)更改源代码文件
[root@192 ~]# cat /usr/local/apache/htdocs/upload/app.php
//mongo 192.168.59.3
'mongo_sc' => array(
'host' => '127.0.0.1',
'port' => '27017',
'db'=> 'mongo',
),
'page_per_record' => 20,
3、安装Mongo-php插件包
1)解压安装包
[root@192 ~]# tar -xvf mongo-1.4.0.tgz && cd mongo-1.4.0
2)编译安装
[root@192 ~]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20121113
Zend Module Api No: 20121212
Zend Extension Api No: 220121212
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
解决办法:
[root@192 ~]# yum install autoconf
[root@192 ~]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@192 ~]# make && make install
[root@192 ~]# vim /usr/local/php/lib/php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/mongo.so
重启apache
[root@192 ~]# /etc/init.d/apache stop
[root@192 ~]# /etc/init.d/apache start
[root@192 ~]# curl http://localhost/index.php | grep mongo
[root@192 ~]# /usr/local/php/bin/php -m #查看PHP所支持的模块
4、安装phpredis
1)解压安装包
[root@192 ~]# tar -xvf phpredis-2.2.4.tar.gz && cd phpredis-2.2.4
2)编译安装
[root@192 ~]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20121113
Zend Module Api No: 20121212
Zend Extension Api No: 220121212
[root@192 ~]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@192 ~]# make && make install
[root@192 ~]# vim /usr/local/php/lib/php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/redis.so
重启Apache服务
5、安装MongoDB数据库
1)解压安装包
[root@192 ~]# tar -xvf mongodb-linux-x86_64-3.0.5.tgz
[root@192 ~]# mv mongodb-linux-x86_64-3.0.5 /usr/local/mongodb
2)创建数据库文件夹和日志文件夹
[root@192 ~]# mkdir /data/mongodb/{data,logs} -p
[root@192 ~]# mkdir /usr/local/mongodb/conf
3)配置mongo文件
[root@192 ~]# vim /usr/local/mongodb/conf/mongodb.conf
dbpath=/data/mongodb/data
logpath=/data/mongodb/logs/mongodb.log
pidfilepath=/data/mongodb/mongodb.pid
directoryperdb=true
logappend=true
port=27017
fork=true
profile=2 #开启慢查询
noprealloc=true
4)启动MOngoDB服务
[root@192 ~]# /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf
note: noprealloc may hurt performance in many applications
about to fork child process, waiting until server is ready for connections.
forked process: 4458
child process started successfully, parent exiting
5)手机配置慢查询时间查询
[root@192 ~]# mongo
> db.setProfilingLevel( level , slowms )
2020-06-05T09:04:26.781+0800 E QUERY ReferenceError: level is not defined
at (shell):1:23
> db.setProfilingLevel( 1 , 10 );
{ "was" : 2, "slowms" : 100, "ok" : 1 }
6)开启22 和 80 端口
[root@192 ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@192 ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
7)导入数据库
[root@192 ~]# cd /usr/local/bin/
[root@192 bin]# mongodump -d database -o /data/Tongji.data
[root@192 bin]# mongorestore -d database -o /data/Tongji/tongji #Mongo数据恢复
单个Collections名导出
[root@192 bin]# mongoexport -d database -c homework -o aa.dat
[root@192 bin]# mongoimport -d database -c homework aa.dat
6、安装MongoDB管理工具rockmongo
1)解压安装包
[root@192 ~]# unzip rockmongo-1.1.7.tar.gz
2)拷贝到apache_home 目录下
[root@192 ~]# cp /root/rockmongo-1.1.7 /usr/local/apache/rockmongo -r
3)新建httpd.conf 配置文件新建虚拟主机
[root@192 ~]# vim /usr/local/apache/conf/httpd.conf
Listen 8080
<VirtualHost *:8080>
DocumentRoot "/usr/local/apache/rockmongo/"
<Directory "/usr/local/apache/rockmongo/">
Options Indexes FollowSymLinks
AllowOverride ALL
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
重启Apache服务
[root@192 ~]# /etc/init.d/apache stop
[root@192 ~]# /etc/init.d/apache start
验证
http://IP:8080