设为首页 收藏本站
查看: 953|回复: 0

[经验分享] 搭建centos7+apache+mongodb+php环境

[复制链接]

尚未签到

发表于 2019-2-15 13:50:09 | 显示全部楼层 |阅读模式
搭建centos7+apache+mongodb+php环境
  最近在做一个关于nosql注入的实验,需要搭建数据库是mongodb的数据库网站环境环境。但是本人对mongodb数据库了解甚少,所以在搭建的过程中遇到了很多问题。因为菜,所以学。不知道有没有童靴在搭建环境的时候是不是也遇到了很多问题。
这篇文章是在做完实验之后写的,所以当中遇到的问题也没有去找办法截图,所以只是在下面提几个记忆犹新的问题。如果有同学遇到同样的问题,希望可以帮助你解决。不要整天在搭建环境,并且还没有完成(我就是这样,嘲笑我吧!!!)

遇到的问题:
  1、php版本的安装影响php的mongodb数据库的扩展
本次安装选择php5.6的版本
2、安装时的依赖包问题
3、安装顺序问题
4、安装后配置文件和启动方式的问题
5、马虎
环境介绍:
  linux:CentOS7
apache:2.4.6
MongoDB:3.2.10
php:5.6
需要下载的安装源码及其他源码
  php-5.6:http://cn2.php.net/downloads.php
mongodb-3.2.10:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.10.tgz
mongodb的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 -p
touch /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 install
cp 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.gz
tar -zvxf m4-1.4.9.tar.gz
cd 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 .php
AddType application/x-httpd-php .htm
AddType 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
  希望能够帮到那些如我一般错误一堆的人。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-672490-1-1.html 上篇帖子: centos7安装jenkins 下篇帖子: centOS 7下安装与配置heartbeat高可用集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表