灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2353回复:0

Linux配置Apache2的经验总结

楼主#
更多 发布于:2014-02-09 12:38
apache原指http server程序,后来成为了该程序的组织名,所以把原程序名定成了httpd,在2.0版后又叫apache2。目前在windows上还叫httpd,在debian/ubuntu/linux mint系列的linux上,程序名是apache2。所以网上说httpd的资料,对apache2是部分适用的。官网本身也用httpd的说法,可以理解为httpd是产品名,apache2的可执行程序名。
 
使用 sudo apt-get install apache2 就可以安装,我的linux mint装的是2.2版,Ubuntu13装的是2.4版,两者还有有点差别的。官方有指导文档说从2.2升级到2.4要做什么。http://httpd.apache.org/docs/2.4/upgrading.html。对用户来说最直接的就是模块数和名字有不同、配置文件位置有不同。
 
把网站根目录改去用户分区,可避免修改个文件都要root权限。方法:
 
2.2版:
 
/etc/apache2/sites-available/default 修改 DocumentRoot,并修改对应写有原路径(默认是/var/www)的Directory标签,即要改两处。DocumentRoot末尾不要加 / ,Directory标签要加 / 。
 
2.4版:
 
/etc/apache2/sites-available/000-default.conf 修改 DocumentRoot,
 
/etc/apache2/apache2.conf 修改对应的Directory标签
 
修改任何设置后,用命令sudo service apache2 restart重启服务。转载请注明出处:http://blog.csdn.net/hursing
 
/etc/apache2/envvars 是apache程序的参数配置文件,包括log路径,程序使用的用户名等。默认的log位置:/var/log/apache2/下有错误日志error.log和访问日志access.log。这些配置都会export出来, service apache2在运行前会source envvars文件。如果手动运行apache2,就应该自己先source,否则会报一些参数未设置。
 
因为apache2在/usr/bin/下,所以命令行可在任何路径下使用apache2命令。 apache2 -h会列出可用的命令。有用的:
 
-v 查看版本
 
-V 查看编译时的设置
 
-l 查看编译时就集成的模块
 
-L 查看可用的配置文件指令
 
-t 检查所有配置文件是否有语法错误
 
/etc/apache2/mods-available/下表示可用的模块,load后缀存放模块的路径,conf后缀表示该模块的配置。
 
/etc/apache2/mods-enabled/下表示已启用的模块,主配置文件apache2.conf会引用到此目录的所有文件。此目录下全是软链接,可用ls -l看出来。把/etc/apache2/mods-available/下的文件软链接到/etc/apache2/mods-enabled/就会启用对应的模块。
 
配置文件中 IfModule xxx 标签表示xxx模块启用的话才加入里面的参数
 
apache2有多种并发处理模型MPM,可查看http://httpd.apache.org/docs/current/mpm.html了解详情。默认是perfork模型,每个并发处理机都在一个独立进程里,其配置参数直接影响并发处理的性能。
 
2.2版:
 
打开/etc/apache2/apache2.conf,找到<IfModule mpm_prefork_module>标签
 
StartServers 启动程序时就启动多少个server进程
 MinSpareServers 最小空闲server数
 MaxSpareServers 最大空闲server数
 MaxRequestsPerChild 每个server最多接受多少次请求。达到后就退出,这样可避免内存泄露。设为0则不限。
 
2.4版:
 
修改/etc/apache2/mods-enabled/mpm_perfork.conf,比2.2多一个参数。MaxRequestWorkers,最多的server数。如果这个数想填超过256,则要在之前加个参数MaxClients xxx。 http://httpd.apache.org/docs/current/mod/mpm_common.html有更多介绍。
 
以上可通过命令ps -ef | grep apache2 | wc -l 知道当前有几个进程在运行。(实际为那个数字-2,因为会算上命令本身和service主进程)
 
apache2.conf里面的参数属于core module,这4个常用:
 
Timeout 超时时间
 KeepAlive On/Off 启动或关闭KeepAlive
 MaxKeepAliveRequests 最大的KeepAlive连接数
 KeepAliveTimeout 最大的KeepAlive时间,超时将关闭连接

喜欢0 评分0
游客

返回顶部