如何对apache模块开发指南进行优化

基于Apache的Web服务器性能优化和分析--《西安电子科技大学》2006年硕士论文
基于Apache的Web服务器性能优化和分析
【摘要】:
Web服务器的性能优化和分析是Web服务器的关键技术之一,在现有基础上对Web服务器的性能进行优化是众多研究者面临的极富挑战性的任务。
论文以VoIP服务器性能优化为背景,对Apache2.0源代码进行了系统分析。在此基础上,重点研究了Apache2.0服务器的体系结构和主要特征。从软件体系结构和具体实现方法两个层面探究了Apache服务器的实现原理。论文根据Apache服务器性能的评价指标,从软件、硬件和网络三个方面找出了影响服务器性能的关键因素。论文采用FastCGI和增加动态处理模块方法优化动态请求处理;采用探索式测试方法优化配置参数;用排队论建模分析Apache服务器过载时的性能,并提出服务器过载时收包过程的优化方案。
目前,论文所提出的性能优化方案已在VoIP服务器上成功实现,并取得较好的效果。
【关键词】:
【学位授予单位】:西安电子科技大学【学位级别】:硕士【学位授予年份】:2006【分类号】:TP393.05【目录】:
第一章 绪论7-13
1.1 Web服务器概述7-8
1.1.1 Web请求内容7-8
1.1.2 Web请求处理机制8
1.2 Web服务器的发展状况8-10
1.3 Web服务器所面临的问题及改善的方法10-11
1.4 论文的工作11
1.5 论文的安排11-13
第二章 Apache服务器分析13-31
2.1 Apache系统概述13
2.2 模块化的体系结构13-16
2.2.1 Apache的主要模块13-15
2.2.2 模块化的体系结构15-16
2.3 Apache服务器的主要特征16-18
2.4 Apache服务器的实现原理18-28
2.4.1 模块化结构18-21
2.4.2 控制处理流程21-28
2.5 Apache与IIS比较28-31
第三章Apache服务器的性能31-43
3.1 服务器性能的定义和测评指标31-32
3.1.1 服务器性能的定义31
3.1.2 服务器性能评价指标31-32
3.2 影响Apache服务器性能的因素32-36
3.2.1 软件方面32-34
3.2.2 硬件方面34-35
3.2.3 网络方面35-36
3.3 Apache服务器性能测试工具36-43
3.3.1 WebBench36-37
3.3.2 WebStone37-39
3.3.3 SPECWe6200539-43
第四章 Apache服务器的性能优化43-57
4.1 动态请求的优化43-46
4.1.1 CGI的工作机制43-44
4.1.2 利用FastCGI进行优化44-45
4.1.3 增加动态处理模块45-46
4.2 配置参数的优化46-49
4.2.1 MPM模块46-47
4.2.2 优化参数配置47-49
4.3 收包过程的优化49-57
4.3.1 Apache服务器过载情况的分析49-52
4.3.2 Apache服务器的收包机制52-53
4.3.3 Apache服务器的收包过程的改进53-57
第五章 总结57-59
参考文献61-63
作者在读研期间的成果63
发表论文63
参加科研项目63
欢迎:、、)
支持CAJ、PDF文件格式
【引证文献】
中国期刊全文数据库
乔凯;沈苏彬;;[J];南京邮电大学学报(自然科学版);2011年01期
【参考文献】
中国期刊全文数据库
张白一,崔尚森;[J];交通与计算机;2005年04期
【共引文献】
中国期刊全文数据库
韦宝泉;林知明;;[J];河北科技大学学报;2010年03期
陈旭;肖石林;李同伟;;[J];信息技术;2008年08期
魏晓玲;;[J];信息技术;2010年08期
高富强;刘国华;何斌;高福兵;;[J];核电子学与探测技术;2008年05期
刘金梅;周彤;李紫薇;刘立军;;[J];北华航天工业学院学报;2008年03期
陈冬;彭德迟;胡荣强;;[J];黄石理工学院学报;2006年03期
王景丽;曾鸣;王相林;;[J];杭州电子科技大学学报;2008年04期
宋忠强;李欣;李培良;;[J];海洋技术;2009年04期
郑碧清,刘海,刘德明;[J];华中科技大学学报(自然科学版);2004年03期
袁辉建;陈曾汉;晏来成;;[J];测控技术;2007年01期
中国重要会议论文全文数据库
张海峰;黄敬雄;谢维信;;[A];第十三届全国信号处理学术年会(CCSP-2007)论文集[C];2007年
黄浩东;李晋尧;;[A];第十九届测控、计量、仪器仪表学术年会(MCMI'2009)论文集[C];2009年
郑国荣;熊昌镇;张彦;;[A];中国计量协会冶金分会2010年会论文集[C];2010年
胡永宁;窦文华;;[A];计算机技术与应用进展——全国第17届计算机科学与技术应用(CACIS)学术会议论文集(下册)[C];2006年
中国博士学位论文全文数据库
康剑斌;[D];清华大学;2009年
【同被引文献】
中国期刊全文数据库
刘冬;靳蓓蓓;;[J];信息技术;2007年08期
刘群,洪帆;[J];华中理工大学学报;2000年11期
高昂;;[J];程序员;2009年10期
吕建;马晓星;陶先平;徐锋;胡昊;;[J];中国科学E辑:信息科学;2006年10期
王继成,萧嵘,孙正兴,张福炎;[J];计算机研究与发展;2001年02期
李洋;陈宁江;金蓓弘;左林;黄涛;;[J];计算机研究与发展;2007年08期
陈苒,董占球;[J];计算机工程与应用;2001年14期
张志君,范玉顺;[J];计算机工程与应用;2002年17期
焦丽梅,孙凝晖,褚兴军;[J];计算机工程与应用;2003年13期
程洪,钱乐秋,洪圆;[J];计算机工程与应用;2004年34期
中国博士学位论文全文数据库
李双庆;[D];重庆大学;2003年
范国闯;[D];中国科学院研究生院(软件研究所);2004年
于万钧;[D];吉林大学;2004年
刘安丰;[D];中南大学;2005年
李长云;[D];浙江大学;2005年
【二级参考文献】
中国期刊全文数据库
杨嗣超,邱见明,杨宇航;[J];计算机工程;2001年02期
单志广,林闯,肖人毅,杨扬;[J];计算机学报;2004年02期
【相似文献】
中国期刊全文数据库
王珂;杨萱;任维佳;乔志宏;;[J];计算机仿真;2007年05期
杨威,苑戎;[J];四川工业学院学报;1991年02期
李来水,韩伟,毛虹;[J];计算机应用;1998年06期
余祥,胡力耘,卢杰持;[J];机电工程;1998年02期
官洪民,刘立山;[J];莱阳农学院学报;1999年04期
贺德全;[J];广西工学院学报;2000年01期
谢敏,陆桂明;[J];华北水利水电学院学报;2000年03期
王暄,郭芳侠;[J];陕西师范大学继续教育学报;2001年04期
陈大庆,杨诚成;[J];仪器仪表用户;2003年04期
张继顺;[J];电脑学习;1994年03期
中国重要会议论文全文数据库
李湘兰;;[A];东北三省及内蒙古地区遗传学研究进展学术研讨会论文汇编[C];2009年
于洋;张希农;谢石林;;[A];第三届全国压电和声波理论及器件技术研讨会论文集[C];2008年
胡炜;沈理;;[A];1998年中国智能自动化学术会议论文集(上册)[C];1998年
刘兴林;赵晓哲;;[A];1998中国控制与决策学术年会论文集[C];1998年
罗凯;党建军;王育才;;[A];机床与液压学术研讨会论文集[C];2004年
罗凯;党建军;王育才;;[A];第三届全国流体传动及控制工程学术会议论文集(第二卷)[C];2004年
粟亦农;徐寿喜;;[A];第八届真空技术应用学术年会论文集[C];2005年
杨平;郭东明;;[A];2005年度山东煤炭学会优秀学术论文集[C];2005年
仇春秋;;[A];2005年全国金属矿山采矿学术研讨与技术交流会论文集[C];2005年
王海燕;;[A];江苏省教育学会2006年年会论文集(美术专辑)[C];2006年
中国重要报纸全文数据库
朱文利;[N];电脑报;2003年
(作者单位:北京工商大学会计学院);[N];中华工商时报;2000年
李亚彪;[N];新华每日电讯;2000年
詹铃;[N];21世纪经济报道;2010年
王立群;[N];中国计算机报;2004年
安徽日报社
汪家驷;[N];安徽日报;2002年
施云树;[N];电脑报;2001年
卢军;[N];发展导报;2001年
王荣福;[N];电脑报;2003年
张九陆;[N];中国计算机报;2001年
中国博士学位论文全文数据库
刘西军;[D];浙江大学;2005年
隋鹏;[D];中国农业大学;2005年
滕国伟;[D];上海大学;2005年
胡益锋;[D];清华大学;2005年
佟为明;[D];哈尔滨工业大学;1999年
高海洋;[D];天津大学;2000年
穆罕默德·马斯理;[D];武汉大学;2004年
金锦炎;[D];武汉大学;2004年
陈必链;[D];华南理工大学;2004年
张小涛;[D];天津大学;2005年
中国硕士学位论文全文数据库
侯景华;[D];西安电子科技大学;2006年
乔明侠;[D];合肥工业大学;2005年
任艳玲;[D];陕西师范大学;2005年
单丽君;[D];浙江大学;2005年
王蕊;[D];吉林大学;2005年
罗君琴;[D];浙江大学;2005年
岑齐;[D];西南交通大学;2005年
周萌;[D];西南师范大学;2005年
章国强;[D];吉林大学;2005年
于占军;[D];吉林大学;2005年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
地址:北京清华大学 84-48信箱 知识超市公司
出版物经营许可证 新出发京批字第直0595号
同方知网数字出版技术股份有限公司
订购热线:400-819-82499
在线咨询:
传真:010-
京公网安备74号PHP与Apache
服务器君一共花费了87.338 ms进行了3次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议
Apache概述
Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台、高效和稳定而闻名。按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额。尤其是在X(Unix/Linux)平台上,Apache是最常见的选择。其它的Web Server产品,比如IIS,只能运行在Windows平台上,是基于微软.Net架构技术的不二选择。
Apache支持许多特性,大部分通过模块扩展实现。常见的模块包括mod_auth(权限验证)、mod_ssl(SSL和TLS支持) mod_rewrite(URL重写)等。一些通用的语言也支持以Apache模块的方式与Apache集成。 如Perl,Python,Tcl,和PHP等。
Apache并不是没有缺点,它最为诟病的一点就是变得越来越重,被普遍认为是重量级的WebServer。所以,近年来又涌现出了很多轻量级的替代产品,比如lighttpd,nginx等等,这些WebServer的优点是运行效率很高,但缺点也很明显,成熟度往往要低于Apache,通常只能用于某些特定场合。
Apache组件逻辑图
Apache是基于模块化设计的,总体上看起来代码的可读性高于php的代码,它的核心代码并不多,大多数的功能都被分散到各个模块中,各个模块在系统启动的时候按需载入。你如果想要阅读Apache的源代码,建议你直接从main.c文件读起,系统最主要的处理逻辑都包含在里面。
MPM(Multi -Processing Modules,多重处理模块)是Apache的核心组件之一,Apache通过MPM来使用操作系统的资源,对进程和线程池进行管理。Apache为了能够获得最好的运行性能,针对不同的平台(Unix/Linux、Window)做了优化,为不同的平台提供了不同的MPM,用户可以根据实际情况进行选择,其中最常使用的MPM有prefork和worker两种。至于您的服务器正以哪种方式运行,取决于安装Apache过程中指定的MPM编译参数,在X系统上默认的编译参数为prefork。由于大多数的Unix都不支持真正的线程,所以采用了预派生子进程(prefork)方式,象Windows或者Solaris这些支持线程的平台,基于多进程多线程混合的worker模式是一种不错的选择。对此感兴趣的同学可以阅读有关资料,此处不再多讲。Apache中还有一个重要的组件就是APR(Apache portable Runtime Library),即Apache可移植运行库,它是一个对操作系统调用的抽象库,用来实现Apache内部组件对操作系统的使用,提高系统的可移植性。Apache对于php的解析,就是通过众多Module中的php Module来完成的。
Apache的逻辑构成以及与操作系统的关系
PHP与Apache
当PHP需要在Apache服务器下运行时,一般来说,它可以mod_php5模块的形式集成, 此时mod_php5模块的作用是接收Apache传递过来的PHP文件请求,并处理这些请求, 然后将处理后的结果返回给Apache。如果我们在Apache启动前在其配置文件中配置好了PHP模块(mod_php5), PHP模块通过注册apache2的ap_hook_post_config挂钩,在Apache启动的时候启动此模块以接受PHP文件的请求。
除了这种启动时的加载方式,Apache的模块可以在运行的时候动态装载, 这意味着对服务器可以进行功能扩展而不需要重新对源代码进行编译,甚至根本不需要停止服务器。 我们所需要做的仅仅是给服务器发送信号HUP或者AP_SIG_GRACEFUL通知服务器重新载入模块。 但是在动态加载之前,我们需要将模块编译成为动态链接库。此时的动态加载就是加载动态链接库。 Apache中对动态链接库的处理是通过模块mod_so来完成的,因此mod_so模块不能被动态加载, 它只能被静态编译进Apache的核心。这意味着它是随着Apache一起启动的。
Apache是如何加载模块的呢?我们以前面提到的mod_php5模块为例。 首先我们需要在Apache的配置文件httpd.conf中添加一行:
LoadModule php5_module modules/mod_php5.so
这里我们使用了LoadModule命令,该命令的第一个参数是模块的名称,名称可以在模块实现的源码中找到。 第二个选项是该模块所处的路径。如果需要在服务器运行时加载模块, 可以通过发送信号HUP或者AP_SIG_GRACEFUL给服务器,一旦接受到该信号,Apache将重新装载模块, 而不需要重新启动服务器。
在配置文件中添加了所上所示的指令后,Apache在加载模块时会根据模块名查找模块并加载, 对于每一个模块,Apache必须保证其文件名是以“mod_”开始的,如PHP的mod_php5.c。 如果命名格式不对,Apache将认为此模块不合法。Apache的每一个模块都是以module结构体的形式存在, module结构的name属性在最后是通过宏STANDARD20_MODULE_STUFF以__FILE__体现。 关于这点可以在后面介绍mod_php5模块时有看到。这也就决定了我们的文件名和模块名是相同的。 通过之前指令中指定的路径找到相关的动态链接库文件后,Apache通过内部的函数获取动态链接库中的内容, 并将模块的内容加载到内存中的指定变量中。
在真正激活模块之前,Apache会检查所加载的模块是否为真正的Apache模块, 这个检测是通过检查module结构体中的magic字段实现的。 而magic字段是通过宏STANDARD20_MODULE_STUFF体现,在这个宏中magic的值为MODULE_MAGIC_COOKIE, MODULE_MAGIC_COOKIE定义如下:
#define MODULE_MAGIC_COOKIE 0xUL /* "AP22" */
最后Apache会调用相关函数(ap_add_loaded_module)将模块激活, 此处的激活就是将模块放入相应的链表中(ap_top_modules链表: ap_top_modules链表用来保存Apache中所有的被激活的模块,包括默认的激活模块和激活的第三方模块。)
延伸阅读此文章所在专题列表如下:
本文地址:,欢迎访问原出处。
不打个分吗?
转载随意,但请带上本文地址:
如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 。
大家都在看
阅读一百本计算机著作吧,少年
基思(Jeremy Keith) (作者), 桑布尔斯(Jeffrey Sambells) (作者), 魏忠 (合著者), 杨涛 (译者), 王建桥 (译者), 杨晓云 (译者), 等 (译者)
《JavaScript DOM编程艺术(第2版)》内容简介:JavaScript是Web开发中最重要的一门语言,它强大而优美。无论是桌面开发,还是移动应用。JavaScript都是必须掌握的技术。W3C的DOM标准是开发Web应用的基石。已经得到所有现代浏览器的支持,这使得跨平台Web开发成了一件轻松惬意的事。《JavaScript DOM编程艺术(第2版)》是超级畅销书的升级版,由倡导Web标准的领军人物执笔,揭示了前端开发的真谛,是学习JavaScript和DOM开发的必读之作。
扫一扫,在手机上阅读
栏目最新博文
6,288 views
9,255 views
13,697 views
8,657 views
24,640 views
17,090 views
11,096 views
25,962 views
8,753 views
13,869 views
栏目博文推荐
1,734 views
3,563 views
4,391 views
9,526 views
11,694 views
2,148 views
4,355 views
9,966 views
3,383 views
24,109 views
当你停下来休息的时候,不要忘记别人还在奔跑!
1,136 views
关于网站与作者
互联网信息太多太杂,各互联网公司不断推送娱乐花边新闻,SNS,微博不断转移我们的注意力。但是,我们的时间和精力却是有限的。这里是互联网浩瀚的海洋中的一座宁静与美丽的小岛,供开发者歇息与静心潜心修炼(愿景)。
“Veda”的本义是知识、启示,希望这里能为开发者提供充足的技术资料。
我的电子邮件gonnsai(,腾讯微博:,欢迎与我联系。出自Ubuntu中文
或许你想看的是:
LAMP的概念:
Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。
安装LAMP就已经安装了 网页服务器 数据库 Perl/PHP/Python语音环境。
如果你是安装到本机上测试的话,最好确保hosts的内容为这样
username@ubuntu:~$ cat /etc/hosts
套件一次性安装
sudo tasksel
用空格选中LAMP,回车即可。(不过要小心别修改其他的选项,否则会安装或删除该服务!)
如果出现tasksel aptitude failed (100)错误,需要先更新源包
sudo apt-get update
仔细手动安装法(最小组件)
sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server
有些是因为依赖关系会自动安装的,但是为了保险,所以多打了一些。开始安装时sudo会问您密码(只是有可能),这是系统管理员的密码。安装途中MySQL要求设定账户有密码,这是与操作系统没关系的账户与密码。
图形安装法
在新立得软件包管理器中选择& 编辑--使用任务分组标记软件包
在打开的窗口中 勾选 LAMP SERVER 然后确定。
在主窗口中 点击绿色的对号 应用 按钮
好了 。接下来就是等待...等待新立得 自动下载安装完。
安装途中MySQL要求设定账户有密码,这是与操作系统没关系的账户与密码。
Apache默认页面
这是一个系统管理软件,管理包含LAMP组件在内的大部分系统服务。同时能进行安装、进程管理等多种系统功能。
先到webmin官方下载软件
在该软件包存放位置下,打开终端。(你也可以用命令切换到该位置)
sudo dpkg -i 软件包名(用Tab可以少输点字)
如果提示缺少依赖,那差什么就装什么
访问地址(注意是加密安全链接):
这是一个数据库管理软件,管理mysql.
其实这也是个安全隐患,建议通过openssh来管理服务器。
方案一:终端中运行命令 (不推荐)(在我自己按照此教程的安装过程中,使用这种方法出现了各种问题导致phpmyadmin打不开,所以强烈建议使用下面提供的第二种方案)
sudo apt-get install phpmyadmin
强烈建议不要从源里安装在上下载软件包,解压缩到本地目录/var/www/phpmyadmin
tips:如果你请直接解压到/var/www/phpmyadmin,如果不存在phpmyadmin,请自行创建
在终端下执行
sudo cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.phpsudo gedit /var/www/phpmyadmin/config.inc.php
找到“blowfish_secret”在后面填上任意字母
$cfg['Servers'][$i]['auth_type']='cookie';
$cfg['Servers'][$i]['host']='localhost';
$cfg['Servers'][$i]['connect_type']='tcp';
$cfg['Servers'][$i]['compress']='false';
$cfg['Servers'][$i]['extension']='mysql';
保存,退出
安装php5-mcrypt
sudo apt-get install php5-mcrypt
编辑php配置文件
sudo gedit /etc/php5/apache2/php.ini
在extension下面加上(任何独立一行就行)
extension=php_mcrypt.so (原来的php5-mcrypt.so无效)
保存,重启apache2
sudo /etc/init.d/apache2 restart
在浏览器里输入
注:如果进入phpmyadmin出现配置文件引用失败则删除刚自己添加的
$cfg['Servers'][$i]['auth_type']='cookie';
$cfg['Servers'][$i]['host']='localhost';
$cfg['Servers'][$i]['connect_type']='tcp';
$cfg['Servers'][$i]['compress']='false';
$cfg['Servers'][$i]['extension']='mysql';
保存,退出
然后再重启apache2
sudo /etc/init.d/apache2 restart
在浏览器里输入
1&apache 的配置文件路径 /etc/apache2/apache2.conf
2&apache 网站字符编码配置路径 /etc/apache2/conf.d/charset
3&php.ini 路径 /etc/php5/apache2/php.ini
4&mysql配置文件 路径 /etc/f 一般不要使用,尤其是新手
5&phpmyadmin配置文件路径 /etc/phpmyadmin/apache.conf
6&默认网站根目录 /var/www
1.重启apache
sudo /etc/init.d/apache2 restart
service Apache2
2.重启mysql
sudo /etc/init.d/mysql restart
sudo service mysql restart
1.更改默认字符集
终端中使用命令
sudo nano /etc/apache2/conf.d/charset
# AddDefaultCharset
的井号去掉,后面字段改成UTF-8(如果您的网站是这样了话)
AddDefaultCharset
中间的空格数并不重要,但一定要有。
2.添加支持文件类型(一般不需要),与网站地址(需要)
终端中使用命令
sudo nano /etc/apache2/apache2.conf
在配置文件最后面加入下面几行:
添加文件类型支持 (注:如果无法在html中解析php的语句,添加下面语句。网上好多都是说直接编辑httpd.conf,但是ubuntu版本的apache2没有这个文件,你可以直接编辑apache2.conf,或者自己加一个httpd.conf,作为用户配置文件,apache2.conf 中include这个配置文件。)
AddType application/x-httpd-php .php .htm .html
添加首页文件 三个的顺序可以换 前面的访问优先 (当然你也可以加别的 比如default.php)
&IfModule dir_module&
DirectoryIndex index.htm index.html index.php
&/IfModule&
更改服务器地址(这里改为本机),您可以凭您喜好修改,就是必须一致
ServerName 127.0.0.1
修改apache的根目录DocumentRoot:
sudo nano /etc/apache2/sites-enabled/000-default
将其中的 DocumentRoot /var/www 改成您想要的目录比如 DocumentRoot /var/www/htdocs/ (记得把phpmyadmin放在/var/www/htdocs/目录下,否则phpmyadmin会无法访问)以上Apache2就基本配置完成了。重启Apache2服务即可。 (这段内容很容易让新手糊涂和误解特别是阅读的不仔细的情况下,在我自己按照这个教程的设置过程中默认的DocumentRoot 是 /var/www/html,在之前的步骤中,已经将phpmyadmin放入了/var/www/中,那么这里只需要将DocumentRoot /var/www/html 更改为 /var/www就行了。作为一个新手我的理解是,网站根目录是谁就改成谁,因为localhost/info.php这个文件放在/var/www下可以访问,那么要访问localhost/phpmyadmin就把phpmyadmin方在/var/www下 同理 这里的路径我就设置为了/var/www,而没有将其更改。我是新手,我在这里犯过错,所以我将我的实际情况描述出来,仅作为参考。)
下面的是参考,一般不需要改变,除非有特殊需求。
sudo nano /etc/apache2/ports.conf #修改端口号,把 NameVirtualHost *:80 改为NameVirtualHost 127.0.0.1:80 , 修改 Listen 80
再修改site的配置文件
/etc/apache2/sites-available/default
80是端口号
&VirtualHost *:80&
sudo a2enmod rewrite #开启apache 的rewrite功能
sudo a2enmod #启用模块
sudo a2dismod #禁用模块
这个没什么好说的 根据个人自己需要
建议将安全模块开启(注意!开启后phpmyadmin会不能用)
sudo nano /etc/php5/conf.d/php.ini
注意:你可能需要敲入命令
php -i | grep php.ini
来获取你的php cli加载的php.ini路径(Loaded Configuration File,比如 /etc/php5/cli/php.ini 而非 /etc/php5/conf.d/php.ini)。但此文件并不一定是apache php5模块加载的php.ini文件,如果要获得apache php5模块加载的php.ini,请参见
nano可以用Ctrl+w来搜索将 safe_mode = off safe_mode = 设置为 safe_mode = on safe_mode = /var/www/htdocs/ 以上 /var/www/htdocs/是您在上面设置个网站根目录,请按照情况修改,结尾的/是一定要加的,
不然 /var/www/htdocsa,/var/www/htdocsb,等目录也可以访问。
以下是更改默认时区
;date.timezone=
去掉前面的分号 后面加个PRC 。表示中华人民共和国(就是GMT+8时区)
date.timezone= PRC
MySQL大部分命令是以;结尾,这里除了5给出的命令,其它一定要以;结尾!
1.进入mysql
mysql -h [服务器地址] -u [用户名〕-p
这是访问本地服务器
mysql -h 127.0.0.1 -u [用户名〕 -p
如:mysql -h 127.0.0.1 -u root -p
认证成功之后就进入mysql的命令控制台,以下都是在mysql的命令控制台的命令。
2.显示已经存在的数据库
SHOW DATABASES;
3.创建数据库
数据库名在这里是没有[]号的!!,还有在linux下是区分大小写(只是使用时有关!)。
CREATE DATABASE [数据库名];
4.创建一个受限用户
这个用户(testuser)只有一个数据库(这里是test库)的访问写入权限,这个数据库创建与删除表的权限,并且只能在本地登入,密码为userpasswd
grant select,insert,update,delete,create,alter on test.* to 'test'@'localhost' IDENTIFIED BY 'userpasswd';
5.退出数据库
quit 或者 \q
sudo nano /etc/f
这里有一个地方要注意
默认:是只允许本地访问数据库的这里不是说本机架设了网站,用户通过架设在的网页不能访问MySQL ,是指其它机子不能直接访问MySQL
bind-address 127.0.0.1
解除限制只能本地访问mysql,如果需要其他机器访问,应使用如下语句,把这“bind-address 127.0.0.1”句话用#注释掉
#bind-address 127.0.0.1
sudo apt-get install phpmyadmin
,phpmyadmin 默认并不是安装在 /var/www下面的而是在 /usr/share/phpmyadmin
你可以把phpmyadmin复制过去 或者 链接过去
sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
然后 终端中运行命令
sudo gedit /etc/phpmyadmin/apache.conf
然后把下面两句的路径 改为/var/www/phpmyadmin(因为我已经配置好环境,所以忘记了phpmyadmin中默认配置怎么写的。。反正就是在第三行和第四行的两句.如果我没记错的话 应该是下面这样)
Alias /phpmyadmin /usr/share/phpmyadmin
&Directory /usr/share/phpmyadmin&
Alias /phpmyadmin /var/www/phpmyadmin
&Directory /var/www/phpmyadmin&
创建、测试phpinfo:
sudo vi /var/www/info.php
&?php phpinfo();&?&
Apache phpinfo页面
要求PHP版本为5.2,不支持Ubuntu10.04的PHP5.3,请参照。
直接贴下载地址,参考版本号改(这是32位的),不然主页要注册才能下
/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp
sudo mkdir /usr/local/zend
sudo cp ZendOptimizer.so /usr/local/zend
编辑php.ini
sudo gedit /etc/php5/apache2/php.ini
开头加入,注意标点符号要英文。
[Zend Optimizer]
zend_optimizer.optimization_level=1
zend_extension=&/usr/local/zend/ZendOptimizer.so&
重启apache2
sudo /etc/init.d/apache2 restart
还是上面那个phpinfo文件,要能看到如下信息
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c)
Zend Technologies
with Zend Optimizer v3.3.9, Copyright (c) , by Zend Technologies
sudo apt-get install php5-xcache
root@ubuntu:/home/qii# dpkg -l | grep xcach
php5-xcache
Fast, stable PHP opcode cacher
xcache配置文件路径是
/etc/php5/conf.d/xcache.ini
编辑php.ini
sudo gedit /etc/php5/apache2/php.ini
把xcache.ini的内容加入到php.ini。
重启apache2
sudo /etc/init.d/apache2 restart
检查安装是否成功
root@ubuntu:/home/qii# php -v
PHP 5.2.10-2ubuntu6 with Suhosin-Patch 0.9.7 (cli) (built: Oct 23 :10)
Copyright (c)
The PHP Group
Zend Engine v2.2.0, Copyright (c)
Zend Technologies
with XCache v1.2.2, Copyright (c) , by mOo
还有前面info.php页应该有XCache模块
info页面的XCache模块
这里有点奇怪的是,如果不把xcache.ini的内容加入php.ini,apache也能载入XCache,但info.php上没XCache模块。
sudo apt-get install php5-dev
wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
tar jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
sudo ./configure -enable-eaccelerator=shared
qii@ubuntu:~/tmp/eaccelerator-0.9.6.1$ sudo make install
Installing shared extensions:
/usr/lib/php5/+lfs/
修改php.ini文件,安装为Zend扩展,最好放在开头,放到[zend]之前,免的出莫名其妙的问题:
sudo vi /etc/php5/apache2/php.ini
[eaccelerator]
zend_extension=&/usr/lib/php5/+lfs/eaccelerator.so&
eaccelerator.shm_size=&16&
eaccelerator.cache_dir=&/tmp/eaccelerator&
eaccelerator.enable=&1&
eaccelerator.optimizer=&1&
eaccelerator.check_mtime=&1&
eaccelerator.debug=&0&
eaccelerator.filter=&&
eaccelerator.shm_max=&0&
eaccelerator.shm_ttl=&0&
eaccelerator.shm_prune_period=&0&
eaccelerator.shm_only=&0&
press_level=&9&
eaccelerator.allowed_admin_path=&/var/www/control.php&
创建cache缓存目录
eaccelerator.cache_dir=&/var/cache/eaccelerator&
这里定义cache路径
默认值是/tmp/eaccelerator,这非常简单因为任何人都对该目录可写,但是并不明智,因为重启后系统会自动清理该目录。一个更好的地方是/var/cache/eaccelerator。创建该目录并确保它对eAccelerator的使用者可写(通常该用户是你的网络服务器运行者,可能是www-data)。
使用默认值的话这样继续:
mkdir /tmp/eaccelerator
chmod 777 /tmp/eaccelerator
改成 /var/cache/eaccelerator的话这样继续,先改php.ini
eaccelerator.cache_dir=&/var/cache/eaccelerator&
sudo mkdir /var/cache/eaccelerator
sudo chown root:www-data /var/cache/eaccelerator
sudo chmod u=rwx,g=rwx,o= /var/cache/eaccelerator
复制控制文件control.php到网站根目录
sudo cp control.php /var/www/htdocs/
修改control.php的$user和$pw,默认是admin和eAccelerator
sudo vi /var/www/htdocs/control.php
重启apache
sudo /etc/init.d/apache2 restart
eAccelerator control.php页面
查看之前的info.php页面,有下列字段:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c)
Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c)
eAccelerator, by eAccelerator
vim /etc/apache2/apache2.conf
ServerTokens Prod
以root来运行是很危险的,用下面的方法更改,这里是都改为www-data
vim /etc/apache2/envvars
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
要确认存在这些用户组。
这个对pbpbb3这样有附带.htaccess的程序有利,不过其它场合有可能引发问题。
方法:在网站主机配置下加入AllowOverride AuthConfi
vim /etc/apache2/sites_available/default
&Directory /var/www/&
AllowOverride AuthConfig
&/Directory&
pecl search pdo sudo pecl install pdosudo pecl install pdo_mysql
最后编辑php.ini
sudo gedit /etc/php5/apache2/php.ini
再最后面添加两行:
extension = pdo.so
extension = pdo_mysql.so
sudo apt-get install libapache2-mod-php5
sudo a2enmod php5
如果显示为:
This module does not exist!
那就要彻底删除libapache2-mod-php5,然后重新安装它
sudo apt-get remove --purge libapache2-mod-php5
sudo apt-get install libapache2-mod-php5
重启apache2
sudo /etc/init.d/apache2 restart
清除浏览器缓存,然后输入http:localhost
迅雷的user-agent是
Mozilla/4.0 ( MSIE 6.0; Windows NT 5.1; )
Mozilla/5.0
( MSIE 6.0; Windows NT 5.0)
Mozilla/4.0 ( MSIE
6.0; Windows NT 5.0; .NET CLR 3.5.20706)
Mozilla/4.0 (
MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
通过.htaccess文件屏蔽迅雷的下载/盗链功能:
RewriteEngine On
#Anti Thunder
RewriteCond&&%{HTTP_USER_AGENT}& ^Mozilla/4\.0\
\(\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0\)$& [NC,OR]
RewriteCond& &%{HTTP_USER_AGENT}& ^Mozilla/5\.0\ \(\ MSIE\ 6\.0;\ Windows\
NT\ 5\.0\)$& [NC,OR]
RewriteCond&&%{HTTP_USER_AGENT}& ^Mozilla/4\.0\
\(\ MSIE\ 6\.0;\ Windows\ NT\ 5\.1;\ \)$& &[NC,OR]
RewriteCond& &%{HTTP_USER_AGENT}& ^Mozilla/4\.0\ \(\ MSIE\ 6\.0;\ Windows\
NT\ 5\.0;\ \.NET\ CLR\ 3\.5\.20706\)$& [NC,OR]
RewriteCond& &%{HTTP_USER_AGENT}& ^Mozilla/4\.0\ \(\ MSIE\ 6\.0;\ Windows\
NT\ 5\.1;\ SV1;\ \.NET\ CLR\ 1\.1\.4322;\ \.NET\ CLR\ 2\.0\.50727\)$&
RewriteRule& ^.*\.(gif|jpg|bmp|zip|rar|exe|mp3|swf)$& &/&
你可以用Firefox的扩展来测试效果。
如果你的资料地址已经被迅雷索引,请修改资源的路径地址。
如果用户手动用UltraEdit改写迅雷的user-agent,亦或者本机装虚拟机,虚拟机挂代理,迅雷挂虚拟机中的代理,这种屏蔽方法就失效了。
/etc/apache2/apache2.conf 全局配置
/etc/apache2/envvars 环境变量
/etc/apache2/ports.conf httpd服务端口信息
/etc/apache2/conf.d/
一般性配置文件存放地
/etc/apache2/mods-available/
已安装的模块
/etc/apache2/mods-enabled/
已经启用的模块
/etc/apache2/sites-available/
可用站点信息
/etc/apache2/sites-enabled/
已经启用的站点信息,当中的文件是到
/etc/apache2/sites-available/
文件的软连接。
/etc/apache2/httpd.conf

我要回帖

更多关于 apache 第三方模块 的文章

 

随机推荐