centos6.9實(shí)現(xiàn)基于源碼編譯安裝LAMP的wordpress應(yīng)用


簡(jiǎn)介

LAMP,Web應(yīng)用軟件組合,是一組常用來(lái)搭建動(dòng)態(tài)網(wǎng)站或者服務(wù)器的開源軟件罢防,本身都是各自獨(dú)立的程序,但是因?yàn)槌1环旁谝黄鹗褂冒χ叮瑩碛辛嗽絹?lái)越高的兼容度咒吐,共同組成了一個(gè)強(qiáng)大的Web應(yīng)用程序平臺(tái)。從網(wǎng)站的流量上來(lái)說(shuō)属划,70%以上的訪問(wèn)流量是LAMP來(lái)提供的恬叹,LAMP是最強(qiáng)大的網(wǎng)站解決方案。LAMP有多種組合實(shí)現(xiàn)方式榴嗅,本文采用的組合方式是:
Linux + Apache + MariaDB + PHP
WordPress是使用PHP語(yǔ)言開發(fā)的博客平臺(tái)妄呕,用戶可以在支持PHP和MySQL數(shù)據(jù)庫(kù)的上架設(shè)屬于自己的網(wǎng)站和博客。


實(shí)驗(yàn)實(shí)現(xiàn)簡(jiǎn)單LAMP

環(huán)境準(zhǔn)備

準(zhǔn)備三臺(tái)虛擬機(jī)
A:系統(tǒng)是centos6.9嗽测,IP地址是192.168.1.6绪励,充當(dāng)?shù)慕巧荓AP;
B:系統(tǒng)是centos6.9唠粥,IP地址是192.168.1.66疏魏,充當(dāng)?shù)慕巧荕ariadb數(shù)據(jù)庫(kù)服務(wù)器;
C:系統(tǒng)是centos7.3晤愧,IP地址是192.168.1.7大莫,充當(dāng)?shù)慕巧强蛻舳耍饕菧y(cè)試使用的官份。
準(zhǔn)備源碼包或二進(jìn)制程序包
A上需要準(zhǔn)備的包

[root@centos6 src]#ls
apr-1.6.2.tar.gz       httpd-2.4.27.tar.bz2  wordpress-4.8.1-zh_CN.tar.gz
apr-util-1.6.0.tar.gz  php-5.6.31.tar.xz     xcache-3.2.0.tar.bz2

B上需要準(zhǔn)備的包

[root@centos6 src]# ls
mariadb-5.5.57-linux-x86_64.tar.gz

確保兩臺(tái)機(jī)器上面的防火墻以及selinux處于關(guān)閉狀態(tài)

實(shí)驗(yàn)過(guò)程

一只厘、 在B上二進(jìn)制安裝mariadb

  1. 卸載系統(tǒng)自帶的數(shù)據(jù)庫(kù)
[root@centos6 src]# yum remove mysql-server
# 刪除原有的mysql用戶
[root@centos6 src]# userdel -r mysql
  1. 創(chuàng)建用戶mysql烙丛,指定數(shù)據(jù)庫(kù)文件存儲(chǔ)路徑
[root@centos6 src]# useradd -r -m -d /app/mysqldb -s /sbin/nologin  mysql
  1. 解壓二進(jìn)制程序包,創(chuàng)建軟鏈接
[root@centos6 src] tar xvf mariadb-5.5.57-linux-x86_64.tar.gz  -C /usr/local/
[root@centos6 src]# cd /usr/local
[root@centos6 local]# ln -s mariadb-5.5.57-linux-x86_64/ mysql
  1. 創(chuàng)建數(shù)據(jù)庫(kù)文件和指定數(shù)據(jù)庫(kù)用戶
[root@centos6 local]# cd mysql
[root@centos6 mysql]# scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql
  1. 準(zhǔn)備數(shù)據(jù)庫(kù)配置文件
[root@centos6 mysql]# mkdir /etc/mysql
[root@centos6 mysql]# cp support-files/my-large.cnf   /etc/mysql/my.cnf

[root@centos6 mysql]# vim /etc/mysql/my.cnf
# 在/etc/mysql/my.cnf文件的[mysqld]下面加幾行設(shè)置

# 指定數(shù)據(jù)庫(kù)路徑
datadir = /app/mysqldb
# 將每個(gè)表都存到一個(gè)獨(dú)立文件中
innodb_file_per_table = ON
# 禁止主機(jī)名解析
skip_name_resolve = ON
  1. 準(zhǔn)備服務(wù)腳本和日志文件
[root@centos6 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@centos6 mysql]# chkconfig --add mysqld
# 服務(wù)可由chkconfig來(lái)管理
[root@centos6 mysql]# chkconfig --list
[root@centos6 mysql]# touch /var/log/mysqld.log
[root@centos6 mysql]# chown mysql /var/log/mysqld.log
[root@centos6 mysql]# service mysqld start
# 3306端口打開
[root@centos6 mysql]# ss -ntul 
  1. 修改PATH環(huán)境變量
[root@centos6 mysql]# vim /etc/profile.d/mysql.sh 
PATH=/usr/local/mysql/bin/:$PATH
[root@centos6 mysql]# . /etc/profile.d/mysql.sh
  1. 數(shù)據(jù)庫(kù)初始化工作羔味,創(chuàng)建wordpress使用的數(shù)據(jù)庫(kù)河咽,并進(jìn)行相關(guān)授權(quán)
# 數(shù)據(jù)庫(kù)安全初始化(設(shè)置數(shù)據(jù)庫(kù)root用戶口令是centos,刪除匿名用戶)
[root@centos6 mysql]# mysql_secure_installation
# 創(chuàng)建wpdb數(shù)據(jù)庫(kù)赋元,授權(quán)用戶
[root@centos6 mysql]# mysql -uroot -pcentos
mysql> create database wpdb; 
mysql> grant all on wpdb.* to wpuser@'localhost' identified by 'centos';
mysql> grant all on wpdb.* to wpuser@'127.%' identified by 'centos';
mysql> grant all on wpdb.* to wpuser@'192.168.1.%' identified by 'centos';
# 在A測(cè)試連接B上的數(shù)據(jù)庫(kù)忘蟹,發(fā)現(xiàn)可以連接
[root@centos6 src]#mysql -uwpuser -pcentos -h192.168.1.66

二、 在A上源碼編譯安裝httpd2.4

  1. 安裝準(zhǔn)備
# 卸載系統(tǒng)自帶的httpd
[root@centos6 src]# yum remove httpd
# 安裝開發(fā)包組以及相關(guān)開發(fā)包
[root@centos6 src]# yum groupinstall "development tools"
[root@centos6 src]# yum install openssl-devel pcre-devel expat-devel
  1. 編譯安裝
[root@centos6 src]# tar xvf apr-1.6.2.tar.gz 
[root@centos6 src]# tar xvf apr-util-1.6.0.tar.gz 
[root@centos6 src]# tar xvf httpd-2.4.27.tar.bz2 
[root@centos6 src]# cp -r apr-1.6.2 httpd-2.4.27/srclib/apr
[root@centos6 src]# cp -r apr-util-1.6.0 httpd-2.4.27/srclib/apr-util

[root@centos6 src]# cd httpd-2.4.27/
[root@centos6 httpd-2.4.27]# ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
[root@centos6 httpd-2.4.27]# make -j 8 && make install
  1. 配置環(huán)境變量以及配置httpd相關(guān)設(shè)置搁凸,創(chuàng)建服務(wù)腳本媚值,啟動(dòng)服務(wù)
[root@centos6 httpd-2.4.27]#vim /etc/profile.d/lap.sh
PATH=/app/httpd24/bin/:$PATH
[root@centos6 httpd-2.4.27]#. /etc/profile.d/lap.sh
# 修改httpd以apache身份運(yùn)行(apache用戶事先存在)
vim /app/httpd24/conf/httpd.conf
User apache
Group apache
# 把B機(jī)器上面的httpd服務(wù)腳本拷貝到A機(jī)器上
[root@centos6 ~]# scp /etc/init.d/httpd  192.168.1.6:/etc/init.d/httpd24
# 修改幾項(xiàng)設(shè)置
[root@centos6 httpd-2.4.27]#vim /etc/init.d/httpd24
apachectl=/app/httpd24/bin/apachectl
httpd=${HTTPD-/app/httpd24/bin/httpd}
pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
[root@centos6 httpd-2.4.27]#chkconfig --add httpd24
[root@centos6 httpd-2.4.27]#chkconfig --list httpd24
[root@centos6 httpd-2.4.27]#service httpd24 start

三、 在A上源碼編譯安裝php

此處編譯安裝的php是作為獨(dú)立的進(jìn)程护糖,而不是作為httpd的一個(gè)模塊褥芒。

  1. 安裝相關(guān)開發(fā)包
[root@centos6 src]#yum install libxml2-devel bzip2-devel libmcrypt-devel
  1. 編譯安裝php
[root@centos6 src]#tar xvf php-5.6.31.tar.xz
[root@centos6 src]#cd php-5.6.31
[root@centos6 php-5.6.31]#./configure \
> --prefix=/app/php \
> --enable-mysqlnd \
> --with-mysqli=mysqlnd \
> --with-openssl \
> --with-pdo-mysql=mysqlnd \
> --enable-mbstring \
> --with-freetype-dir  \
> --with-jpeg-dir \
> --with-png-dir \
> --with-zlib \
> --with-libxml-dir=/usr \
> --enable-xml \
> --enable-sockets \
> --with-apxs2=/app/httpd24/bin/apxs \
> --enable-fpm \
> --with-mcrypt \
> --with-config-file-path=/etc/php \
> --with-config-file-scan-dir=/etc/php.d \
> --with-bz2
[root@centos6 php-5.6.31]#make -j 8 && make install
  1. 配置環(huán)境變量,設(shè)置php配置文件椅文,創(chuàng)建服務(wù)腳本喂很,啟動(dòng)服務(wù)
[root@centos6 php-5.6.31]#vim /etc/profile.d/lap.sh  
PATH=/app/php/bin:/app/httpd24/bin/:$PATH
[root@centos6 php-5.6.31]#. /etc/profile.d/lap.sh
[root@centos6 php-5.6.31]#mkdir /etc/php/
[root@centos6 php-5.6.31]#cp  php.ini-production  /etc/php/php.ini 
[root@centos6 php-5.6.31]#cp   sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@centos6 php-5.6.31]#chmod +x /etc/init.d/php-fpm
[root@centos6 php-5.6.31]#chkconfig --add php-fpm
[root@centos6 php-5.6.31]#chkconfig --list  php-fpm
[root@centos6 php-5.6.31]#cd /app/php/etc
[root@centos6 etc]#cp php-fpm.conf.default  php-fpm.conf
[root@centos6 etc]#service php-fpm start
  1. 配置httpd
[root@centos6 httpd24]#vim /app/httpd24/conf/httpd.conf
# 取消下面兩行的注釋
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
# 在文件尾部加四行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off 
ProxyPassMatch  ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
# 修改下面行
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>
[root@centos6 httpd24]#service httpd24 restart

四、 在A上配置連接數(shù)據(jù)庫(kù)皆刺,在C上測(cè)試

[root@centos6 htdocs]#vim /app/httpd24/htdocs/index.php
<html><body><h1>It works!</h1></body></html>
<?php
$mysqli=new mysqli("192.168.1.66","wpuser","centos");
if(mysqli_connect_errno()){
echo "連接數(shù)據(jù)庫(kù)失敗!";
$mysqli=null;
exit;
}
echo "連接數(shù)據(jù)庫(kù)成功!";
$mysqli->close();
phpinfo();
?>

在C機(jī)器的瀏覽器地址欄輸入192.168.1.6進(jìn)行測(cè)試少辣,效果圖如下:

五、 在A上配置wordpress

[root@centos6 src]#tar xvf wordpress-4.8.1-zh_CN.tar.gz  -C /app/httpd24/htdocs
[root@centos6 src]#cd /app/httpd24/htdocs
[root@centos6 htdocs]#mv wordpress/ blog/
[root@centos6 htdocs]#cd /app/httpd24/htdocs/blog/
[root@centos6 blog]#cp wp-config-sample.php  wp-config.php
[root@centos6 blog]#vim wp-config.php
# 配置下面4項(xiàng)
define('DB_NAME', 'wpdb');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'centos');
define('DB_HOST', '192.168.1.66');

六羡蛾、在C上訪問(wèn)博客平臺(tái)以及進(jìn)行性能測(cè)試

在C機(jī)器的瀏覽器地址欄輸入192.168.1.6/blog漓帅,將會(huì)彈出下圖界面。


設(shè)置站點(diǎn)標(biāo)題痴怨,設(shè)置管理使用的用戶名和密碼忙干,點(diǎn)擊安裝WordPress。安裝完之后浪藻,點(diǎn)擊登錄捐迫,就可以設(shè)置自己喜愛的主題以及發(fā)布博客文章了。瀏覽器中輸入192.168.1.6/blog可以查看自己的博客爱葵。
在C上面用ab命令進(jìn)行性能測(cè)試施戴。

[root@centos7 httpd]#ab -c 10 -n 100 http://192.168.1.6/blog/
...
Requests per second:    18.02 [#/sec] (mean)
...

七、 在A上編譯xcache實(shí)現(xiàn)Php加速

[root@centos6 src]#tar xvf xcache-3.2.0.tar.bz2 
[root@centos6 src]#cd xcache-3.2.0
# 生成configure文件
[root@centos6 xcache-3.2.0]#phpize
[root@centos6 xcache-3.2.0]#./configure --enable-xcache --with-php-config=/app/php/bin/php-config  
[root@centos6 xcache-3.2.0]#make -j 8 && make install
[root@centos6 xcache-3.2.0]#mkdir /etc/php.d/
[root@centos6 xcache-3.2.0]#cp xcache.ini  /etc/php.d/ 
[root@centos6 xcache-3.2.0]#vim /etc/php.d/xcache.ini
extension = /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so
[root@centos6 xcache-3.2.0]#service php-fpm restart

八萌丈、 在C上再次進(jìn)行性能測(cè)試

[root@centos7 httpd]#ab -c 10 -n 100 http://192.168.1.6/blog/
...
Requests per second:    37.01 [#/sec] (mean)
...

發(fā)現(xiàn)性能已經(jīng)有了較大的提升赞哗。


至此,LAMP的簡(jiǎn)單實(shí)現(xiàn)就介紹完了辆雾。這只是一個(gè)很基本的LAMP實(shí)現(xiàn)肪笋,主要是為了說(shuō)明LAMP的大致實(shí)現(xiàn)方式,有很多不足之處,請(qǐng)多指點(diǎn)藤乙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末猜揪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子湾盒,更是在濱河造成了極大的恐慌湿右,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罚勾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡吭狡,警方通過(guò)查閱死者的電腦和手機(jī)尖殃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)划煮,“玉大人送丰,你說(shuō)我怎么就攤上這事〕谇铮” “怎么了器躏?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蟹略。 經(jīng)常有香客問(wèn)我登失,道長(zhǎng),這世上最難降的妖魔是什么挖炬? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任揽浙,我火速辦了婚禮,結(jié)果婚禮上意敛,老公的妹妹穿的比我還像新娘馅巷。我一直安慰自己,他們只是感情好草姻,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布钓猬。 她就那樣靜靜地躺著,像睡著了一般撩独。 火紅的嫁衣襯著肌膚如雪敞曹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天跌榔,我揣著相機(jī)與錄音异雁,去河邊找鬼。 笑死僧须,一個(gè)胖子當(dāng)著我的面吹牛纲刀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼示绊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼锭部!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起面褐,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拌禾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后展哭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體湃窍,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年匪傍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了您市。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡役衡,死狀恐怖茵休,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情手蝎,我是刑警寧澤榕莺,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站棵介,受9級(jí)特大地震影響钉鸯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鞍时,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一亏拉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逆巍,春花似錦及塘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至灵再,卻和暖如春肋层,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背翎迁。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工栋猖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人汪榔。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓蒲拉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雌团,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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