搭建centos7+apache+mongodb+php环境

搭建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

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

原文地址:http://blog.51cto.com/12332766/2330294

时间: 2024-10-14 14:16:57

搭建centos7+apache+mongodb+php环境的相关文章

如何搭建lamp(CentOS7+Apache+MySQL+PHP)环境

我的环境:虚拟机是:VMware-workstation-full-8.0.0-471780.exe:Linux系统用的是:CentOS-7-x86_64-Minimal-1503-01.ios;(阿里云上也是用的CentOS7-64bit)准备好这两个之后,就开始一步一步搭建我们的LAMP环境了. 一.安装虚拟机 二.安装CentOS7 注意:以下安装,我都是用的root权限. 三.安装Apache1.安装yum -y install httpd2.开启apache服务systemctl st

如何搭建lamp(CentOS7+Apache+MySQL+PHP)环境 [转]

在网上搜资料,自己在本地虚拟机上尝试搭建,弄了整整一天一夜,终于弄好了.网上的资料,虽然很多,但大多都是重复的,拿去试了之后,又很多都不能得到正确的结果.最终找到了适合我的linux环境的搭建方式;在这里贴出来:Install Apache, PHP And MySQL On CentOS 7 (LAMP)度娘真不给力啊,没搜出来靠谱的方法.最后用喜乐搜找到的靠谱的教程. 这里还是要总结一下我的LAMP环境的搭建步骤.我先在电脑里装了虚拟机,在虚拟机中测试了数次之后,再在服务器上搭建的.说说我的

阿里云服务器centos7.2操作系统搭建PHP+Apache+Mysql+phpMyAdmin环境以及网站上线

没有谁是一生下来就会编程的,只要肯学,慢慢地就能学到越来越多的编程技术及知识. --自创引言 前言:一开始客户购买的服务器是windows8操作系统,阿里云ces服务器有个公网ip,有个私网ip.windows环境下建立一个ftp站点,ip地址设为全部未分配.在外网上不能通过ftp://公网ip访问,在内网上也只能通过ftp://内网ip访问.最后为了尽快完成网站线上发布和部署,联系了阿里云商务人员将服务器由windows8系统换成了centos7.2操作系统. 步骤: 1.下载xshell 5

centos7.2搭建lamp(Apache+PHP+Mysql环境)教程

服务器上比较推荐centos,特别对于新手,首选CentOS,并不是centos比Debian和ubuntu好,而是centos是初学者安装vps的首选,它既稳定,占用资源又少此版本生命周期较长,而且网上有关centos的教程很多,方便学习,我们这里选择了Centos7.2,采用yum在线安装. 一. 检查系统环境 1.确认centos版本 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (

centos7 搭建lamp(Apache PHP Mysql环境)

安装apache yum -y install httpd 安装Php yum -y install php 安装php-fpm yum -y install php-fpm 安装Mysql yum -y install mysql 安装 mysql-server wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.

USBWebServer 中文便携版 快速搭建 PHP/MySQL 网站服务器环境

如果你是一位 WEB 开发者,或正在学习网页编程,你一定会发现,每到一台新电脑上想要在本地调试测试/运行网站代码都得搭建配置一遍 WAMP (Win.Apache.PHP.MySQL) 环境简直烦透了! USBWebserver 是一款非常好用的傻瓜式本地电脑快速架设PHP网站环境的工具,它最大特色是纯绿色便携,可直接放在U盘里随处运行或通过 Dropbox.百度网盘等同步.它集成了 Apache (httpd).PHP.MySQL 以及 PHPMyAdmin 等组件,支持各种流行的PHP程序如

阿里云CentOS7搭建Apache+PHP+MySQL环境,注意php加载mysql的方法

阿里云CentOS7搭建Apache+PHP+MySQL环境 投稿:mrr 字体:[增加 减小] 类型:转载 时间:2017-03-24我要评论 最近要搭建一个阿里云的LMAP环境,选了CentOS7来做搭建.下面通过本文给大家分享阿里云CentOS7搭建Apache+PHP+MySQL环境,感兴趣的朋友一起看看吧 最近要搭建一个阿里云的LMAP环境,选了CentOS7来做搭建. 1.Apache Centos7默认已经安装httpd服务,只是没有启动. 如果你需要全新安装,可以yum inst

在Docker下搭建Apache+PHP+mysql环境的过程记录

在Docker下搭建Apache+PHP+mysql环境的过程记录 这是一篇搭建Docker环境的过程记录,方便以后查看.主要记录了搭建所用到的工具,使用的命令和遇到的坑. 1. 安装Docker 第一步肯定是到Docker的官网(https://www.docker.com)上去下载安装包,目前有CE和EE两个版本,简单来说,CE就是免费版,EE就是收费版.因为我用的是Windows系统,这里就只讲在Windows系统上怎么安装. 也可以点这里直接下载Windows版.下好之后运行安装. 因为

Lamp(linux+apache+mysql+php)环境搭建

Lamp(linux+apache+mysql+php)环境搭建 1.安装apache2:sudo apt-get installapache2 安装完毕后.执行例如以下命令重新启动apache:sudo/etc/init.d/apache2 restart,在浏览器中输入http://localhost或者http://127.0.0.1,会看到"It works!"说明apache成功安装. 2.安装php:sudoapt-get install libapache2-mod-ph