搭建centos7+apache+mongodb+php環(huán)境-創(chuàng)新互聯(lián)

搭建centos7+apache+mongodb+php環(huán)境

最近在做一個(gè)關(guān)于nosql注入的實(shí)驗(yàn),需要搭建數(shù)據(jù)庫(kù)是mongodb的數(shù)據(jù)庫(kù)網(wǎng)站環(huán)境環(huán)境。但是本人對(duì)mongodb數(shù)據(jù)庫(kù)了解甚少,所以在搭建的過(guò)程中遇到了很多問(wèn)題。因?yàn)椴耍詫W(xué)。不知道有沒(méi)有童靴在搭建環(huán)境的時(shí)候是不是也遇到了很多問(wèn)題。
這篇文章是在做完實(shí)驗(yàn)之后寫(xiě)的,所以當(dāng)中遇到的問(wèn)題也沒(méi)有去找辦法截圖,所以只是在下面提幾個(gè)記憶猶新的問(wèn)題。如果有同學(xué)遇到同樣的問(wèn)題,希望可以幫助你解決。不要整天在搭建環(huán)境,并且還沒(méi)有完成(我就是這樣,嘲笑我吧?。。。?/strong>

公司主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè)、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出班戈免費(fèi)做網(wǎng)站回饋大家。

遇到的問(wèn)題:

1、php版本的安裝影響php的mongodb數(shù)據(jù)庫(kù)的擴(kuò)展
本次安裝選擇php5.6的版本
2、安裝時(shí)的依賴(lài)包問(wèn)題
3、安裝順序問(wèn)題
4、安裝后配置文件和啟動(dòng)方式的問(wèn)題
5、馬虎

環(huán)境介紹:

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擴(kuò)展:http://pecl.php.net/get/mongo-1.5.5.tgz

安裝步驟:

1、安裝apache服務(wù)

apache服務(wù)安裝沒(méi)有特別的要求,直接用yum源安裝就可以。
解答點(diǎn):(依賴(lài)問(wèn)題)
注意的是,一定要安裝httpd-devel,因?yàn)檫@個(gè)包和apxs命令相關(guān),此命令用來(lái)加載php模塊,當(dāng)在安裝php的時(shí)候會(huì)用到。這個(gè)就屬于安裝依賴(lài)、包的問(wèn)題。沒(méi)有這個(gè)后面編譯安裝后php,Apache服務(wù)是沒(méi)有辦法加載libphp5.so這個(gè)模塊的。
為了避免有個(gè)別包需要安裝而沒(méi)有安裝的事故發(fā)生,直接:

yum install httpd* -y

搭建centos7+apache+mongodb+php環(huán)境

2、安裝mongodb數(shù)據(jù)庫(kù)

(1)將下載的源碼上傳到服務(wù)器,然后就行解壓安裝
(2)安裝之前應(yīng)先創(chuàng)建有關(guān)目錄和文件

mkdir /data/mongodb/dbs -p
touch /data/mongodb/log

作用,第一個(gè)目錄是用來(lái)后面存放數(shù)據(jù)庫(kù)數(shù)據(jù)的,第二個(gè)文件是用來(lái)存放數(shù)據(jù)庫(kù)日志的文件,后面都會(huì)用的到。
搭建centos7+apache+mongodb+php環(huán)境

(3)將壓縮包解壓到指定目錄

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

(4)為了使用命令的方便,將數(shù)據(jù)庫(kù)的文件路徑加入到環(huán)境變量中

vi .bash_prefile

搭建centos7+apache+mongodb+php環(huán)境

使環(huán)境變量能夠生效,需要執(zhí)行一條命令:

source .bash_prefile

(4)為數(shù)據(jù)庫(kù)創(chuàng)建配置文件,啟動(dòng)數(shù)據(jù)庫(kù)
vi /etc/mongodb.conf

dbpath=/date/mongodb/dbs //數(shù)據(jù)文件地址
logpath=/data/mongodb/log //日志文件地址
port=27071 //端口號(hào)(默認(rèn)27017)
fork=true //后臺(tái)運(yùn)行
journal=true //啟用日志選項(xiàng)

啟動(dòng)數(shù)據(jù)庫(kù):

mongod -f /etc/mongodb.conf

解答點(diǎn)(數(shù)據(jù)庫(kù)啟動(dòng)方式問(wèn)題)
面啟動(dòng)方式出現(xiàn)的問(wèn)題進(jìn)行一下解答,mongodb數(shù)據(jù)庫(kù)默認(rèn)的端口是27017,進(jìn)入數(shù)據(jù)庫(kù)的時(shí)候可以直接輸入命令mongo就可以,但是由于我的一時(shí)馬虎,將配置文件中寫(xiě)成了27071所以用開(kāi)始的方法是沒(méi)辦法啟動(dòng)的。當(dāng)改變了端口,進(jìn)入數(shù)據(jù)庫(kù)的方法是:
mongo localhost:端口號(hào)
例如我這里:mongo localhost:27071

3、安裝php

(1)將下載的源碼上傳到服務(wù)器
(2)解壓

tar -zxvf php-5.6.39.tar.gz

搭建centos7+apache+mongodb+php環(huán)境

(3)安裝相關(guān)依賴(lài):

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

這里編譯安裝的時(shí)候會(huì)需要很多相關(guān)依賴(lài),為了方便,避免產(chǎn)生錯(cuò)誤,在網(wǎng)上搜集了一些需要的依賴(lài),同時(shí),編譯安裝需要gcc,可以看一下自己有沒(méi)有這個(gè)編譯工具,沒(méi)有的話也需要安裝。

(4)進(jìn)入解壓后的目錄,編譯安裝

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 要打開(kāi)SO模塊

這里apxs的命令根據(jù)自己個(gè)人情況路徑而定,查看apxs文件路徑方法:

which apxs

(5)安裝

make && make install
cp php.ini-production /etc/php.ini

(6)同樣的,設(shè)置環(huán)境變量
搭建centos7+apache+mongodb+php環(huán)境

使環(huán)境變量生效:source .bash_prefile
安裝完之后看一看在/etc/httpd/modules/目錄下有沒(méi)有l(wèi)ibphp5.so,有的話說(shuō)明模塊安裝的沒(méi)問(wèn)題,如果這里沒(méi)有這個(gè)模塊的話,在apache解析php的時(shí)候會(huì)出現(xiàn)錯(cuò)誤。

4、安裝擴(kuò)展

(1)將擴(kuò)展的源碼上傳服務(wù)器
(2)解壓:tar -zxvf mongo-1.5.5.tgz
(3)進(jìn)入解壓后的目錄,生成執(zhí)行文件configure

執(zhí)行命令:phpize
搭建centos7+apache+mongodb+php環(huán)境

是出錯(cuò)的,有辦法解決
解決錯(cuò)誤方法:

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.

重新執(zhí)行phpize命令就ok了

(4)執(zhí)行configure文件生成Makefile文件

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

(5)安裝

make && make install

到這里基本的安裝是差不多已經(jīng)完成了,但是環(huán)境還是不能使用,接下來(lái)就是對(duì)配置文件的修改。

5、對(duì)配置文件的修改

(1)當(dāng)安裝完成擴(kuò)展的時(shí)候,會(huì)出現(xiàn)這樣的一句話,extension_dir=/usr/lib/php/extensions/debug-non-zts-20151012/
可能和我的不同,但是都是類(lèi)似的,將這樣的一句話復(fù)制下來(lái),打開(kāi)/etc/php.ini文件,添加進(jìn)去,同時(shí)還要添加extension=mongo.so
這兩個(gè)都是在啟用mongodb的擴(kuò)展。沒(méi)有這個(gè)是沒(méi)有辦法對(duì)數(shù)據(jù)庫(kù)操作的。
vi /etc/php.ini
追加:

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

(2)打開(kāi)apache的配置文件對(duì)其進(jìn)行修改。

追加:

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

這些語(yǔ)句的位置在文件中已經(jīng)給出,搜索AddType和DirectoryIndex就會(huì)找到

解釋點(diǎn):(php版本和擴(kuò)展之間的問(wèn)題)
有的人可能是直接利用的mongodb的yum源,然后執(zhí)行pecl install momgodb的安裝擴(kuò)展,這個(gè)時(shí)候如果你的php是5.4或5.4以下的版本會(huì)直接報(bào)錯(cuò),提示你說(shuō)需要php5.5.99以上的版本。所以這里為了避免沖突,也是利用了php5.6的版本。

解釋點(diǎn):(安裝順序問(wèn)題、馬虎)
我們都知道lamp(linux+apa+mysql+php)的安裝順序,就是安裝amp的順序安裝的,這里apa+mongo+php也是一樣,按照這樣的順序安裝。我出現(xiàn)安裝錯(cuò)誤的原因在于,沒(méi)有安裝apa的時(shí)候就安裝了php。我有個(gè)習(xí)慣,就是在做不了解的環(huán)境的時(shí)候,沒(méi)安裝一個(gè)服務(wù)就會(huì)創(chuàng)建一個(gè)快照,防止后面做錯(cuò),還可以回來(lái)重新做。但是就是因?yàn)檫@個(gè),當(dāng)我返回快照的時(shí)候,我以為返回到了安裝好Apache服務(wù)的快照上了,結(jié)果不想而知。

好了,到這里基本都已經(jīng)解決了所有服務(wù)的安裝,只要將服務(wù)都啟動(dòng)開(kāi)就可以訪問(wèn)網(wǎng)站了,自己可以寫(xiě)個(gè)php網(wǎng)頁(yè)進(jìn)行測(cè)試。如果出現(xiàn)關(guān)于mongo class的錯(cuò)誤,說(shuō)明你的擴(kuò)展沒(méi)有弄好,要么去修改一下php.ini要么重新安裝一下就好。

注意:在訪問(wèn)網(wǎng)站的時(shí)候一定記得關(guān)閉防火墻,和selinux。關(guān)閉方法:systemctl stop firewalld 和 setenforce 0

希望能夠幫到那些如我一般錯(cuò)誤一堆的人。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

新聞標(biāo)題:搭建centos7+apache+mongodb+php環(huán)境-創(chuàng)新互聯(lián)
地址分享:http://muchs.cn/article12/dieedc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)網(wǎng)站建設(shè)、ChatGPT電子商務(wù)、網(wǎng)站內(nèi)鏈自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)