CentOS中文网

CentOS6源码安装LAMP搭建WordPress

CentOS中文网 https://www.centos.net.cn 2015-09-25 01:02 出处:网络 编辑:#iCMS
实验要求: 安装php时实现php模块嵌入到httpd中和实现fpm两种方式。在fpm下,提供两个虚拟主机:

实验要求:

安装php时实现php模块嵌入到httpd中和实现fpm两种方式。在fpm下,提供两个虚拟主机:

分别用于实现PHPMyadmin和WordPress,其中PhpMyAdmin提供ssl.

实验环境:

CentOS系统一台(IP:172.16.99.4),所需的httpd,mariadb,php,PhpAdmin,WordPress的源码包。

实验步骤:

安装顺序:httpd-->mariadb-->php.

安装前的准备工作:

1.安装开发环境:

本地yum安装开发环境:

yumgroupinstall“DevelopmentTools”“ServerPlatformDevelopment”

2.关闭防火墙或者编写好相应的防火墙规则,关闭Selinux.

一.安装LAMP:实现php以模块嵌入到httpd中

1.编译安装httpd:

1.安装所以来的软件包pcre-devel软件包,本地镜像自带,所以yum安装即可。

2.下载apr和apr-util源码包,并编译安装。

APR(ApacheportableRun-timelibraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。

随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用APR而已。目前APR主要还是由Apache使用,不过由于APR的较好的移植性,因此一些需要进行移植的C程序也开始使用APR,开源项目比如Floodloadertester(http://httpd.apache.org/test/flood/,该项目用于服务器压力测试,不仅仅适用于Apache)

编译安装:apr-1.5.0.tar.bz2,apr-util-1.5.3.tar.bz2

#tarxfapr-1.5.0.tar.bz2

#cdapr-1.5.0

#./configure--prefix=/usr/local/apr

#make&&makeinstall

#tarxfapr-util-1.5.3.tar.bz2

#cdapr-util-1.5.3

#./configure--prefix=/usr/local/apr-util--with-apr=/usr/local/apr

#make&&makeinstall

3.编译安装httpd-2.4.12.tar.bz2

#tarxfhttpd-2.4.12.tar.bz2

#cdhttpd-2.4.12

#./configure--prefix=/usr/local/httpd--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&&makeinstall

4.安装完成后,进行相应的配置。

a.提供系统服务:

将/usr/local/httpd/bin目录下的apachectl文件复制到/etc/init.d/下,并命名为httpd:

#cp/usr/local/httpd/bin/apachectl/etc/init.d/httpd

修改httpd文件:在文件前部分添加如下几行:

#chkconfig:-8515

#description:ApacheisaWorldWideWebserver.

添加系统服务:

#chkconfig--addhttpd

b.添加PATH变量:

在目录/etc/profile.d/目录下创建一文件httpd.sh,内容如下:

exportPATH=/usr/local/httpd/bin/:$PATH

3.安装配置完成,启动服务测试:

#servicehttpdstart

CentOS6源码安装LAMP搭建WordPress

CentOS6源码安装LAMP搭建WordPress

2.编译安装Mariadb

1.准备数据存放的文件系统,使用的逻辑卷:

创建一目录用于挂在创建的逻辑卷:#mkdir-pv/mydata/data

创建逻辑卷并格式化挂在:

先分区,改变分区ID为8e

创建物理卷:#pvcreate/dev/sda5

创建卷组:#vgcreatemyvg/dev/sda5

创建逻辑卷:#lvcreate-nmydata-L5Gmyvg

格式化:mkfs-text4/dev/mapper/myvg-mydata

挂在:mount/dev/mapper/myvg-mydata/mydata/data

永久挂在:编写文件/etc/fstab添加一行:

/dev/mapper/myvg-mydate/mydata/dataext4defaults00

2.创建用户和组,使服务安全运行:

创建组:#groupadd-g3333mysql

创建用户:#useradd-g3333-u3333-r-s/sbin/nologin-M-d/mydata/datamysql

3.使用通用二进制格式安装mariadb-5.5.43-linux-x86_64.tar.gz

#tarxfmariadb-5.5.43-linux-x86_64.tar.gz-C/usr/local

#cd/usr/local/

#ln-svmariadb-5.5.43-linux-x86_64mysql

#cdmysql

进入mysql目录之后,修改该目录下所有文件和目录的属主和属组:

#chown-Rmysql.mysql.

初始化数据库:

#scripts/mysql_install_db--user=mysql--datadir=/mydata/data

再修改该目录下文件和目录的属主:#chown-Rroot.

4.进行后续配置:

a.提供系统服务:

#cd/usr/local/mysql

#cpsupport-files/mysql.server/etc/rc.d/init.d/mysqld

#chmod+x/etc/rc.d/init.d/mysqld

添加至服务列表:

#chkconfig--addmysqld

#chkconfigmysqldon

b.提供配置文件,并在配置文件中添加几项:

#cd/usr/local/mysql

#cpsupport-files/my-large.cnf/etc/my.cnf

修改配置文件:

datadir=/mydata/data

innodb_file_per_table=on

skip_name_resolve=on

c.修改PATH变量,直接可以使用mysql的相关工具:

在/etc/profile.d/目录下创建文件mysqld.sh:

exportPATH=/usr/local/mysql/bin:$PATH

d.输出mysql的头文件至系统头文件路径:创建链接实现:

#ln-sv/usr/local/mysql/include/usr/include/mysql

e.输出mysql的库文件给系统库查找路径:

#echo'/usr/local/mysql/lib'>/etc/ld.so.conf.d/mysql.conf

让系统重新载入系统库:

#ldconfig

5.测试:

CentOS6源码安装LAMP搭建WordPress

3.编译安装PHP

此次编辑php是把php以模块的形式编辑到httpd中,下文将介绍使用fpm编辑php,并进行先关的配置,安装WordPress和phpMyAdmin.

编译安装php-5.6.4.tar.xz

1.解决依赖关系:

#yum-yinstallbzip2-devellibmcrypt-devellibxml2-devel

2.编译安装php-5.6.4.tar.xz

#tarxfphp-5.6.4.tar.xz

#cdphp-5.6.4

#./configure--prefix=/usr/local/php--with-mysql=/usr/local/mysql--with-openssl--with-mysqli=/usr/local/mysql/bin/mysql_config--enable-mbstring--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir=/usr--enable-xml--enable-sockets--with-apxs2=/usr/local/apache/bin/apxs--with-mcrypt--with-config-file-path=/etc--with-config-file-scan-dir=/etc/php.d--with-bz2--enable-maintainer-zts

说明:

1、这里为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项。

2、如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP5.4开始它就是默认设置了。

#./configure--with-mysql=mysqlnd--with-pdo-mysql=mysqlnd--with-mysqli=mysqlnd

#make&&makeinstall

3.为服务提供配置文件:

#cpphp.ini-production/etc/php.ini

4.编辑httpd的配置文件,是apache支持php

#vim/etc/httpd/httpd.conf

1、添加如下二行

AddTypeapplication/x-httpd-php.php

AddTypeapplication/x-httpd-php-source.phps

2、定位至DirectoryIndexindex.html

修改为:

DirectoryIndexindex.phpindex.html

5.测试:

在index.php页面文件中添加如下内容:

<?php

$link=mysql_connect('127.0.0.1','root','');

if($link)

echo"OK";

else

echo"Failure";

phpinfo();

?>

CentOS6源码安装LAMP搭建WordPress

4.LAMP到此安装结束,只是没有进行相应的配置。我们先对lamp进行一下压力测试,查看服务器的负载能力。

#ab-c200-n1000http://172.16.99.4/index.php

Totaltransferred:72493898bytes

HTMLtransferred:72313898bytes

Requestspersecond:24.05[#/sec](mean)

Timeperrequest:8316.375[ms](mean)

Timeperrequest:41.582[ms](mean,acrossallconcurrentrequests)

Transferrate:1702.54[Kbytes/sec]received

ConnectionTimes(ms)

minmean[+/-sd]medianmax

Connect:03179.81800

Processing:92722410262.6129041014

Waiting:85712910161.5127541013

Total:111725510267.4136441032

发现每秒处理24.05个请求:Requestspersecond:24.05[#/sec](mean)

接下来安装Xcahe,再来进行压力测试,来查看结果:

5.安装xcache,为php加速:

1、安装

#tarxfxcache-3.2.0.tar.gz

#cdxcache-3.2.0

#/usr/local/php/bin/phpize

CentOS6源码安装LAMP搭建WordPress

#./configure--enable-xcache--with-php-config=/usr/local/php/bin/php-config

#make&&makeinstall

编译完出现:

Installingsharedextensions:/usr/local/php/lib/php/extensions/no-debug-zts-20131226/

2、编辑php.ini,整合php和xcache:

首先将xcache提供的样例配置导入php.ini

#mkdir/etc/php.d

将源码包解压的目录下的xcache.ini复制到/etc/php.d

#cpxcache.ini/etc/php.d

接下来编辑/etc/php.d/xcache.ini,找到zend_extension开头的行,修改为如下行:

extension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so

6.重新启动httpd服务和mariadb服务进行压力测试:

CentOS6源码安装LAMP搭建WordPress

]#ab-c200-n1000http://172.16.99.4/index.php

Totaltransferred:76241920bytes

HTMLtransferred:76061920bytes

Requestspersecond:562.74[#/sec](mean)

Timeperrequest:355.406[ms](mean)

Timeperrequest:1.777[ms](mean,acrossallconcurrentrequests)

Transferrate:41898.61[Kbytes/sec]received

ConnectionTimes(ms)

minmean[+/-sd]medianmax

Connect:03228.827100

Processing:15140137.71181201

Waiting:2101137.0751200

Total:22172137.11441274

查看结果Requestspersecond:562.74[#/sec](mean),明显比上次快了几倍!

二.安装LAMP,实现php以fpm方式与Apache互联

httpd,mariadb的安装与前一部分相同,这里只需安装php就行。

1.编译安装php-5.6.4.tar.xz

#tarxfphp-5.4.26.tar.bz2

#cdphp-5.4.26

#./configure--prefix=/usr/local/php--with-mysql=/usr/local/mysql--with-openssl--with-mysqli=/usr/local/mysql/bin/mysql_config--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

make&&makeinstall

这里把--with-apxs2=/usr/local/apache/bin/apxs改成--enable-fpm,即,就是在编辑php时,添加fpm模块。

说明:如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP5.4开始它就是默认设置了。

#./configure--with-mysql=mysqlnd--with-pdo-mysql=mysqlnd--with-mysqli=mysqlnd

为php提供配置文件:#cpphp.ini-production/etc/php.ini

2.配置php-fpm:

安装完php之后,会在php-5.6.4目录下的有一个目录提供了php-fpm的服务脚本。

sapi/fpm/init.d.php-fpm

1.将php-fpm添加至服务列表:

php-5.6.4]#cpsapi/fpm/init.d.php-fpm/etc/rc.d/init.d/php-fpm

#chmod+x/etc/rc.d/init.d/php-fpm

]#chkconfig--addphp-fpm

]#chkconfig--levelphp-fpm

2.给php-fpm提供配置文件:

#cp/usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf

3.配置php-fpm的配置文件,修改内容:

pm.max_children=50

pm.start_servers=5

pm.min_spare_servers=2

pm.max_spare_servers=8

pid=/usr/local/php5/var/run/php-fpm.pid

4.启动php-fpm服务,查看是否成功:

#servicephp-fpmstart

CentOS6源码安装LAMP搭建WordPress

3.配置httpd:添加支持fcig模块和配置虚拟主机,支持fcgi:

1.让httpd能识别php文件,

#vim/etc/httpd/httpd.conf

1、添加如下二行

AddTypeapplication/x-httpd-php.php

AddTypeapplication/x-httpd-php-source.phps

2、定位至DirectoryIndexindex.html

修改为:

DirectoryIndexindex.phpindex.html

2.添加fcgi模块

在Apachehttpd2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载

LoadModuleproxy_modulemodules/mod_proxy.so

LoadModuleproxy_fcgi_modulemodules/mod_proxy_fcgi.so

CentOS6源码安装LAMP搭建WordPress

3.配置支持fcgi的虚拟主机

在配置文件中,取消对#Include/etc/httpd24/extra/httpd-vhosts.conf的注释,使httpd支持虚拟主机。

编辑虚拟主机的配置文件:

#vim/etc/httpd24/extra/httpd-vhosts.conf

<VirtualHostwordp.zkchang.com:80>

DocumentRoot"/web/vhosts/wordp/"

ServerNamewordp.zkchang.com

ErrorLog"/var/log/v_wp_error_log"

CustomLog"/var/log/v_wp_access_log"common

ProxyRequestsoff

ProxyPassMatch^/(.*.php)$fcgi://127.0.0.1:9000/web/vhosts/wordp/$1

<Directory"/web/vhosts/wordp/">

OptionsNone

AllowoverrideNone

Requirealldenied

Requireip172.16.0.0/16

</Directory>

</VirtualHost>

<VirtualHostphpma.zkchang.com:80>

DocumentRoot"/web/vhosts/pma"

ServerNamephpma.zkcang.com

ErrorLog"/var/log/v_pma_ror_log"

CustomLog"/var/log/v_pma_access_log"common

ProxyRequestsoff

ProxyPassMatch^/(.*.php)$fcgi://127.0.0.1:9000/web/vhosts/pma/$1

<Directory"/web/vhosts/pma/">

OptionsNone

AllowoverrideNone

Requirealldenied

Requireip172.16.0.0/16

</Directory>

</VirtualHost>

4.分别在不同主机的站点目录下创建测试网页文件,进行测试:

#vim/web/vhosts/wordp/index.php

<?php

echo"Thisisawordprocesspage"

?>

#vim/web/vhosts/pma/index.php

<?php

$link=mysql_connect("127.0.0.1","root","");

if($link)

echo"OK";

else

echo"Worry!";

mysql_close();

phpinfo();

?>

测试结果截图:

CentOS6源码安装LAMP搭建WordPress

CentOS6源码安装LAMP搭建WordPress

5.对fcgi模式下进行压力测试,并与php以模块化嵌入httpd的进行比较:

#ab-c200-n1000http://phpma.zkchang.com/index.php

Totaltransferred:66731883bytes

HTMLtransferred:66531883bytes

Requestspersecond:637.04[#/sec](mean)

Timeperrequest:313.951[ms](mean)

Timeperrequest:1.570[ms](mean,acrossallconcurrentrequests)

Transferrate:41514.64[Kbytes/sec]received

ConnectionTimes(ms)

minmean[+/-sd]medianmax

Connect:0613.3042

Processing:30143125.81371077

Waiting:26142125.71361077

Total:51150123.11381077

6.安装Xcache,为php进行加速:

#tarxfxcache-3.2.0.tar.bz2

#cdxcache-3.2.0

xcache-3.2.0]#/usr/local/php/bin/phpize

#./configure--enable-xcache--with-php-config=/usr/local/php/bin/php-config

#make&&makeinstall

编译完出现:

Installingsharedextensions:/usr/local/php/lib/php/extensions/no-debug-zts-20131226/

编辑php.ini,整合php和xcache:

首先将xcache提供的样例配置导入php.ini

#mkdir/etc/php.d

将源码包解压的目录下的xcache.ini复制到/etc/php.d

#cpxcache.ini/etc/php.d

接下来编辑/etc/php.d/xcache.ini,找到zend_extension开头的行,修改为如下行:

extension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so

再次进行压力测试,进行比较:

#ab-c200-n1000http://phpma.zkchang.com/index.php

Totaltransferred:66731876bytes

HTMLtransferred:66531876bytes

Requestspersecond:1322.20[#/sec](mean)

Timeperrequest:151.263[ms](mean)

Timeperrequest:0.756[ms](mean,acrossallconcurrentrequests)

Transferrate:86165.07[Kbytes/sec]received

ConnectionTimes(ms)

minmean[+/-sd]medianmax

Connect:024.6014

Processing:1313536.6145351

Waiting:1313436.8144350

Total:1913734.8146365

三.分别在两个虚拟主机上安装phpmyadmin.WordPress,并实现通过ssl访问phpmyadmin。

1.解压安装phpmyadmin,并实现ssl:

1.提供phpmyadmin:

]#unzipphpMyAdmin-4.4.14.1-all-languages.zip

]#cdphpMyAdmin-4.4.14.1-all-languages

]#cp-aphpMyAdmin-4.4.14.1-all-languages/web/vhosts/pma/pma

]#cp/web/vhost/pma/pma/config.sample.inc.php{,.bak}

]#mv/web/vhost/pma/pma/config.sample.inc.phpconfig.inc.php

#vim/web/vhost/pma/pma/config.inc.php

$cfg['blowfish_secret']='asdfghjkl';/*YOUMUSTFILLINTHISFORCOOKIEAUTH!

打开网页测试:

CentOS6源码安装LAMP搭建WordPress

2.给mysql的管理员用户设置密码:

MariaDB[(none)]>SETPASSWORDFOR'root'@'127.0.0.1'=PASSWORD('zkchang');

MariaDB[(none)]>SETPASSWORDFOR'root'@'localhost'=PASSWORD('zkchang');

设置完密码之后就可以登录phpmyadmin

3.启动ssl模块,支持https协议。

修改httpd主配置文件httpd.conf:把:

#Include/etc/httpd24/extra/httpd-ssl.conf取消注释

a.为httpd服务器生成证书:

由于在主机172.16.99.2上已经创建了CA的私有CA,在此就不在创建证书颁发机构的私有证书,只需在httpd服务器上创建私钥和证书请求,然后把证书请求发给172.16.99.2,让CA颁发机构给服务器颁发证书即可。

1.在服务器172.16.99.4上创建私钥和证书请求,并把证书请求发送给CA颁发机构:

创建私钥:]#(umask077;opensslgenrsa-out/etc/httpd24/ssl/httpd.key2048)

创建证书请求:

]#opensslreq-new-key/etc/httpd24/ssl/httpd.key-out/etc/httpd24/ssl/httpdpma.csr-days365

发给CA颁发机构:

]#scp/etc/httpd24/ssl/httpdpma.csrroot@172.16.99.2:/tmp/

2.在CA颁发机构172.16.99.2上为服务器颁发证书,并把证书发送给服务器:

签发证书:

CA]#opensslca-in/tmp/httpdpma.csr-out/etc/pki/CA/certs/httpdpma.crt-days365

发给服务器:

#scp/etc/pki/CA/certs/httpdpma.crtroot@172.16.99.4:/etc/httpd24/ssl

b.编辑/etc/httpd24/extra/httpd-ssl.conf文件,修改一下内容:

<VirtualHost_default_:443>

DocumentRoot"/web/vhosts/pma/"

ServerNamephpma.zkchang.com:443

#ServerAdminyou@example.com

ErrorLog"/var/log/ssl_v_error_log"

TransferLog"/var/log/ssl_v_access_log"

<Directory"/web/vhosts/pma/">

OptionsNone

AllowoverrideNone

Requirealldenied

Requireip172.16.0.0/16

</Directory>

SSLCertificateFile"/etc/httpd24/ssl/httpdpma.crt"

SSLCertificateKeyFile"/etc/httpd24/ssl/httpd.key

c.在httpd配置文件中启动相应的ssl模块

LoadModuleslotmem_shm_modulemodules/mod_slotmem_shm.so

LoadModulessl_modulemodules/mod_ssl.so

d.将CA颁发机构的CA证书,导入到浏览器中进行测试:

CentOS6源码安装LAMP搭建WordPress

2.解压安装WordPress:

1.解压安装:

]#unzipwordpress-4.3.1-zh_CN.zip

]#cp-awordpress/web/vhosts/wordp/wordp

]#cd/web/vhosts/wordp/wordp/

]#mvwp-config-sample.phpwp-config.php

]#vimwp-config.php

CentOS6源码安装LAMP搭建WordPress

2.创建数据库,创建用户和密码并授权:

MariaDB[(none)]>CREATEDATABASEwordpdb;

MariaDB[(none)]>CREATEUSER'wordpuser'@'127.0.0.1'IDENTIFIEDBY'wordpuser';

MariaDB[(none)]>CREATEUSER'wordpuser'@'localhost'IDENTIFIEDBY'wordpuser';

MariaDB[(none)]>GRANTALLONwordpdb.*TO'wordpuser'@'127.0.0.1';

MariaDB[(none)]>GRANTALLONwordpdb.*TO'wordpuser'@'localhost';

3.网页打开测试:

CentOS6源码安装LAMP搭建WordPress

4.对一个动态网页做压力测试:

#ab-c200-n1000http://wordp.zkchang.com/wordp/index.php

Requestspersecond:16.49[#/sec](mean)

Timeperrequest:12132.181[ms](mean)

Timeperrequest:60.661[ms](mean,acrossallconcurrentrequests)

Transferrate:5.35[Kbytes/sec]received

ConnectionTimes(ms)

minmean[+/-sd]medianmax

Connect:059168.401430

Processing:271106576602.9932150520

Waiting:271103796469.7919149844

Total:275107166585.6940450520

0

精彩评论

暂无评论...
验证码 换一张
取 消