构建LAMP平台(一)(软件版本:httpd-2.4.16,php-5.6.12,mysql-5.6.26)
????最近在學(xué)習(xí)LAMP,想把學(xué)到的東西寫一遍。話不多說,直奔主題好啦。
????我構(gòu)建平臺(tái)所用到的軟件都是目前最新版本,另外我用的linux發(fā)行版是RHEL6,下面我將分步驟依次搭建httpd服務(wù)器,MySQL服務(wù)器和php。(注意此處的安裝順序最好不要更改,因?yàn)楹竺姘惭bPHP需要指定MySQL的安裝路徑)
????1)、搭建httpd服務(wù)器
????? ?1、安裝httpd前的準(zhǔn)備工作:
????? ?安裝apr(Apache Portable Runtime,Apache可移植運(yùn)行環(huán)境)以及apr-util工具包,此處用到的版本分別是apr-1.5.2和apr-util-1.5.4:
????????(1)分別創(chuàng)建apr和apr-util安裝目錄:
?????????# mkdir /usr/local/{apr,apr-util}
????????(2)解壓apr-1.5.2.tar.bz2,配置編譯安裝apr:
???????? # tar xvjf apr-1.5.2.tar.bz2
???????? # cd apr-1.5.2
???????? # ./configure --prefix=/usr/local/apr
?????????# make && make install
????????(3)類似地,解壓apr-util-1.5.4.tar.bz2,配置時(shí)需要指定apr的安裝路徑,編譯安裝:
???????? # tar xvjf apr-util-1.5.4.tar.bz2
???????? # cd apr-util-1.5.4
???????? # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
???????? # make && make install
? ? ? ?至此,安裝httpd的準(zhǔn)備工作就算是完成了。
???? ??2、安裝httpd:
????? ? (1)創(chuàng)建httpd安裝目錄:
? ? ? ?? # mkdir /usr/local/apache
????? ? (2)解壓httpd-2.4.16.tar.bz2,配置安裝httpd (安裝httpd時(shí)配置選項(xiàng)較多,可以根據(jù)自己的實(shí)際需要作適當(dāng)修改):
???? ? ? # tar xvjf httpd-2.4.16.tar.bz2
???? ? ? # cd httpd-2.4.16
????? ? ?# ./configure --prefix=/usr/local/apache --enable-modules=all --enable-mods-shared=most --enable-so --enable-deflate --enable-ssl --enable-mpms-shared=all --enable-cgi --enable-cgid --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --sysconfdir=/etc/httpd --enable-rewrite --with-mpm=event
????? ? ?# make && make install
????? ?安裝完成后,會(huì)在/etc/httpd/目錄下生成httpd.conf的配置文件,可根據(jù)自己的需要對(duì)httpd進(jìn)行配置。
? ? ? ?3、向系統(tǒng)添加httpd服務(wù):
????? ? (1)需要對(duì)以前安裝過的httpd服務(wù)腳本(以前沒安裝過httpd可以通過yum工具和紅帽安裝光盤進(jìn)行安裝,另外為避免混亂,盡可能將以前安裝的httpd軟件卸載)進(jìn)行適當(dāng)?shù)男薷?#xff0c;即對(duì)/etc/init.d/httpd服務(wù)腳本中的三行進(jìn)行如下修改:
????? ? ?apachectl=/usr/local/apache/bin/apachectl
????? ? ?httpd=${HTTPD-/usr/local/apache/bin/httpd}
???????? pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}
????? ? (2)添加httpd服務(wù)至開機(jī)啟動(dòng)列表:
????? ? ?# chkconfig --add httpd
? ? ? ? ?根據(jù)需要設(shè)置httpd服務(wù)默認(rèn)在系統(tǒng)哪些運(yùn)行級(jí)別下啟動(dòng);
????? ? ?# chkconfig --list httpd
????? ? ?# chkconfig --level 2345 httpd on
????? ? ?# chkconfig --list httpd
????? ? ?至此,可以使用service命令啟動(dòng)httpd服務(wù)器:
???????? # service httpd start
?????????打開瀏覽器,輸入httpd服務(wù)器所在的主機(jī)ip地址,當(dāng)看到有“It works!”標(biāo)題字樣的頁(yè)面時(shí)(顯示的html文檔位于/usr/local/apache/htdocs目錄下),就說明我們的httpd服務(wù)器能正常工作了。
如果遇到頁(yè)面打不開的情況,可以嘗試把selinux功能關(guān)閉以及iptables模塊卸載。
????2)、安裝MySQL服務(wù)器
????? ?1、安裝MySQL前的準(zhǔn)備工作:
????? ?由于MySQL服務(wù)器需要維護(hù)大量數(shù)據(jù),最好是將MySQL的數(shù)據(jù)存放到邏輯卷上,好處是以后如果出現(xiàn)存儲(chǔ)空間不足,方便隨時(shí)進(jìn)行擴(kuò)展。
????????(1)創(chuàng)建MySQL數(shù)據(jù)存放目錄:
???????? # mkdir /mysql_data/data -pv
????????(2)創(chuàng)建一個(gè)可用的邏輯卷(選擇一個(gè)空閑的磁盤分區(qū),或者對(duì)已有磁盤進(jìn)行劃分得到一個(gè)新分區(qū),并把分區(qū)類別修改為L(zhǎng)VM,此處我以/dev/sdb3為例):
?????????# pvcreate /dev/sdb3
???????? # vgcreate myvg /dev/sdb3
???????? # lvcreate -n mysql_lv -L 5G myvg
????????(3)對(duì)邏輯卷進(jìn)行格式化并掛載至MySQL數(shù)據(jù)存放目錄:
???????? # mke2fs -j /dev/myvg/mysql_lv
???????? 將要掛載的邏輯卷寫入/etc/fstab文件,以后系統(tǒng)啟動(dòng)時(shí)會(huì)將邏輯卷自動(dòng)掛載至MySQL數(shù)據(jù)存放目錄下,在/etc/fstab文件中添加如下一行即可:
?????????/dev/myvg/mysql_lv????/mysql_data????ext3????defaults????0 0
???????? 然后執(zhí)行命令掛載/etc/fstab中定義的所有文件系統(tǒng),包括邏輯卷/dev/myvg/mysql_lv:
?????????# mount -a
???????? 至此,創(chuàng)建并掛載邏輯卷的工作就算是完成了。
????? ?安裝MySQL前的另外一項(xiàng)準(zhǔn)備工作就是創(chuàng)建系統(tǒng)用戶mysql,該用戶主要負(fù)責(zé)MySQL服務(wù)的啟動(dòng)和運(yùn)行。因此:
????????(4)創(chuàng)建系統(tǒng)用戶mysql及其所屬的用戶組:
?????????# groupadd -r mysql
?????????# useradd -r -g mysql mysql
????????(5)修改MySQL數(shù)據(jù)存放目錄的屬主屬組及權(quán)限(不讓其他用戶隨意訪問):
???????? # chown mysql:mysql /mysql_data/data
???????? # chmod 750 /mysql_data/data
?????????至此,安裝MySQL前的準(zhǔn)備工作就算是完成了。
????? ?2、安裝MySQL:
????????(1)將mysql-5.6.26-linux-glibc2.5-i686.tar.gz壓縮包直接解壓至/usr/local/目錄下(注:選擇mysql軟件的版本一定要跟自己系統(tǒng)的版本保持一致,否則可能會(huì)導(dǎo)致初始化數(shù)據(jù)庫(kù)時(shí)出現(xiàn)問題):
???????? # tar xvzf?mysql-5.6.26-linux-glibc2.5-i686.tar.gz -C /usr/local
????????(2)創(chuàng)建軟鏈接鏈接到解壓后的/usr/local/mysql-5.6.26-linux-glibc2.5-i686目錄,目的是為了保留MySQL的版本號(hào),以后就可以對(duì)/usr/local/mysql目錄直接操作:
?????????# ln -sv?/usr/local/mysql-5.6.26-linux-glibc2.5-i686 /usr/local/mysql
????????(3)修改/usr/local/mysql目錄下所有文件的屬主屬組,加強(qiáng)數(shù)據(jù)庫(kù)文件安全性:
?????????# cd /usr/local/mysql
???????? # chown -R root:mysql ./*
????????(4)對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行初始化:
???????? # ./scripts/mysql_install_db --user=mysql --datadir=/mysql_data/data
????????(5)復(fù)制mysql服務(wù)腳本以及配置文件:
???????? # cp support-files/mysql.server /etc/init.d/mysqld
???????? # cp my.cnf /etc/
????????(6)如果想像正常情況下使用mysql提供的命令,則需要將mysql提供的命令所在路徑以PATH環(huán)境變量的形式輸出,以后系統(tǒng)就能識(shí)別mysql提供的命令:
???????? # vim /etc/profile.d/mysql.sh
???????? 向文件添加以下內(nèi)容:
???????? export $PATH=PATH:/usr/local/mysql/bin
????????(7)接下來就可以啟動(dòng)MySQL服務(wù)了,但在啟動(dòng)服務(wù)之前還有一項(xiàng)很關(guān)鍵的事情要做,就是需要往mysql的配置文件中添加一項(xiàng):
???????? # vim /etc/my.cnf
???????? 添加一行即可:datadir=/mysql_data/data
????????(8)接下來就可以啟動(dòng)MySQL服務(wù)了
???????? # service mysqld start
???????? 可以通過“netstat -tunlp”命令驗(yàn)證mysql服務(wù)器端是否工作起來,監(jiān)聽在3306端口上;此外,還需要添加mysql數(shù)據(jù)庫(kù)管理員root(注:不是系統(tǒng)管理員root)登錄數(shù)據(jù)庫(kù)的密碼。至此,安裝mysql的工作就算完成。
????3)、安裝php:
? ? ? ?1、安裝php前的準(zhǔn)備工作:
????? ? ?由于安裝php過程需要用到mcrypt模塊,所以需要先安裝libmcrypt和mhash及其開發(fā)庫(kù),此處用到了libmcrypt-2.5.7-5.el5.i386.rpm、libmcrypt-devel-2.5.7-5.el5.i386.rpm、mhash-0.9.2-6.el5.i386.rpm和mhash-devel-0.9.2-6.el5.i386.rpm等四個(gè)rpm包。安裝過程很簡(jiǎn)單:
???????? # rpm -ivh *.rpm
? ? ?? 2、安裝php:
????????(1)創(chuàng)建php安裝目錄:
???????? # mkdir /usr/local/php
????????(2)解壓php源碼包,配置php與httpd服務(wù)器的結(jié)合工作方式(此處php采用編譯成httpd的模塊的方式進(jìn)行工作),編譯安裝:
???????? # tar xvjf php-5.6.12.tar.bz2
???????? # cd php-5.6.12
???????? # ./configure --prefix=/usr/local/php/ --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/etc/ --with-config-file-scan-dir=/etc/php.d --with-jpeg-dir --with-png-dir --enable-mbstring --with-mcrypt --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --with-freetype-dir --with-zlib --with-libxml-dir=/usr/ --enable-xml --enable-sockets --with-bz2 --enable-maintainer-zts
???????? # make && make install
????????(3)復(fù)制php的配置文件(注:復(fù)制的文件是源碼目錄中的php.ini-production文件,而不是安裝目錄下的,另安裝目錄下也不存在這個(gè)文件):
???????? # cp php.ini-production /etc/php.ini
????????(4)要使httpd能和php結(jié)合起來工作,需要配置httpd能支持以.php結(jié)尾的動(dòng)態(tài)頁(yè)面,因此需要編輯httpd的配置文件httpd.conf:
???????? # vim /etc/httpd/httpd.conf
?????????找到有“AddType”字眼的行,在其后添加兩行:
???????? AddType application/x-httpd-php .php
???????? AddType application/x-httpd-php-source .phps
???????? 另外,找到有“DirectoryIndex”字眼的行,配置httpd能支持.php結(jié)尾的主頁(yè)面,在該行添加index.php,即DirectoryIndex index.php index.html
???????? 做完這些,httpd與php結(jié)合的配置工作就算完成,接下來只需要在/usr/local/apache/htdocs目錄下添加一個(gè)index.php頁(yè)面,重啟httpd服務(wù),打開瀏覽器輸入主機(jī)ip地址就可以測(cè)試php能否工作以及httpd,mysql,php三者能否結(jié)合工作。
<附:index.php測(cè)試腳本>
<title>www.hello.com</title>
<?php
$value=mysql_connect('localhost','root','password'); #此處的password為root在localhost主機(jī)上登錄mysql數(shù)據(jù)庫(kù)的密碼;
if($value)
echo "Successful...";
else
echo "Failed...";
?>
轉(zhuǎn)載于:https://blog.51cto.com/fdbz1024/1685139
總結(jié)
以上是生活随笔為你收集整理的构建LAMP平台(一)(软件版本:httpd-2.4.16,php-5.6.12,mysql-5.6.26)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javamail读取并发送完整的html
- 下一篇: 枪火重生兔子搭配推荐