*一、 环境信息
-
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
3)配置PHP文件
[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
4)配置Apache支持PHP并启动Apache服务
[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
7)更改源代码文件
[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,
3. 安装Mongo-php插件包
1)解压安装包
[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所支持的模块
4. 安装phpredis拓展包
1)解压安装包
[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
2)创建数据文件夹和日志文件夹
[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
3)在httpd.conf配置文件中添加如下内容
[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