活着的死人 发表于 2015-1-14 20:33:11

来一发CentOS下构建企业级LAMMP情况

如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!1、LAMMP简介
2、LAMMP项目情况简介
3、Apache的装置与设置
4、FastCGI的装置与设置
5、整合Apache与PHP办事
6、装置Mysql办事器
7、装置Memcache与libevent
8、装置Memcache基于Web办理平台



1、LAMMP简介
LAMP(Linux-Apache-MySQL-PHP)网站架构是今朝国际盛行的Web框架,该框架包含:Linux操纵体系,Apache收集办事器,MySQL数据库,Perl、PHP大概Python编程言语,一切构成产物均是开源软件,是国际上成熟的架构框架,良多盛行的贸易使用都是接纳这个架构,和Java/J2EE架构比拟,LAMP具有Web资本丰厚、轻量、疾速开辟等特性,微软的.NET架构比拟,LAMP具有通用、跨平台、高功能、低代价的上风,因而LAMP不管是功能、质量仍是代价都是企业搭建网站的首选平台。在此基本上我们增添了Memcache缓冲办事器,办理了使用步伐与数据库之间的瓶颈成绩,无效进步了会见速率,这就是LAMMP架构。

2、LAMMP项目情况简介
体系情况:Centos6.4x86-64
ApacheIP:172.16.10.1
PHPIP:172.16.10.2
MysqlIP:172.16.10.3
MemcacheIP:172.16.10.4



此LAMMP架构是分离搭建在分歧的办事器下面,在临盆情况中,更是应当云云,一台办事器供应多种使用,办事器会很损耗资本,供应办事的功能也会下降。
此架构中各办事器的事情
Apache在此架构中,呼应复兴用户html的哀求
FastCGI是把php步伐实行的了局呼应给Apache
Memcached是依据用户哀求的静态网页文件中是不是必要Memcached办事器缓存数据,Memcache是把数据存储在内存中的,速率不可思议了。
Mysql是呼应用户是不是需写进查询数据
用户的哀求资本到猎取资本的历程
1、当用户只必要哀求web办事器的html页面时,Apache间接呼应哀求,所经由的历程为1--->10
2、当用户需哀求一个web办事器的静态的页面时,Apache把用户哀求的php实行步伐发送给FastCGI办事器实行,FastCGI把实行的了局前往给Apache办事器,办事器把步伐天生的的静态页面呼应给客户端。所经由的历程1--->2--->3--->8--->9--->10
3、当用户必要哀求的web办事器资本中必要数据时,Apache把用户哀求的php实行步伐给FastCGI实行,实行过程当中必要对数据举行操纵时且Memcached中没有缓存时,FastCGI往哀求Mysql办事器的资本,mysql办事器把数据呼应给FastCGI,假如此数据必要缓存则FastCGI把数据缓存到Memcached办事器上,然后把数据呼应给Apache,Apache天生静态的页面呼应给客户端。所经由的历程1--->2--->3--->6--->7[--->4]--->8--->9--->10(假如必要缓存则会经由4历程)
4、当用户必要哀求的web办事器资本中必要数据时,Apache把用户哀求的php实行步伐给FastCGI实行,实行过程当中必要对数据举行操纵时Memcached中有缓存时,Memcached间接把数据呼应给FastCGI,然后把数据呼应给Apache,Apache天生静态的页面呼应给客户端。所经由的历程1--->2--->3--->4--->5--->8--->9--->10

为懂得决软件包下载的成绩,特供应软件包的下载地点:

[*]apr版本:apr-1.4.8

[*]下载地点:http://mirror.bit.edu.cn/apache//apr/apr-1.4.8.tar.bz2

[*]apr-util版本:apr-util-1.5.2

[*]下载地点:http://mirror.bit.edu.cn/apache//apr/apr-util-1.5.2.tar.bz2

[*]Httpd版本:httpd-2.4.6

[*]下载地点:http://mirror.esocc.com/apache//httpd/httpd-2.4.6.tar.bz2

[*]Memcached版本:memcached-1.4.15

[*]下载地点:http://memcached.谷歌code.com/files/memcached-1.4.15.tar.gz

[*]Mysql版本:mysql-5.5.33

[*]下载地点:http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.33-linux2.6-x86_64.tar.gz

[*]PHP版本:php-5.4.19

[*]下载地点:http://mirrors.sohu.com/php/php-5.4.19.tar.bz2

[*]PHP的Memcache驱动:memcache-2.2.7

[*]下载地点:http://pecl.php.net/get/memcache-2.2.7.tgz

[*]Libevent版本:libevent-2.0.21-stable

[*]下载地点:http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz


体系的yum源为搜狐源,

3、Apache的装置与设置


[*]筹办体系情况:

#yuminstallpcre-developenssl-devel-y





[*]装置apr

#tarxfapr-1.4.6.tar.bz2
#./configure--prefix=/usr/local/httpd/apr
#make&&makeinstall






[*]装置apr-util

#tarxfapr-util-1.5.2.tar.bz2
#./configure--prefix=/usr/local/httpd/apr-util--with-apr=/usr/local/httpd/apr/
#make&&makeinstall





[*]装置Apache


#tarxfhttpd-2.4.6.tar.bz2
#cdhttpd-2.4.6
#./configure--prefix=/usr/local/httpd/apache--sysconfdir=/etc/httpd--enable-so--enable-ssl--enable-cgi--enable-rewrite--with-zlib--with-pcre--with-apr=/usr/local/httpd/apr--with-apr-util=/usr/local/httpd/apr-util--enable-modules=most--enable-mpms-shared=all--with-mpm=event
#make&&makeinstall






[*]供应SysV办事剧本/etc/rc.d/init.d/httpd,内容以下

#!/bin/bash
#
#httpdStartupscriptfortheApacheHTTPServer
#
#chkconfig:-8515
#description:ApacheisaWorldWideWebserver.Itisusedtoserve
#HTMLfilesandCGI.
#processname:httpd
#config:/etc/httpd/conf/httpd.conf
#config:/etc/sysconfig/httpd
#pidfile:/var/run/httpd.pid
#Sourcefunctionlibrary.
./etc/rc.d/init.d/functions
if[-f/etc/sysconfig/httpd];then
./etc/sysconfig/httpd
fi
#StarthttpdintheClocalebydefault.
HTTPD_LANG=${HTTPD_LANG-"C"}
#Thiswillpreventinitlogfromswallowingupapass-phrasepromptif
#mod_sslneedsapass-phrasefromtheuser.
INITLOG_ARGS=""
#SetHTTPD=/usr/sbin/httpd.workerin/etc/sysconfig/httpdtouseaserver
#withthethread-based"worker"MPM;BEWARNEDthatsomemodulesmaynot
#workcorrectlywithathread-basedMPM;notablyPHPwillrefusetostart.
#Pathtotheapachectlscript,serverbinary,andshort-formformessages.
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/httpd/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/usr/local/httpd/apache/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
start(){
echo-n$"Starting$prog:"
LANG=$HTTPD_LANGdaemon--pidfile=${pidfile}$httpd$OPTIONS
RETVAL=$?
echo
[$RETVAL=0]&&touch${lockfile}
return$RETVAL
}
stop(){
echo-n$"Stopping$prog:"
killproc-p${pidfile}-d10$httpd
RETVAL=$?
echo
[$RETVAL=0]&&rm-f${lockfile}${pidfile}
}
reload(){
echo-n$"Reloading$prog:"
if!LANG=$HTTPD_LANG$httpd$OPTIONS-t>&/dev/null;then
RETVAL=$?
echo$"notreloadingduetoconfigurationsyntaxerror"
failure$"notreloading$httpdduetoconfigurationsyntaxerror"
else
killproc-p${pidfile}$httpd-HUP
RETVAL=$?
fi
echo
}
#Seehowwewerecalled.
case"$1"in
start)
start
;;
stop)
stop
;;
status)
status-p${pidfile}$httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if[-f${pidfile}];then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl$@
RETVAL=$?
;;
*)
echo$"Usage:$prog{start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit1
esac
exit$RETVAL






[*]为此剧本付与实行权限


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






[*]将httpd到场办事列表


#chkconfig--addhttpd






[*]启动httpd办事


#servicehttpdstart






[*]客户端会见测试




4、FastCGI的装置与设置


[*]体系情况装置


#yuminstalllibxml2-developenssl-develbzip2-devellibmcrypt-devel-y






[*]装置php办事

#tarxfphp-5.4.19.tar.bz2
#cdphp-5.4.19
#./configure--prefix=/usr/local/httpd/php--with-mysql=mysqlnd--with-openssl--with-mysqli=mysqlnd--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






[*]为php供应设置文件

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






[*]为php-fpm供应Sysvinit剧本,并将其增加至办事列表

#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
#chkconfigphp-fpmon






[*]为php-fpm供应设置文件:

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






[*]编纂php-fpm设置文件

#vim/usr/local/httpd/php/etc/php-fpm.conf
listen=172.16.10.2:9000#设置本机IP监听9000端口
pm.max_children=50#设置天生子历程数(设置并发量)
pm.start_servers=5#设置开机启动历程数
pm.min_spare_servers=2#设置最小余暇历程数
pm.max_spare_servers=5#设置最年夜余暇历程数
pid=/usr/local/httpd/php/var/run/php-fpm.pid#指定pid文件
error_log=log/php-fpm.log#开启日记功效



正文:
第2-6行:更具团体办事器体系功能举行调试



[*]启动php-fpm办事

1
#servicephp-fpmstart






[*]检察办事是不是已启动



5、整合Apache与PHP办事


[*]设置Apache办事器

#vim/etc/httpd/httpd.conf
LoadModuleproxy_modulemodules/mod_proxy.so
LoadModuleproxy_fcgi_modulemodules/mod_proxy_fcgi.so
Include/etc/httpd/extra/httpd-vhosts.conf#撑持假造主机
AddTypeapplication/x-httpd-php.php#增加此行
AddTypeapplication/x-httpd-php-source.phps#增加此行
DirectoryIndexindex.phpindex.html#增添index.php






[*]设置假造主机

#vim/etc/httpd/extra/httpd-vhosts.conf
<VirtualHost*:80>
DocumentRoot"/web/htdoc"
ServerNamewww.xiaodong.com
ServerAliasxiaodong.com
ProxyRequestsOff
ProxyPassMatch^/(.*.php)$fcgi://172.16.10.2:9000/web/htdoc/$1
<Directory"/web/htdoc">
Optionsnone
AllowOverridenone
Requireallgranted
</Directory>
</VirtualHost>






[*]从头启动httpd办事


#servicehttpdrestart






[*]创立站点目次(注重在apache办事器和FastcGI办事器都必要创立)

#mkdir-pv/web/htdoc
mkdir:createddirectory`/web
mkdir:createddirectory`/web/htdoc





[*]在FastcGI办事器上创立php测试剧本

#pwd
/web/htdoc
#cat>index.php<<EOF
><?php
>phpinfo();
>?>
>EOF
#






[*]客户端测试php是不是事情一般





6、装置Mysql办事器
Mysq有三种装置体例

[*]rpm包

[*]通用二进制包

[*]源码包

此处我们接纳通用二进制包装置



[*]创立Mysql数据的寄存路径

1
2
3
#mkdir-pv/mydata/data/
#
#






[*]创立Mysql用户并修正权限

1
2
3
#groupadd-rmysql
#useradd-gmysql-r-s/sbin/nologin-M-d/mydata/datamysql
#chown-Rmysql:mysql/mydata/data






[*]装置并初始化mysql

1
2
3
4
5
6
7
8
9
#tarxfmysql-5.5.33-linux2.6-x86_64.tar.gz
#mvmysql-5.5.33-linux2.6-x86_64/usr/local/
#cd/usr/local/
#ln-svmysql-5.5.33-linux2.6-x86_64/mysql
#cdmysql
#chown-Rmysql:mysql.
#scripts/mysql_install_db--user=mysql--datadir=/mydata/data
#chown-Rroot.
#






[*]为mysql供应主设置文件

1
2
3
#cd/usr/local/
#cdmysql
#cpsupport-files/my-large.cnf/etc/my.cnf





[*]修正主设置文件

1
2
3
#vim/etc/my.cnf
thread_concurrency=8#设置为cpu个数的2倍
datadir=/mydata/data#指定命据库文件寄存路径






[*]为mysql供应sysv办事剧本并增加到办事列表

1
2
3
4
#cpsupport-files/mysql.server/etc/rc.d/init.d/mysqld
#chmod+x/etc/rc.d/init.d/mysqld
#chkconfig--addmysqld
#chkconfigmysqldon






[*]输入mysql的man手册至man下令的查找路径

1
#echoMANPATH/usr/local/mysql/man>>/etc/man.config






[*]输入mysql的头文件至体系头文件路径/usr/include

<divclass="syntaxhighlighteras3ie"id="highlighter_401072">1
<divclass="container">

再见西城 发表于 2015-1-16 20:21:55

来一发CentOS下构建企业级LAMMP情况

Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。

活着的死人 发表于 2015-1-21 20:25:11

硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。

变相怪杰 发表于 2015-1-30 22:36:08

Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。

乐观 发表于 2015-2-6 16:38:59

即便是非英语国家的人发布技术文档,Linux也都首先翻译成英语在国际学术杂志和网络上发表。

再现理想 发表于 2015-2-17 12:50:27

我是学习嵌入式方向的,这学期就选修了这门专业任选课。

金色的骷髅 发表于 2015-3-12 15:54:19

众所周知,目前windows操作系统是主流,在以后相当长的时间内不会有太大的改变,其方便友好的图形界面吸引了众多的用户。
页: [1]
查看完整版本: 来一发CentOS下构建企业级LAMMP情况