中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

搭建centos7+apache+mongodb+php環境

發布時間:2020-06-05 07:49:21 來源:網絡 閱讀:2137 作者:菜鵝小生 欄目:安全技術

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

搭建centos7+apache+mongodb+php環境

2、安裝mongodb數據庫

(1)將下載的源碼上傳到服務器,然后就行解壓安裝
(2)安裝之前應先創建有關目錄和文件

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

作用,第一個目錄是用來后面存放數據庫數據的,第二個文件是用來存放數據庫日志的文件,后面都會用的到。
搭建centos7+apache+mongodb+php環境

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

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

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

vi .bash_prefile

搭建centos7+apache+mongodb+php環境

使環境變量能夠生效,需要執行一條命令:

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

搭建centos7+apache+mongodb+php環境

(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)同樣的,設置環境變量
搭建centos7+apache+mongodb+php環境

使環境變量生效:source .bash_prefile
安裝完之后看一看在/etc/httpd/modules/目錄下有沒有libphp5.so,有的話說明模塊安裝的沒問題,如果這里沒有這個模塊的話,在apache解析php的時候會出現錯誤。

4、安裝擴展

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

執行命令:phpize
搭建centos7+apache+mongodb+php環境

是出錯的,有辦法解決
解決錯誤方法:

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

建瓯市| 呼和浩特市| 张家口市| 瓮安县| 临夏市| 宜春市| 门源| 巴林左旗| 滨海县| 民权县| 密山市| 凤城市| 金乡县| 丹棱县| 平乐县| 莱西市| 湘乡市| 绥滨县| 措美县| 罗源县| 荃湾区| 蚌埠市| 股票| 灌云县| 新巴尔虎左旗| 枣庄市| 陆良县| 平陆县| 句容市| 泰和县| 长沙县| 安龙县| 惠水县| 阆中市| 项城市| 莱阳市| 海门市| 关岭| 达州市| 三台县| 余姚市|