首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

搭建centos7+apache+mongodb+php环境

2023-11-12 来源:华拓网
环境介绍:

linux:CentOS7apache:2.4.6MongoDB:3.2.10php:5.6

需要下载的安装源码及其他源码

php-5.6:http://cn2.php.net/downloads.phpmongodb-3.2.10:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.10.tgzmongodb的php扩展:http://pecl.php.net/get/mongo-1.5.5.tgz

安装步骤:1、安装apache服务

apache服务安装没有特别的要求,直接用yum源安装就可以。解答点:(依赖问题)注意的是,一定要安装httpd-devel,因为这个包和apxs命令相关,此命令用来加载php模块,当在安装php的时候会用到。这个就属于安装依赖、包的问题。没有这个后面编译安装后php,Apache服务是没有办法加载libphp5.so这个模块的。为了避免有个别包需要安装而没有安装的事故发生,直接:

yum install httpd* -y

技术分享图片

2、安装mongodb数据库

(1)将下载的源码上传到服务器,然后就行解压安装(2)安装之前应先创建有关目录和文件

mkdir /data/mongodb/dbs -ptouch /data/mongodb/log

作用,第一个目录是用来后面存放数据库数据的,第二个文件是用来存放数据库日志的文件,后面都会用的到。技术分享图片

(3)将压缩包解压到指定目录

tar -xvf mongodb-linux-x86_64-rhel62-3.2.10.gz -C /usr/local

(4)为了使用命令的方便,将数据库的文件路径加入到环境变量中

vi .bash_prefile

技术分享图片

使环境变量能够生效,需要执行一条命令:

source .bash_prefile

(4)为数据库创建配置文件,启动数据库vi /etc/mongodb.conf

dbpath=/date/mongodb/dbs //数据文件地址logpath=/data/mongodb/log //日志文件地址port=27071 //端口号(默认27017)fork=true //后台运行journal=true //启用日志选项

启动数据库:

mongod -f /etc/mongodb.conf

解答点(数据库启动方式问题)面启动方式出现的问题进行一下解答,mongodb数据库默认的端口是27017,进入数据库的时候可以直接输入命令mongo就可以,但是由于我的一时马虎,将配置文件中写成了27071所以用开始的方法是没办法启动的。当改变了端口,进入数据库的方法是:mongo localhost:端口号例如我这里:mongo localhost:27071

3、安装php

(1)将下载的源码上传到服务器(2)解压

tar -zxvf php-5.6.39.tar.gz

技术分享图片

(3)安装相关依赖:

yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel gcc

这里编译安装的时候会需要很多相关依赖,为了方便,避免产生错误,在网上搜集了一些需要的依赖,同时,编译安装需要gcc,可以看一下自己有没有这个编译工具,没有的话也需要安装。

(4)进入解压后的目录,编译安装

cd php-5.6.39

./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-apxs2=/usr/bin/apxs

--prefix 指定了安装位置--with-config-file-path 指定php.ini的位置--with-apxs2 整合 apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块

这里apxs的命令根据自己个人情况路径而定,查看apxs文件路径方法:

which apxs

(5)安装

make && make installcp php.ini-production /etc/php.ini

(6)同样的,设置环境变量技术分享图片

使环境变量生效:source .bash_prefile安装完之后看一看在/etc/httpd/modules/目录下有没有libphp5.so,有的话说明模块安装的没问题,如果这里没有这个模块的话,在apache解析php的时候会出现错误。

4、安装扩展

(1)将扩展的源码上传服务器(2)解压:tar -zxvf mongo-1.5.5.tgz(3)进入解压后的目录,生成执行文件configure

执行命令:phpize技术分享图片

是出错的,有办法解决解决错误方法:

wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gztar -zvxf m4-1.4.9.tar.gzcd m4-1.4.9/./configure && make && make install

yum install autoconf.

重新执行phpize命令就ok了

(4)执行configure文件生成Makefile文件

./configure --enable-mongo=share --with-php-config=php-config

(5)安装

make && make install

到这里基本的安装是差不多已经完成了,但是环境还是不能使用,接下来就是对配置文件的修改。

5、对配置文件的修改

(1)当安装完成扩展的时候,会出现这样的一句话,extension_dir=/usr/lib/php/extensions/debug-non-zts-20151012/可能和我的不同,但是都是类似的,将这样的一句话复制下来,打开/etc/php.ini文件,添加进去,同时还要添加extension=mongo.so这两个都是在启用mongodb的扩展。没有这个是没有办法对数据库操作的。vi /etc/php.ini追加:

extension_dir=/usr/lib/php/extensions/debug-non-zts-20151012/extension=mongo.so

(2)打开apache的配置文件对其进行修改。

追加:

AddType application/x-httpd-php .phpAddType application/x-httpd-php .htmAddType application/x-httpd-php .html

DirectoryIndex index.html index.cgi index.php index.phtml index.php3

这些语句的位置在文件中已经给出,搜索AddType和DirectoryIndex就会找到

解释点:(php版本和扩展之间的问题)有的人可能是直接利用的mongodb的yum源,然后执行pecl install momgodb的安装扩展,这个时候如果你的php是5.4或5.4以下的版本会直接报错,提示你说需要php5.5.99以上的版本。所以这里为了避免冲突,也是利用了php5.6的版本。

解释点:(安装顺序问题、马虎)我们都知道lamp(linux+apa+mysql+php)的安装顺序,就是安装amp的顺序安装的,这里apa+mongo+php也是一样,按照这样的顺序安装。我出现安装错误的原因在于,没有安装apa的时候就安装了php。我有个习惯,就是在做不了解的环境的时候,没安装一个服务就会创建一个快照,防止后面做错,还可以回来重新做。但是就是因为这个,当我返回快照的时候,我以为返回到了安装好Apache服务的快照上了,结果不想而知。

好了,到这里基本都已经解决了所有服务的安装,只要将服务都启动开就可以访问网站了,自己可以写个php网页进行测试。如果出现关于mongo class的错误,说明你的扩展没有弄好,要么去修改一下php.ini要么重新安装一下就好。

注意:在访问网站的时候一定记得关闭防火墙,和selinux。关闭方法:systemctl stop firewalld 和 setenforce 0

希望能够帮到那些如我一般错误一堆的人。

搭建centos7+apache+mongodb+php环境

标签:整合   image   alt   数据库   使用   load   产生   centos   查看   

小编还为您整理了以下内容,可能对您也有帮助:

怎么在Centos7下安装MongoDB

1、mongodb下载地址:http://www.mongodb.org/downloads,可以找到32位的tgz文件地址,如:http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.4.2.tgz
2、安装MongoDB(安装到/usr)
cd /usr
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.4.2.tgz
tar zxvf mongodb-linux-i686-2.4.2.tgz
mv mongodb-linux-i686-2.4.2 mongodb (文件重命名,移动文件跟重命名都是同一个命令,mv(就是move)的意思)
cd mongodb
mkdir data
cd data
mkdir db (建立数据文件目录)
cd ../
mkdir logs (建立日志目录)
cd bin
vi mongodb.conf
3、mongodb.conf文件输入如下内容:
dbpath=/data/db (看w3cschool上,data目录只能在根目录上,不然自启动会有问题)
logpath=/usr/mongodb/logs/mongodb.log
port=27017
fork=true
nohttpinterface=true
4、命令行输入一下内容,重新绑定mongodb的配置文件地址和访问IP
/usr/mongodb/bin/mongod --bind_ip localhost -f /usr/mongodb/bin/mongodb.conf
5、开机自动启动mongodb
vi /etc/rc.d/rc.local
/usr/mongodb/bin/mongod --config /usr/mongodb/bin/mongodb.conf (文件输入内容)
6、重启一下系统,测试下能不能自启
#进入mongodb的shell模式
/usr/mongodb/bin/mongo
#查看数据库列表
show dbs
#当前db版本
db.version();
7、配置环境变量
vi /etc/profile #添加环境变量,编辑,在最后一行添加下面的代码:
export PATH=$PATH:/usr/mongodb/bin
保存后重启电脑。这样直接输入mongo就可以连接数据库了,在不需要像5中需要输入/usr/mongodb/bin/mongo进入mongodb的shell模式了
技术分享
8、如果某次启动后,发现输入mongo无法连接数据库,可能原因是上次未正常关机导致的,此时删除/data/db目录内的mogod.lock文件,重启即可。

9、mongodb管理工具:Robomongo

centos安装mongodb

标签:

怎么在Centos7下安装MongoDB

1、mongodb下载地址:http://www.mongodb.org/downloads,可以找到32位的tgz文件地址,如:http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.4.2.tgz
2、安装MongoDB(安装到/usr)
cd /usr
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.4.2.tgz
tar zxvf mongodb-linux-i686-2.4.2.tgz
mv mongodb-linux-i686-2.4.2 mongodb (文件重命名,移动文件跟重命名都是同一个命令,mv(就是move)的意思)
cd mongodb
mkdir data
cd data
mkdir db (建立数据文件目录)
cd ../
mkdir logs (建立日志目录)
cd bin
vi mongodb.conf
3、mongodb.conf文件输入如下内容:
dbpath=/data/db (看w3cschool上,data目录只能在根目录上,不然自启动会有问题)
logpath=/usr/mongodb/logs/mongodb.log
port=27017
fork=true
nohttpinterface=true
4、命令行输入一下内容,重新绑定mongodb的配置文件地址和访问IP
/usr/mongodb/bin/mongod --bind_ip localhost -f /usr/mongodb/bin/mongodb.conf
5、开机自动启动mongodb
vi /etc/rc.d/rc.local
/usr/mongodb/bin/mongod --config /usr/mongodb/bin/mongodb.conf (文件输入内容)
6、重启一下系统,测试下能不能自启
#进入mongodb的shell模式
/usr/mongodb/bin/mongo
#查看数据库列表
show dbs
#当前db版本
db.version();
7、配置环境变量
vi /etc/profile #添加环境变量,编辑,在最后一行添加下面的代码:
export PATH=$PATH:/usr/mongodb/bin
保存后重启电脑。这样直接输入mongo就可以连接数据库了,在不需要像5中需要输入/usr/mongodb/bin/mongo进入mongodb的shell模式了
技术分享
8、如果某次启动后,发现输入mongo无法连接数据库,可能原因是上次未正常关机导致的,此时删除/data/db目录内的mogod.lock文件,重启即可。

9、mongodb管理工具:Robomongo

centos安装mongodb

标签:

Centos7配置MongodDB服务

1、在 /lib/systemd/system 目录下创建名称为 mongodb 的服务(自定义服务名)

2、在 mongodb.service 中输入如下信息:

3、设置 mongodb.service 权限

至此,MongoDB服务配置完成~~

其中MongoDB的配置文件mongod.conf的基本内容如下:

systemctl命令

参考:
https://www.cnblogs.com/sunday294/p/6907992.html
http://www.jinbuguo.com/systemd/systemd.service.html

Centos7配置MongodDB服务

1、在 /lib/systemd/system 目录下创建名称为 mongodb 的服务(自定义服务名)

2、在 mongodb.service 中输入如下信息:

3、设置 mongodb.service 权限

至此,MongoDB服务配置完成~~

其中MongoDB的配置文件mongod.conf的基本内容如下:

systemctl命令

参考:
https://www.cnblogs.com/sunday294/p/6907992.html
http://www.jinbuguo.com/systemd/systemd.service.html

Out of memory: Kill process 解决

环境:Centos7

现象:Linux测试服务器上部署了很多程序mysql、mongodb、java等等。程序操作mongodb经常进程被杀死的情况,导致业务中断,mongodb 的logs无提示信息。查看系统日志message后,发现对应时间点,系统自动kill掉了mongodb进程,如下

Out of memory: Kill process 5372 (mongod) score 130 or sacrifice child

Killed process 5372 (mongod), UID 0, total-vm:2539052kB, anon-rss:2117096kB, file-rss:0kB, shmem-rss:0kB

Linux 分配内存策略

Linux内核根据应用程序的要求来分配内存,由于进程实际上并不会将分配的内存全部使用,所以,为了提高性能,内核采用了一种过度分配内存(over-commit-memory)的策略,来间接利用进程的空闲内存,提高内存的使用效率。一般来说,这没问题。但如果大多数进程都耗光自己的内存,就有麻烦了。因此此时,所有应用程序的内存之和大于物理内存。所以,必须杀掉一部分进程,一般来说,是选内存占用最大的进程杀掉。

挑选原理

挑选的过程由linux/mm/oom_kill.c里的 oom_badness() 函数决定,挑选的算法很直接:是那个最占用内存的进程。

/**

test 2334 1.6 2.1 623800 4876 ? Ssl 09:52 0:00 /usr/sbin/test

0

当然,也可以完全关闭 OOM killer,但线上生产环境最好不要这么做。

OOM_killer是Linux自我保护的方式,当内存不足时不至于出现太严重问题,有点壮士断腕的意味

在kernel 2.6,内存不足将唤醒oom_killer,挑出/proc/<pid>/oom_score最大者并将之kill掉

为了保护重要进程不被oom-killer掉,我们可以:echo -17 > /proc/<pid>/oom_adj,-17表示禁用OOM

我们也可以对把整个 系统 的OOM给禁用掉:

sysctl -w vm.panic_on_oom=1 (默认为0,表示开启)

sysctl -p

值得注意的是,有些时候 free -m 时还有剩余内存,但还是会触发OOM-killer,可能是因为进程占用了特殊内存地址

平时我们应该留意下新进来的进程内存使用量,免得系统重要的业务进程被无辜牵连

可用 top M 查看最消耗内存的进程,但也不是进程一超过就会触发oom_killer

参数/proc/sys/vm/overcommit_memory可以控制进程对内存过量使用的应对策略

当overcommit_memory=0 允许进程轻微过量使用内存,但对于大量过载请求则不允许(默认)

当overcommit_memory=1 永远允许进程overcommit

当overcommit_memory=2 永远禁止overcommit

参考:

https://blog.csdn.net/pansaky/article/details/87518586

https://www.cnblogs.com/shenlinken/p/10987895.html

https://blog.csdn.net/weixin_34186128/article/details/94673229

https://www.cnblogs.com/yanqingxu/p/8316359.html

如何让centos6运行centos7软件

1、首先让centos6运行centos7软件足以下载MongoDB数据库。

2、其次将安装文件解压到C盘(注意:安装路径中不能出现空格),配置“环境变量”,将%MONGODB_HOME%in添加到“Path”中。

2、最后进入DOS窗口,设置数据保存目录(与端口)和日志输出目录。DOS命令:mongod--port--dbpath--logpath,就可以运行centos7软件了。

显示全文