最近在做一個(gè)關(guān)于nosql注入的實(shí)驗(yàn),需要搭建數(shù)據(jù)庫是mongodb的數(shù)據(jù)庫網(wǎng)站環(huán)境環(huán)境。但是本人對mongodb數(shù)據(jù)庫了解甚少,所以在搭建的過程中遇到了很多問題。因?yàn)椴耍詫W(xué)。不知道有沒有童靴在搭建環(huán)境的時(shí)候是不是也遇到了很多問題。
這篇文章是在做完實(shí)驗(yàn)之后寫的,所以當(dāng)中遇到的問題也沒有去找辦法截圖,所以只是在下面提幾個(gè)記憶猶新的問題。如果有同學(xué)遇到同樣的問題,希望可以幫助你解決。不要整天在搭建環(huán)境,并且還沒有完成(我就是這樣,嘲笑我吧!?。。?/strong>
1、php版本的安裝影響php的mongodb數(shù)據(jù)庫的擴(kuò)展
本次安裝選擇php5.6的版本
2、安裝時(shí)的依賴包問題
3、安裝順序問題
4、安裝后配置文件和啟動(dòng)方式的問題
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擴(kuò)展:http://pecl.php.net/get/mongo-1.5.5.tgz
apache服務(wù)安裝沒有特別的要求,直接用yum源安裝就可以。
解答點(diǎn):(依賴問題)
注意的是,一定要安裝httpd-devel,因?yàn)檫@個(gè)包和apxs命令相關(guān),此命令用來加載php模塊,當(dāng)在安裝php的時(shí)候會(huì)用到。這個(gè)就屬于安裝依賴、包的問題。沒有這個(gè)后面編譯安裝后php,Apache服務(wù)是沒有辦法加載libphp5.so這個(gè)模塊的。
為了避免有個(gè)別包需要安裝而沒有安裝的事故發(fā)生,直接:
yum install httpd* -y
(1)將下載的源碼上傳到服務(wù)器,然后就行解壓安裝
(2)安裝之前應(yīng)先創(chuàng)建有關(guān)目錄和文件
mkdir /data/mongodb/dbs -p
touch /data/mongodb/log
作用,第一個(gè)目錄是用來后面存放數(shù)據(jù)庫數(shù)據(jù)的,第二個(gè)文件是用來存放數(shù)據(jù)庫日志的文件,后面都會(huì)用的到。
(3)將壓縮包解壓到指定目錄
tar -xvf mongodb-linux-x86_64-rhel62-3.2.10.gz -C /usr/local
(4)為了使用命令的方便,將數(shù)據(jù)庫的文件路徑加入到環(huán)境變量中
vi .bash_prefile
使環(huán)境變量能夠生效,需要執(zhí)行一條命令:
source .bash_prefile
(4)為數(shù)據(jù)庫創(chuàng)建配置文件,啟動(dòng)數(shù)據(jù)庫
vi /etc/mongodb.conf
dbpath=/date/mongodb/dbs //數(shù)據(jù)文件地址
logpath=/data/mongodb/log //日志文件地址
port=27071 //端口號(默認(rèn)27017)
fork=true //后臺運(yùn)行
journal=true //啟用日志選項(xiàng)
啟動(dòng)數(shù)據(jù)庫:
mongod -f /etc/mongodb.conf
解答點(diǎn)(數(shù)據(jù)庫啟動(dòng)方式問題)
面啟動(dòng)方式出現(xiàn)的問題進(jìn)行一下解答,mongodb數(shù)據(jù)庫默認(rèn)的端口是27017,進(jìn)入數(shù)據(jù)庫的時(shí)候可以直接輸入命令mongo就可以,但是由于我的一時(shí)馬虎,將配置文件中寫成了27071所以用開始的方法是沒辦法啟動(dòng)的。當(dāng)改變了端口,進(jìn)入數(shù)據(jù)庫的方法是:
mongo localhost:端口號
例如我這里:mongo localhost:27071
(1)將下載的源碼上傳到服務(wù)器
(2)解壓
tar -zxvf php-5.6.39.tar.gz
(3)安裝相關(guān)依賴:
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)依賴,為了方便,避免產(chǎn)生錯(cuò)誤,在網(wǎng)上搜集了一些需要的依賴,同時(shí),編譯安裝需要gcc,可以看一下自己有沒有這個(gè)編譯工具,沒有的話也需要安裝。
(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 要打開SO模塊
這里apxs的命令根據(jù)自己個(gè)人情況路徑而定,查看apxs文件路徑方法:
which apxs
(5)安裝
make && make install
cp php.ini-production /etc/php.ini
(6)同樣的,設(shè)置環(huán)境變量
使環(huán)境變量生效:source .bash_prefile
安裝完之后看一看在/etc/httpd/modules/目錄下有沒有l(wèi)ibphp5.so,有的話說明模塊安裝的沒問題,如果這里沒有這個(gè)模塊的話,在apache解析php的時(shí)候會(huì)出現(xiàn)錯(cuò)誤。
(1)將擴(kuò)展的源碼上傳服務(wù)器
(2)解壓:tar -zxvf mongo-1.5.5.tgz
(3)進(jìn)入解壓后的目錄,生成執(zhí)行文件configure
執(zhí)行命令:phpize
是出錯(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 installyum 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)境還是不能使用,接下來就是對配置文件的修改。
(1)當(dāng)安裝完成擴(kuò)展的時(shí)候,會(huì)出現(xiàn)這樣的一句話,extension_dir=/usr/lib/php/extensions/debug-non-zts-20151012/
可能和我的不同,但是都是類似的,將這樣的一句話復(fù)制下來,打開/etc/php.ini文件,添加進(jìn)去,同時(shí)還要添加extension=mongo.so
這兩個(gè)都是在啟用mongodb的擴(kuò)展。沒有這個(gè)是沒有辦法對數(shù)據(jù)庫操作的。
vi /etc/php.ini
追加:
extension_dir=/usr/lib/php/extensions/debug-non-zts-20151012/
extension=mongo.so
(2)打開apache的配置文件對其進(jìn)行修改。
追加:
AddType application/x-httpd-php .php
AddType application/x-httpd-php .htm
AddType application/x-httpd-php .htmlDirectoryIndex index.html index.cgi index.php index.phtml index.php3
這些語句的位置在文件中已經(jīng)給出,搜索AddType和DirectoryIndex就會(huì)找到
解釋點(diǎn):(php版本和擴(kuò)展之間的問題)
有的人可能是直接利用的mongodb的yum源,然后執(zhí)行pecl install momgodb的安裝擴(kuò)展,這個(gè)時(shí)候如果你的php是5.4或5.4以下的版本會(huì)直接報(bào)錯(cuò),提示你說需要php5.5.99以上的版本。所以這里為了避免沖突,也是利用了php5.6的版本。
解釋點(diǎn):(安裝順序問題、馬虎)
我們都知道lamp(linux+apa+mysql+php)的安裝順序,就是安裝amp的順序安裝的,這里apa+mongo+php也是一樣,按照這樣的順序安裝。我出現(xiàn)安裝錯(cuò)誤的原因在于,沒有安裝apa的時(shí)候就安裝了php。我有個(gè)習(xí)慣,就是在做不了解的環(huán)境的時(shí)候,沒安裝一個(gè)服務(wù)就會(huì)創(chuàng)建一個(gè)快照,防止后面做錯(cuò),還可以回來重新做。但是就是因?yàn)檫@個(gè),當(dāng)我返回快照的時(shí)候,我以為返回到了安裝好Apache服務(wù)的快照上了,結(jié)果不想而知。
好了,到這里基本都已經(jīng)解決了所有服務(wù)的安裝,只要將服務(wù)都啟動(dòng)開就可以訪問網(wǎng)站了,自己可以寫個(gè)php網(wǎng)頁進(jìn)行測試。如果出現(xiàn)關(guān)于mongo class的錯(cuò)誤,說明你的擴(kuò)展沒有弄好,要么去修改一下php.ini要么重新安裝一下就好。
注意:在訪問網(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元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
新聞標(biāo)題:搭建centos7+apache+mongodb+php環(huán)境-創(chuàng)新互聯(lián)
地址分享:http://jinyejixie.com/article12/dieedc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、網(wǎng)站建設(shè)、ChatGPT、電子商務(wù)、網(wǎng)站內(nèi)鏈、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容