*一、 环境信息
-
OS:CentOS 7.1 数据库:mongodb-3.0.5 Apache:2.2.17 PHP:5.5.30(PHP-5.5.30.tar.gz) 所需安装包: httpd-2.2.17.tar.gz PHP-5.5.30.tar.gz mongodb-linux-x86_64-3.0.5.tgz
二. 部署实施过程
1. 安装Apache
1)解压文件
[root@localhost ~]# tar zxf httpd-2.2.17.tar.gz && cd httpd-2.2.17
2)编译安装
[root@localhost httpd-2.2.17]# yum install gcc gcc-c++ openssl-devel -y
[root@localhost httpd-2.2.17]# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --with-included-apr
[root@localhost httpd-2.2.17]# make && make install
3)配置Apache启动脚本
[root@localhost httpd-2.2.17]# cp /usr/local/apache/bin/apachectl /etc/init.d/apache
[root@localhost httpd-2.2.17]# /etc/init.d/apache start
4)Apache测试
[root@localhost httpd-2.2.17]# curl -I http://localhost/index.html
HTTP/1.1 200 OK
Date: Thu, 04 Jun 2020 07:59:03 GMT
Server: Apache/2.2.17 (Unix)
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: "94552b-2c-3e9564c23b600"
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html
2. 安装PHP
1)解压安装包
[root@localhost PHP-5.5.30]# tar -xvf PHP-5.5.30.tar.gz && cd PHP-5.5.30
2)编译安装
[root@localhost PHP-5.5.30]# yum -y install epel-release
[root@localhost PHP-5.5.30]# yum -y install libxml2-devel libcurl libcurl-devel jpeg* png* libpng-devel libmcrypt libmcrypt-devel
[root@localhost PHP-5.5.30]# yum -y install PHP-common PHP-devel
[root@localhost PHP-5.5.30]# ./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@localhost PHP-5.5.30]# make && make install
[root@localhost PHP-5.5.30]# cp PHP.ini-production /usr/local/PHP/PHP.ini
[root@localhost PHP-5.5.30]# cp /usr/local/PHP/etc/PHP-fpm.conf.default /usr/local/PHP/etc/PHP-fpm.conf
[root@localhost PHP-5.5.30]# /usr/local/PHP/sbin/PHP-fpm
[root@localhost PHP-5.5.30]# 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@localhost PHP-5.5.30]# /etc/init.d/apache stop
[root@localhost PHP-5.5.30]# /etc/init.d/apache start
5)上传程序源代码
程序源代码上传至/usr/local/apache/htdocs目录下
6)测试PHP
[root@localhost PHP-5.5.30]# cat /usr/local/apache/htdocs/index.PHP
<?PHP
PHPinfo();
?>
[root@localhost PHP-5.5.30]# curl -I http://localhost/index.PHP
HTTP/1.1 200 OK
Date: Thu, 04 Jun 2020 08:40:28 GMT
Server: Apache/2.2.17 (Unix) PHP/5.5.30
X-Powered-By: PHP/5.5.30
Content-Type: text/html
[root@localhost ~]# vim /usr/local/apache/htdocs/upload/config/dz.PHP
#此处根据程序代码存放位置以及配置文件名而定
//mongo 主库地址
'mongo_sc' => array(
'host' => '127.0.0.1',
'port' => '27017',
'db'=> 'mongo',
),
'page_per_record' => 20,
[root@localhost ~]# tar -xvf mongo-1.4.0.tgz && cd mongo-1.4.0
2)编译安装
[root@localhost mongo-1.4.0]# /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@localhost mongo-1.4.0]# yum install autoconf
[root@localhost mongo-1.4.0]# ./configure --with-PHP-config=/usr/local/PHP/bin/PHP-config
[root@localhost mongo-1.4.0]# make && make install
[root@localhost mongo-1.4.0]# vim /usr/local/PHP/lib/PHP.ini
在最后添加
extension=/usr/local/PHP/lib/PHP/extensions/no-debug-non-zts-20121212/mongo.so
重启Apache服务,检查该模块是否生效
[root@localhost mongo-1.4.0]# /etc/init.d/apache stop
[root@localhost mongo-1.4.0]# /etc/init.d/apache start
[root@localhost mongo-1.4.0]# curl http://localhost/index.PHP | grep mongo
[root@localhost mongo-1.4.0]# /usr/local/PHP/bin/PHP -m
#查看PHP所支持的模块
[root@localhost ~]# tar -xvf PHPredis-2.2.4.tar.gz && cd PHPredis-2.2.4
2)编译安装
[root@localhost PHPredis-2.2.4]# /usr/local/PHP/bin/PHPize
Configuring for:
PHP Api Version: 20121113
Zend Module Api No: 20121212
Zend Extension Api No: 220121212
[root@localhost PHPredis-2.2.4]# ./configure --with-PHP-config=/usr/local/PHP/bin/PHP-config
[root@localhost PHPredis-2.2.4]# make && make install
[root@localhost PHPredis-2.2.4]# vim /usr/local/PHP/lib/PHP.ini
添加
extension=/usr/local/PHP/lib/PHP/extensions/no-debug-non-zts-20121212/redis.so
重启apache服务
[root@localhost PHPredis-2.2.4]# /etc/init.d/apache stop
[root@localhost PHPredis-2.2.4]# /etc/init.d/apache start
5. 安装MongoDB数据库
1)解压安装包并更名
[root@localhost ~]# tar -xvf mongodb-linux-x86_64-3.0.5.tgz
[root@localhost ~]# mv mongodb-linux-x86_64-3.0.5 /usr/local/mongodb
[root@localhost ~]# mkdir /data/mongodb/{data,logs} -p
[root@localhost ~]# mkdir /usr/local/mongodb/conf
3)配置Mongo文件
[root@localhost ~]# cat /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)4) 启动MongoDB服务
第一种启动方式:
```powershell
[root@localhost ~]# /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: 115614
child process started successfully, parent exiting
第二种启动方式:
[root@localhost ~]# /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/conf --logpath=/usr/local/mongodb/mongodb.log --logappend --port=27017 --fork
注意:两种启动方式只能使用一种,若两种都使用就需要指定不同的data路径,这样是启动了基于一台MongoDB数据库平台的多个MongoDB服务。
参数解释:
--dbpath 数据库路径(数据文件)
--logpath 日志文件路径
--master 指定为主机器
--slave 指定为从机器
--source 指定主机器的IP地址
--pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。
--logappend 日志文件末尾添加
--port 启用端口号
--fork 在后台运行
--only 指定只复制哪一个数据库
--slavedelay 指从复制检测的时间间隔
--auth 是否需要验证权限登录(用户名和密码)
5)编辑用户HOME目录下的.bash_profile配置文件,添加如下内容:
[root@master ~]# cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/mongodb/bin
export PATH
6)手动配置慢查询时间
> db.setProfilingLevel( 1 , 10 );
{ "was" : 1, "slowms" : 10, "ok" : 1 }
7)iptables开启22和80端口
[root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
8)导入数据库
[root@localhost ~]# mongodump -d database -o /data/Tongji.data #Mongo数据备份
[root@localhost ~]# mongorestore -d database -o /data/Tongji/tongji #Mongo数据恢复
单个Collections名导出
[root@localhost ~]# mongoexport -d database -c homework -o aa.dat
[root@localhost ~]# mongoexport -d database -c homework aa.dat
6. 安装MongoDB管理工具RockMongo
1)解压安装包
[root@localhost ~]# tar -xvf rockmongo-1.1.7.tar.gz
2)拷贝到Apache_HOME目录下
[root@localhost ~]# cp rockmongo-1.1.7 /usr/local/apache/rockmongo -r
[root@localhost ~]# 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>
4)重启Apache服务
[root@localhost ~]# /etc/init.d/apache stop
[root@localhost ~]# /etc/init.d/apache start
5)验证
http://IP:8080