LAMP:apache、mysql彤叉、php的安裝及互聯(lián)互通

LAMP簡介

LAMP(Linux- Apache-MySQL-PHP)網(wǎng)站架構(gòu)是目前國際流行的Web框架庶柿,該框架包括:Linux操作系統(tǒng),Apache網(wǎng)絡(luò)服務(wù)器秽浇,MySQL數(shù)據(jù)庫浮庐,Perl、PHP或者Python編程語言柬焕,所有組成產(chǎn)品均是開源軟件审残,是國際上成熟的架構(gòu)框架,很多流行的商業(yè)應(yīng)用都是采取這個架構(gòu)斑举。LAMP具有通用搅轿、跨平臺、高性能懂昂、低價格的 優(yōu)勢介时,因此LAMP無論是性能、質(zhì)量還是價格都是企業(yè)搭建網(wǎng)站的首選平臺凌彬。

相關(guān)說明

1沸柔、本篇(LAMP系列之一)主要介紹整個平臺架構(gòu)的搭建:Apache2.4.9的編譯安裝,mysql-5.5.33的安裝铲敛,php-5.4.26的編譯安裝褐澎,以及整個平臺的互聯(lián)互通;第二篇將介紹《LAMP的性能測試以及安裝xcache伐蒋,為php加速》工三。
2、為了模擬環(huán)境的真實(shí)性先鱼,實(shí)驗(yàn)中使用3臺服務(wù)器俭正,Apache服務(wù)器,php服務(wù)器和Mysql數(shù)據(jù)庫服務(wù)器
3焙畔、關(guān)于IP:Apache(172.16.251.93)掸读,php(172.16.150.150),Mysql(172.16.251.104)
4、介于在本文中會使用到名稱解析儿惫,而關(guān)于DNS的博文在本博客中已經(jīng)有兩篇澡罚,所以這里為了方便,不再搭建DNS服務(wù)器肾请,而是使用修改hosts文件來做名稱解析

Apache2.4.9的編譯安裝

1留搔、解決依賴關(guān)系
httpd-2.4.9需要較新版本的apr和apr-util,因此需要事先對其進(jìn)行升級铛铁。事先我們還應(yīng)該裝好開發(fā)包組和pcre隔显。

yum -y install pcre-devel
yum -y groupinstall "Development tools"
yum -y groupinstall "Server Platform Development"

對于安裝過程中使用的apr,apr-util和httpd就使用下圖中的這幾個


1.1、編譯安裝apr

tar xf apr-1.5.0.tar.bz2
cd apr-1.5.0
./configure --prefix=/usr/local/apr
make && make install

1.2避归、編譯安裝apr-util

tar xf apr-util-1.5.3.tar.bz2
cd apr-util-1.5.3
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install

1.3荣月、編譯安裝httpd-2.4.9

tar xf httpd-2.4.9.tar.bz2
cd httpd-2.4.9
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
make && make install
  • 在httpd-2.4.9的安裝路徑選擇上,為了不和系統(tǒng)的httpd沖突梳毙,我們指定其安裝路徑為/usr/local/apache,配置文件裝到/etc/httd24中哺窄,同時一會兒的服務(wù)也要改為httpd24
  • 選項(xiàng)解釋說明:--prefix指定安裝路徑,--sysconfdir指定配置文件目錄账锹,--enalbe-so支持基于DMO的方式動態(tài)加載模塊萌业,--enable-ssl支持https協(xié)議,--enable-cgi支持cgi機(jī)制奸柬,--enable-rewrite支持URL重寫生年,--with-zlib支持網(wǎng)頁數(shù)據(jù)壓縮,--enable-modules=most啟用大多數(shù)的常用模塊廓奕,--with-mpm=event默認(rèn)的mpm模塊為event

2抱婉、修改httpd的主配置文件,設(shè)置其pid文件的路徑 因?yàn)樵趆ttpd2.4中桌粉,其pid的位置變的很詭異蒸绩,不再是在/var/run下,所以我們就給它修改到/var/run下铃肯,其實(shí)不改也無妨患亿,只要設(shè)置對了就好了
vim /etc/httpd/httpd.conf


3、提供SysV服務(wù)腳本/etc/rc.d/init.d/http24
這個腳本就不寫了押逼,直接稍微改改httpd的服務(wù)腳本就好了步藕,先拷貝一份



4、修改httpd的腳本挑格,改為適合httd24的咙冗,只需把這幾個變量改了就好了,下面的start(),stop()等參數(shù)都是調(diào)用的這幾個變量漂彤,所以別的無需修改雾消。保存退出后不需要再給執(zhí)行權(quán)限了瞬逊,已經(jīng)有了。



5仪或、把httpd24添加到系統(tǒng)服務(wù),并測試

6士骤、導(dǎo)出頭文件



7范删、導(dǎo)出man幫助手冊



8、輸出二進(jìn)制程序
vim /etc/profile.d/httpd.sh
export PATH=/usr/local/apache/bin:$PATH
. /etc/profile.d/httpd.sh

四拷肌、安裝mysql-5.5.33
1到旦、準(zhǔn)備數(shù)據(jù)存放的文件系統(tǒng)
因?yàn)閿?shù)據(jù)總是在動態(tài)增長的,所以我們要創(chuàng)建一個邏輯卷來保存數(shù)據(jù)巨缘。使用/dev/sdb1這個分區(qū)來創(chuàng)建邏輯卷添忘。
1)準(zhǔn)備磁盤為LVM格式


2)創(chuàng)建lvm并格式化


2、設(shè)置開機(jī)自動掛載
這里假設(shè)其邏輯卷的掛載目錄為/data若锁,而后需要創(chuàng)建/data/mydata目錄做為mysql數(shù)據(jù)的存放目錄搁骑。



3、查看掛載情況



4又固、為mysql準(zhǔn)備系統(tǒng)用戶和組

5仲器、進(jìn)入/data掛載目錄,創(chuàng)建mydata數(shù)據(jù)存放的目錄仰冠,并修改屬主和屬組



6乏冀、解壓mysql并為其創(chuàng)建一個鏈接,以后升級的時候洋只,直接改鏈接地址就可以了


7辆沦、進(jìn)入/usr/local/mysql文件夾,修改屬主與屬組


8识虚、初始化系統(tǒng)庫肢扯,進(jìn)入到/usr/local/mysql


9、為mysql提供主配置文件舷礼,并修改此文件中thread_concurrency的值為你的CPU個數(shù)乘以


2鹃彻,另外還需要添加如下行指定mysql數(shù)據(jù)文件的存放位置

cd /usr/local/mysql
cp support-files/my-large.cnf /etc/my.cnf


10、為mysql提供sysv服務(wù)腳本并添加為系統(tǒng)服務(wù)
cd /usr/local/mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on


11妻献、啟動mysql服務(wù)蛛株,看能否正常啟動


12、后續(xù)操作
為了使用mysql的安裝符合系統(tǒng)使用規(guī)范育拨,并將其開發(fā)組件導(dǎo)出給系統(tǒng)使用谨履,這里還需要進(jìn)行如下步驟:
1)輸出mysql的man手冊至man命令的查找路徑:
編輯/etc/man.config,添加如下行即可:
MANPATH /usr/local/mysql/man
2)輸出mysql的頭文件至系統(tǒng)頭文件路徑/usr/include:
這可以通過簡單的創(chuàng)建鏈接實(shí)現(xiàn):
# ln -sv /usr/local/mysql/include /usr/include/mysql
3)輸出mysql的庫文件給系統(tǒng)庫查找路徑:
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
而后讓系統(tǒng)重新載入系統(tǒng)庫:
# ldconfig
4)修改PATH環(huán)境變量熬丧,讓系統(tǒng)可以直接使用mysql的相關(guān)命令笋粟。具體實(shí)現(xiàn)過程這里不再給出。
# vim /etc/profile.d/mysql.sh
#export PATH=/usr/local/mysql/bin:$PATH
#. /etc/profile.d/mysql.sh
五、編譯安裝php-5.4.26
1害捕、編譯安裝php 绿淋,步驟和上面的都一樣,就不再給圖了尝盼,只給步驟
因?yàn)槲覀冞@里php和mysql服務(wù)器是分開部署的吞滞,不在本地,所以得考慮到數(shù)據(jù)庫的連接問題盾沫。
說明:如果使用PHP5.3以上版本裁赠,為了鏈接MySQL數(shù)據(jù)庫,可以指定mysqlnd赴精,這樣在本機(jī)就不需要先安裝MySQL或MySQL開發(fā)包了佩捞。mysqlnd從php 5.3開始可用,可以編譯時綁定到它(而不用和具體的MySQL客戶端庫綁定形成依賴)蕾哟,但從PHP 5.4開始它就是默認(rèn)設(shè)置了一忱。
tar xf php-5.4.26.tar.bz2
cd php-5.4.26
./configure --prefix=/usr/local/php --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
make
make intall

2、為php提供配置文件(我的php解壓在了/root/soft下谭确,安裝在了/usr/local/php下)
cp /root/soft/php-5.4.26/php.ini-production /etc/php.ini
3掀潮、 編輯apache配置文件httpd.conf,以apache支持php

3# vim /etc/httpd24/httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
定位至DirectoryIndex index.html
修改為:DirectoryIndex index.php index.html
六琼富、配置php-fpm
因?yàn)锳pache服務(wù)器連接php服務(wù)器是通過fastcgi協(xié)議的仪吧,因此我們還需通過php-fpm對其進(jìn)行配置。
1鞠眉、為php-fpm提供SysV init腳本薯鼠,并將其添加至服務(wù)列表:
cp /root/soft/php-5.4.26/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on

2、為php-fpm提供配置文件:
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

3械蹋、配置php-fpm的相關(guān)選項(xiàng)出皇,并啟用pid文件

···
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php/var/run/php-fpm.pid
pm.max_children:靜態(tài)方式下開啟的php-fpm進(jìn)程數(shù)量。
pm.start_servers:動態(tài)方式下的起始php-fpm進(jìn)程數(shù)量哗戈。
pm.min_spare_servers:動態(tài)方式下的最小php-fpm進(jìn)程數(shù)量郊艘。
pm.max_spare_servers:動態(tài)方式下的最大php-fpm進(jìn)程數(shù)量。
如果dm設(shè)置為static唯咬,那么其實(shí)只有pm.max_children這個參數(shù)生效纱注。系統(tǒng)會開啟設(shè)置數(shù)量的php-fpm進(jìn)程。
如果dm設(shè)置為dynamic胆胰,那么pm.max_children參數(shù)失效狞贱,后面3個參數(shù)生效。系統(tǒng)會在php-fpm運(yùn)行開始的時候啟動pm.start_servers個php-fpm進(jìn)程蜀涨,然后根據(jù)系統(tǒng)的需求動態(tài)在pm.min_spare_servers和pm.max_spare_servers之間調(diào)整php-fpm進(jìn)程數(shù)瞎嬉。
···
4蝎毡、修改fpm的默認(rèn)監(jiān)聽端口
默認(rèn)情況下,fpm監(jiān)聽在127.0.0.1的9000端口氧枣,也可以使用如下命令驗(yàn)正其是否已經(jīng)監(jiān)聽在相應(yīng)的套接字沐兵。

netstat -tnlp | grep php-fpm

tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 689/php-fpm
所以我們要把監(jiān)聽端口改到我們的php服務(wù)器上
vim /usr/local/php/etc/php-fpm.conf

接下來就可以啟動php-fpm并驗(yàn)證其否成功監(jiān)聽了

使用如下命令來驗(yàn)正(如果此命令輸出有中幾個php-fpm進(jìn)程就說明啟動成功了):

ps aux | grep php-fpm

七、配置httpd-2.4.9
1便监、啟用httpd的相關(guān)模塊
在Apache httpd 2.4以后已經(jīng)專門有一個模塊針對FastCGI的實(shí)現(xiàn)痒筒,此模塊為mod_proxy_fcgi.so,它其實(shí)是作為mod_proxy.so模塊的 擴(kuò)充茬贵,因此,這兩個模塊都要加載
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so


2移袍、配置虛擬主機(jī)支持使用fcgi
1)要使用虛擬主機(jī)解藻,首先要關(guān)閉中心主機(jī),再開啟虛擬主機(jī)的模塊兒葡盗,也是在/etc/httpd24/httpd.conf中

2)配置虛擬主機(jī)
vim /etc/httpd24/extra/httpd-vhosts.conf


ProxyPassMatch:把以.php結(jié)尾的文件請求發(fā)送到php-fpm進(jìn)程螟左,php-fpm至少需要知道運(yùn)行的目錄和URI,所以這里直接在fcgi://127.0.0.1:9000后指明了這兩個參數(shù)觅够,其它的參數(shù)的傳遞已經(jīng)被mod_proxy_fcgi.so進(jìn)行了封裝胶背,不需要手動指定。所以在Apache服務(wù)器和php服務(wù)器都應(yīng)該建立/www/shuishui.com/這個目錄喘先,然后把網(wǎng)頁文件放到這個目錄中來钳吟,Apache下要保存靜態(tài)的index.html和動態(tài)的index.php,php服務(wù)器上只需保存動態(tài)的index.php即可窘拯。
3红且、繼續(xù)編輯Apache的主配置文件,讓apache能識別php格式的頁面涤姊,并支持php格式的主頁
vim /etc/httpd24/httpd.conf
1)添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
2)定位至 DirectoryIndex index.html
修改為:DirectoryIndex index.php index.html
八暇番、測試Apache服務(wù)器與php服務(wù)器的互連
在Apache服務(wù)器與php服務(wù)器下的/www/shuishui.com/目錄中分別創(chuàng)建index.php。Apache中的index.php只需要有這個名就可以思喊,因?yàn)樗鼤フ{(diào)用php服務(wù)器中的php.index壁酬,所以php服務(wù)器中的index.php必須要有內(nèi)容。
給php服務(wù)器中的主頁文件來個測試頁恨课,并重啟下服務(wù):
service httpd24 restart


到windows上去訪問下www.shuishui.com試試舆乔,下面就是見證奇跡的時刻

Apache與pah服務(wù)器的互聯(lián)成功
補(bǔ)充:Apache httpd 2.4以前的版本中,要么把PHP作為Apache的模塊運(yùn)行剂公,要么添加一個第三方模塊支持PHP-FPM實(shí)現(xiàn)蜕煌。
九、測試php服務(wù)器與mysql服務(wù)器的互聯(lián)
1诬留、在php服務(wù)器上的index.php中加入連接mysql服務(wù)器的選項(xiàng)

2斜纪、測試能否成功連上mysql數(shù)據(jù)庫



哎贫母,失敗了!這是為什么呢盒刚?為什么呢腺劣?雖然在index.php中要求連接數(shù)據(jù)庫,可是你想使用人家mysql的資源因块,也不獲得mysql的授權(quán)橘原,這怎么可以?除非你想黑了它涡上。沒那技術(shù)就去拿授權(quán)吧趾断!
3、在mysql服務(wù)器上授權(quán)


4吩愧、再來芋酌,重新連接


本文出自 “nmshuishui的博客” 博客,請務(wù)必保留此出處http://nmshuishui.blog.51cto.com/1850554/1381822

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末雁佳,一起剝皮案震驚了整個濱河市脐帝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌糖权,老刑警劉巖堵腹,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異星澳,居然都是意外死亡疚顷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門禁偎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荡含,“玉大人,你說我怎么就攤上這事届垫∈鸵海” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵装处,是天一觀的道長误债。 經(jīng)常有香客問我,道長妄迁,這世上最難降的妖魔是什么寝蹈? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮登淘,結(jié)果婚禮上箫老,老公的妹妹穿的比我還像新娘。我一直安慰自己黔州,他們只是感情好耍鬓,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布阔籽。 她就那樣靜靜地躺著,像睡著了一般牲蜀。 火紅的嫁衣襯著肌膚如雪笆制。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天涣达,我揣著相機(jī)與錄音在辆,去河邊找鬼。 笑死度苔,一個胖子當(dāng)著我的面吹牛匆篓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寇窑,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼鸦概,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了疗认?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤伏钠,失蹤者是張志新(化名)和其女友劉穎横漏,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體熟掂,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缎浇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赴肚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片素跺。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖誉券,靈堂內(nèi)的尸體忽然破棺而出指厌,到底是詐尸還是另有隱情,我是刑警寧澤踊跟,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布踩验,位于F島的核電站,受9級特大地震影響商玫,放射性物質(zhì)發(fā)生泄漏箕憾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一拳昌、第九天 我趴在偏房一處隱蔽的房頂上張望袭异。 院中可真熱鬧,春花似錦炬藤、人聲如沸御铃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽畅买。三九已至并闲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谷羞,已是汗流浹背帝火。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留湃缎,地道東北人犀填。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像嗓违,于是被迫代替她去往敵國和親九巡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容