今天冷知识百科网小编 黄灵败 给各位分享apache什么用途的知识,其中也会对Apache服务器是什么?有什么用啊!(apache服务器是干什么的)相关问题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在我们开始吧!
Apache服务器是什么?有什么用啊!
Apache,一种开放源码的HTTP服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性(注1)被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,Perl/Python等解释器可被编译到服务器中。
APache 和PHP各是干嘛的软件
APACHE是一个Web服务器软件,其功能是允许其他计算机在浏览器上输入其地址,可以将相应的网页文件和媒体文件发送到浏览器。
PHP是PHP编程语言的解释器,用于执行用PHP编写的程序。 可以在命令行上执行PHP程序以完成数据库备份,同步和合并功能。
但是,在大多数情况下,PHP程序是浏览器,发送命令,生成浏览器可以查看的文本,使用内容制作网页。 但是在制作网页时,APACHE会调用PHP。
扩展资料:
Apache、PHP、浏览器之间的协作过程:
1、当用户在浏览器地址中输入要访问的PHP页面文件的名称,然后按Enter键时,将触发此PHP请求,并将该请求传输到启用PHP的WEB服务器(apache)。
2、WEB服务器(apache)接受该请求并根据其后缀进行判断。 如果是PHP请求,则WEB服务器(apache)将从硬盘或内存中获取用户想要访问的PHP应用程序,并将其发送到PHP引擎。
3、PHP引擎程序将从头到尾扫描从WEB服务器(Apache)传输来的文件,并根据命令从后台读取,对数据进行处理,并动态生成相应的HTML页面。
4、PHP引擎会将生成的HTML页面返回到WEB服务器(Apache)。 然后,Web服务器(Apache)将HTML页面返回到客户端浏览器答录机,并且基于浏览器,最后一个完整的页面显示在用户面前。
apache 服务器什么作用
apache是个web服务器。你将网站放在上面架设好,外界就可以访问了。从功能来讲的话,有:1.基本网页;2.个人主页;3.虚拟主机;4.网页认证;
apache 这个软件是干嘛用?
Apache是一个历史悠久并且功能十分强大的WEB服务器,但其丰富的功能对于一个新手来说往往不知道从何下手。我个人感觉Apache的设计充分体现了模块化设计的优势,通过在动态模块加载(DSO)模式下的安装,任何子应用模块都可以通过配置文件的简单修改进行积木式的灵活配置。安装的过程可以从简单的静态html服务开始,一个模块一个模块的学习使用。从单纯的HTML静态服务(core),到复杂的动态页面服务(core + php, core + resin, core + php + mod_gzip, core + resin + mod_expire)。
本文主要从简化安装==>性能调优==>维护方便的角度,介绍了WEB服务的规划、HTTPD安装/应用模块配置、升级/维护等过程。让Apache和PHP,Resin等应用模块的**升级,完全互不影响。
WEB应用容量规划:根据硬件配置和WEB应用的特点进行WEB服务的规划及一些简单的估算公式;
Apache安装过程:apache的通用的简化安装选项,方便以后的应用的模块化配置;
修改 HARD_SERVER_LIMIT:
vi /path/to/apache_src/src/include/httpd.h
#define HARD_SERVER_LIMIT 2560 <===将原来的 HARD_SERVER_LIMIT 256 后面加个“0”
apache编译:
./configure --prefix=/home/apache --enable-shared=max --enable-module=most
可选应用模块/工具的安装:php resin mod_gzip mod_expire及各个模块之间的配合;
mod_php安装:./configure --with-apxs=/home/apache/bin/apxs --enable-track-vars --with-mysql
mod_resin安装:./configure --with-apxs=/home/apache/bin/apxs
mod_gzip安装:修改Makefile中的 apxs路径:然后make make install
工具:日志轮循工具cronolog安装:http://****cronolog.org
升级/维护:看看通用和模块化的安装过程如何简化了日常的升级/维护工作;
按照以上的方法:系统管理员和应用管理员的职责可以清楚的分开,互相**。
系统安装:系统管理员的职责就是安装好一台DSO模式的Apache,然后COLON即可,
应用安装:由应用管理员负责具体应用所需要的模块,比如PHP Resin等,并设置httpd***nf中相关的配置。
系统升级:系统管理员:升级操作系统/升级Apache
应用升级:应用管理员:升级应用模块,PHP Resin等。
WEB应用的容量规划
Apache主要是一个内存消耗型的服务应用,我个人总结的经验公式:
apache_max_process_with_good_perfermance < (total_hardware_memory / apache_memory_per_process ) * 2
apache_max_process = apache_max_process_with_good_perfermance * 1.5
为什么会有一个apache_max_process_with_good_perfermance和apache_max_process呢?原因是在低负载下系统可以使用更多的内存用于文件系统的缓存,从而进一步提高单个请求的响应速度。在高负载下,系统的单个请求响应速度会慢不少,而超过 apache_max_process,系统会因为开始使用硬盘做虚拟内存交换空间而导致系统效率急剧下降。此外,同样的服务:2G内存的机器的 apache_max_process一般只设置到1G内存的1.7倍,因为Apache本身会因为进程过多导致性能下降。
例子1:
一个apache + mod_php的服务器:一个apache进程一般需要4M内存
因此在一个1G内存的机器上:apache_max_process_with_good_perfermance < (1g / 4m) * 2 = 500
apache_max_process = 500 * 1.5 = 750
所以规划你的应用让服务尽量跑在500个进程以下以保持比较高的效率,并设置Apache的软上限在800个。
例子2:
一个apache + mod_resin的服务器: 一个apache进程一般需要2M内存
在一个2G内存的机器上:
apache_max_process_with_good_perfermance < (2g / 2m ) * 2 = 2000
apache_max_process = 2000 * 1.5 = 3000
以上估算都是按小文件服务估算的(一个请求一般大小在20k以下)。对于文件下载类型站点,可能还会受其他因素:比如带宽等的影响。
Apache安装过程
服务器个数的硬上限HARD_SERVER_LIMIT的修改:
在Apache的源代码中缺省的最大进程数是256个,需要修改apache_1.3.xx/src/include/httpd.h
#ifndef HARD_SERVER_LIMIT
#ifdef WIN32
#define HARD_SERVER_LIMIT 1024
#elif defined(NETWARE)
#define HARD_SERVER_LIMIT 2048
#else
#define HARD_SERVER_LIMIT 2560 <===将原来的HARD_SERVER_LIMIT 256 后面加个“0”
#endif
#endif
解释:
Apache缺省的最大用户数是256个:这个配置对于服务器内存还是256M左右的时代是一个非常好的缺省设置,但随着内存成本的急剧下降,现在大型站点的服务器内存配置一般比当时要高一个数量级不止。所以256个进程的硬限制对于一台1G内存的机器来说是太浪费了,而且Apache的软上限 max_client是受限于HARD_SERVER_LIMIT的,因此如果WEB服务器内存大于256M,都应该调高Apache的 HARD_SERVER_LIMIT。根据个人的经验:2560已经可以满足大部分小于2G内存的服务器的容量规划了(Apache的软上限的规划请看后面)。
Apache的编译:以下通用的编译选项能满足以后任意模块的安装
./configure --prefix=/another_driver/apache/ --enable-shared=max --enable-module=most
比如:
./configure --prefix=/home/apache/ --enable-shared=max --enable-module=most
解释:
--prefix=/another_driver/apache/:建议将apache服务安装在另外一个驱动设备上的目的在于硬盘往往是一个系统使用寿命最低的设备,因此:将服务数据和系统完全分开,不仅能提高了数据的访问速度,更重要的,大大方便系统升级,应用备份和恢复过程。
--shared-module=max:使用动态加载方式载入子模块会带来5%的性能下降,但和带来的配置方便相比更本不算什么:比如模块升级方便,系统升级风险降低,安装过程标准化等
--enable-module=most:用most可以将一些不常用的module编译进来,比如后面讲到的mod_expire是就不在 apache的缺省常用模块中
如果不想build so, 也可以这样:
./configure \
"--with-layout=Apache" \
"--prefix=/path/to/apache" \
"--disable-module=access" \
"--disable-module=actions" \
"--disable-module=autoindex" \
"--disable-module=env" \
"--disable-module=imap" \
"--disable-module=negotiation" \
"--disable-module=setenvif" \
"--disable-module=status" \
"--disable-module=userdir" \
"--disable-module=cgi" \
"--disable-module=include" \
"--disable-module=auth" \
"--disable-module=asis"
但结果会发现,这样编译对服务性能只能有微小的提高(5%左右),但却失去了以后系统升级和模块升级的灵活性,无论是模块还是Apache本身升级都必须把Apache和PHP的SOURCE加在一起重新编译。
apache的缺省配置文件一般比较大:可以使用去掉注释的方法精简一下:然后再进入具体的培植过程能让你更快的定制出你所需要的。
grep -v "#" httpd***nf.default >httpd***nf
需要修改的通用项目有以下几个:
#服务端口,缺省是8080,建议将整个Apache配置调整好后再将服务端口改到正式服务的端口
Port 8080 => 80
#服务器名:缺省没有
ServerName name.example***m
#最大服务进程数:根据服务容量预测设置
MaxClients 256 => 800
#缺省启动服务后的服务进程数:等服务比较平稳后,按平均负载下的httpd个数设置就可以
StartServers 5 => 200
不要修改:
以前有建议说修改:
MinSpareServers 5 => 100
MaxSpareServers 10 => 200
但从我的经验看来:缺省值已经是非常优化的了,而且让Apache自己调整子共享进程个数还是比较好的。
特别修改:
在solaris或一些比较容易出现内存泄露的应用上:
MaxRequestsPerChild 0 =>3000
应用模块和工具的安装配置:
由于使用模块动态加载的模式,所以可以方便的通过简单的配置调整来把Apache定制成你需要的:最好把不常用模块全部清除(无论处于安全还是效率)。
比如:对于静态页面服务器:就什么其他子模块都不加载,对于PHP应用就加上PHP模块,对于JAVA应用就把Resin模块加载上。而且各种模块的插拔非常简单,这样调试过程中就可以简单的通过注释掉不需要的模块,而不用重新编译。
一般说来,可以不需要的模块包括:
#LoadModule env_module libexec/mod_env.so
#LoadModule negotiation_module libexec/mod_negotiation.so
#LoadModule status_module libexec/mod_status.so
#server side include已经过时了
#LoadModule includes_module libexec/mod_include.so
#不需要将没有缺省index文件的目录下所有文件列出
#LoadModule autoindex_module libexec/mod_autoindex.so
#尽量不使用CGI:一直是Apache安全问题最多的地方
#LoadModule cgi_module libexec/mod_cgi.so
#LoadModule asis_module libexec/mod_asis.so
#LoadModule imap_module libexec/mod_imap.so
#LoadModule action_module libexec/mod_actions.so
#不使用安全认证可以大大提高访问速度
#LoadModule access_module libexec/mod_access.so
#LoadModule auth_module libexec/mod_auth.so
#LoadModule setenvif_module libexec/mod_setenvif.so
最好保留的有:
#用于定制log格式
LoadModule config_log_module libexec/mod_log_config.so
#用于增加文件应用的关联
LoadModule mime_module libexec/mod_mime.so
#用于缺省index文件:index.php等
LoadModule dir_module libexec/mod_dir.so
可用可不用的有:
#比如:需要在~/username/下调试php可以将
LoadModule userdir_module libexec/mod_userdir.so
#比如:需要将以前的URL进行转向或者需要使用CGI script-alias
LoadModule alias_module libexec/mod_alias.so
常用的模块:
最常用的可能就是php和JAVA应用服务器的前端,此外,从性能上讲利用mod_gzip可以减少40%左右的流量,减少机器用于传输的负载,而 mod_expires可以减少10%左右的重复请求,让重复的用户对指定的页面请求结果都CACHE在本地,根本不向服务器发出请求。
建议将所有MODULE的配置都放到相应模块的配置内部:some_module config
PHP的安装:
/path/to/php_src/configure --with-apxs=/path/to/apache/bin/apxs --with-other-modules-you-need
需要修改的配置:
AddType application/x-httpd-php .php .php3 .any_file_in_php
resin的安装设置:
/path/to/resin/src/configure --with-apxs=/path/to/apache/bin/apxs
具体的resin设置放在另外一个文件中:比如/home/resin/conf/resin***nf
CauchoConfigFile /path/to/apache/conf/resin***nf
mod_expires的安装配置:
ExpiresActive on
ExpiresByType image/gif "access plus 1 month"
ExpiresByType text/css "now plus 1 month"
ExpiresDefault "now plus 1 day"
注释:
所有的.gif文件1个月以后过期
所有的文件缺省1天以后过期
mod_gzip的安装
http://****chedong***m/tech/compress.html
日志的轮循:cronolog的安装和设置
cronolog可以非常整齐的将日志按天轮循存储
缺省编译安装到/usr/local/bin/下,只需要将配置改成:
CustomLog "|/usr/local/sbin/cronolog /home/apache/logs/%w/access_log" combined
日志将按天截断并存放在以星期为目录名的目录下:比如:log/1是周一,log/5是周五, log/0是周日
用gzip压缩每天的日志:
30 4 * * * /usr/bin/gzip -f /home/apache/logs/`date -d yesterday +%w`/access_log
日志的定期删除:
30 5 * * */usr/bin/find /home/apache/logs/ -name access_log.gz -mtime +3 |xargs -r /bin/rm -f
升级维护:
由于使用动态模块加载方式(DSO模式)安装Apache,Apache的HTTPD核心服务和应用模块以及应用模块之间都变的非常灵活,建议将所有**模块的配置都放在
CONFIGURATIONS..
里,这样配置非常容易通过屏蔽某个模块来进行功能调整:比如:
#AddModule mod_gzip.c
就屏蔽了mod_gzip,而其他模块不首任何影响。
安装和维护过程:
系统安装:系统管理员的职责就是安装系统和一个按照DSO模式安装的Apache,然后COLON。
应用安装:由应用管理员负责具体应用所需要的模块并设置HTTPD。
系统升级:系统管理员:升级系统/升级Apache
应用升级:应用管理员:升级应用模块:PHP CAUCHO等
系统备份/恢复:如果Apache不在缺省的系统盘上,只需要将Apache目录备份就可以了,遇到系统分区的硬件问题直接使用预先准备好的系统COLON,再直接将Apache所在物理盘恢复就行了。
系统管理员:Apache的最简化安装 OS + Apache (httpd core only)
应用管理员:应用模块定制 纯静态页面服务
core
PHP动态页面
core+so
+php
JAVA应用
core+so
+caucho
+ssl
应用例子: ****example***m
image.example***m
bbs.example***m mall.example***m
例子:Apache和PHP模块的**升级。
如果Apache是按照以下方式安装:
./configure --prefix=/home/apache --enable-shared=max --enable-module=most
PHP是按照以下方式安装:
./configure --with-apxs=/home/apache/bin/apxs --enable-track-vars --with-mysql
以后单独升级Apache的时候,仍然是:
./configure --prefix=/home/apache --enable-shared=max --enable-module=most
make
su
#/home/apache/bin/apachectl stop
#make install
单独升级php时,仍然是:
./configure --with-apxs=/home/apache/bin/apxs --enable-track-vars --with-mysql
make
su
#/home/apache/bin/apachectl stop
#make install
#/home/apache/bin/apachectl start
基于反相代理的WEB加速:
squid和mod_proxy都可以实现反相代理加速。而基于缓存的代理加速比起原有WEB服务,速度会有数量级的提升。
小提示:
Apache安装后,缺省根目录下没有但很有用的2个文件:
favicon.ico: favicon.ico是一个16x16的站点图标文件,如果浏览器发现有这个文件,在地址栏中会用这个图标替换调浏览器的网页图标。IE6和 MOZILLA等主流浏览器都支持这个功能。
例如: http://****chedong***m/favicon.ico
robots.txt: 用于告诉搜索引擎的爬虫程序(spider)网站那些页面可以被索引,那些不可以。
具体说明请参考:http://****robotstxt.org/wc/robots.html
参考文档:
Apache项目
http://httpd.apache.org
PHP
http://****php****
Resin
http://****caucho***m
mod_gzip
http://sourceforge****/projects/mod-gzip/
Cronolog
http://****cronolog.org
mod_expires
http://httpd.apache.org/docs/mod/mod_expires.html
面向搜索引擎的CMS设计:
http://****chedong***m/tech/cms.html
PHP和apache和MySQL是怎样协同工作的?能举个例子吗?
例如,你访问百度首页,在浏览器地址栏输入百度首页网址,点击回车,此时客户端浏览器(你的浏览器)将发送一个请求给远端电信服务器主机,而这个远端服务器主机是需要解析你的请求的,它解析过程可能比较复杂,Apache同样是用来解析请求的一种软件,Apache会把请求捕获,然后调用相应百度首页PHP页面,这个首页PHP页面可能不需要数据库依赖(为了快速响应),那PHP就可以迅速返回执行结果给Apache,然后Apache返回给客户端浏览器,最终呈现结果。
协同myql,例如,你登录百度,需要录入百度账户和密码,流程如下:
1、客户端浏览器地址栏输入网址;
2、服务器端Apache捕获,并调用百度PHP登录页面,返回调用结果给Apache,Apache返回客户端浏览器;
3、用户在本地(客户端)浏览器输入百度账户和密码,点击登录按钮;
4、登录按钮触发提交数据操作,浏览器根据提交路径和所提交的数据,发送请求与服务器Apache,Apache解析请求,调用相应PHP处理提交动作,这个PHP中会存在查询mysql数据的操作(因个人信息全部存储在持久化的数据库中),以验证用户是否存在以及密码是否正确,最终将验证结果以错误提醒或者跳转到个人首页的方式通过Apache反馈给客户端。
apache 配置多域名需要改什么
1,修改本机的hosts文件,如下 示例:127.0.0.1 localhost127.0.0.1 xlb***m127.0.0.1 xlb2***m2,打开Apache的安装目录,找到httpd***nf文件,分别去掉下面两行文字前面的#号。 LoadModule vhost_alias_module modules/mod_vhost_alias.so去掉#意思是启用apache的虚拟主机功能。 Include conf/extra/httpd-vhosts***nf 去掉这一行的#意思是从conf/extra/httpd-vhosts***nf这个文件导入虚拟主机配置。3,打开extra目录内的httpd-vhosts***nf文件,把默认的配置 ServerAdmin webmaster@dummy-host.localhost DocumentRoot "/www/docs/dummy-host.localhost" ServerName dummy-host.localhost ServerAlias http://****dummy-host.localhost/ ErrorLog "logs/dummy-host.localhost-error_log" CustomLog "logs/dummy-host.localhost-access_log common" ServerAdmin webmaster@dummy-host2.localhost DocumentRoot "/www/docs/dummy-host2.localhost" ServerName dummy-host2.localhost ErrorLog "logs/dummy-host2.localhost-error_log" CustomLog "logs/dummy-host2.localhost-access_log common"改成自己想要的目录和域名 ServerAdmin webmaster@dummy-host.localhost DocumentRoot "D:/wamp/www/" ServerName localhost ServerAlias localhost ErrorLog "logs/localhost-error_log" ServerAdmin webmaster@dummy-host.localhost DocumentRoot "D:/wamp/www/web/" ServerName test***m (填主域名) ServerAlias *.test***m (这里的服务器别名可以支持泛解析,即所有的子域名都可以解析绑定到该虚拟主机) ErrorLog "logs/localhost-error_log"如果 弄完之后 出现403错误 那 在httpd***nf里找到:Options FollowSymLinks ExecCGI IndexesAllowOverride NoneOrder deny,allowDeny from allSatisfy all更改为Options FollowSymLinks ExecCGI IndexesAllowOverride None# Order deny,allow# Deny from all# Satisfy all上面配置完之后,就可以在浏览器输入xlb***m访问你设定好的目录下面的站点了
Apache的作用
简单的说,就是网站的平台
就像树要长在地里一样
网站web application 也要放在web 服务器上 , 才能被browser 访问
他提供各种各样的服务和功能。具体看j2ee 的定义
Linux Apache 有什麽好处 ?
Linux是一种操作系统,和windows是一种类型.
Apache是一种软件环境,也可以说是一种软件,需要安装才能使用.
两者结合在一起能形成非常好的服务器软件环境。
——————————————————————————————
1、Linux
Linux为一种自由、开放、免费的软件,是一种多任务和多用户的网络操作系统; Linux是运行于多种平台(PC、工作站等)之上、源代码公开、免费、遵循 GPL精神、遵守POSIX标准、与UNIX兼容的操作系统。
Linux是区别于Windows的另一个操作系统,本身的开发是为了创造一个开源的世界,所以Linux的源代码都是开放的,因而多是免费的。他基于卓越的Unix,有着比Unix更强大的功能,这是Linux有了于Windows不同的性能。
最初Linux是用作服务器的,操作起来多时Unix时代的命令和配置文件,管理和使用不如Windows,而且在娱乐上也有所欠缺。
但近几年来,Linux世界发生了翻天覆地的变化,它变得越来越友好,越来越适合桌面系统。他的操作有别于Windows但也很容易上手。由于网络服务器的内核作保证,Linux的安全性比一般的Windows要高很多,由于它的开源,几乎没有**传播**的就更是接近于零。
在Linux下有Windows各种软件的替代品,有一些软件干脆就出版了Linux版,比如Open Office可替代Word等,网页浏览器为Firefox等多种(遨游不能在Linux下使用),像QQ是不能在Linux下直接运行的,但可以使用LumaQQ,它们是高度兼容的。Linux一般自带防火墙,杀毒软件一般不需要,也很少有个人用户使用Linux版的杀毒产品。他的网络功能在很大程度上比Windows强,尤其是上传、下载、作服务器,有着Windows一般用户无法企及的效率。
如果是Linux新手,建议使用RedFlag Linux Desktop5.0,这就是中国的红旗Linux,对于Windows到Linux的过渡是个最好的选择,操作起来只与Windows稍有不同,很容易上手,熟悉之后再换其他的更先进的Linux,比如Fedora和SUSE等。
你可以在Linux下实现几乎所有Windows的功能,也有很多Windows没有的的功能。你可以安装Wine是很多Windows下的,本不能在Linux下运行的软件成功运行。
2 Apache:
根据著名的WWW服务器调查公司所作的调查,世界上百分之五十以上的WWW服务
器都在使用Apache,是世界排名第一的WEB服务器。Apache的诞生极富有戏剧性。
当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们
用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是
必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了
Apache。
Apache的主要特征是:
. 可以运行上所有计算机平台;
. 支持最新的HTTP 1.1协议;
. 简单而强有力的基于文件的配置;
. 支持通用网关接口CGI;
. 支持虚拟主机;
. 支持HTTP认证;
. 集成Perl脚本编程语言;
. 集成的代理服务器;
. 具有可定制的服务器日志;
. 支持服务器端包含命令(SSI)
. 支持安全Socket层(SSL)
. 用户会话过程的**能力;
. 支持FastCGI;
. 支持Java Servlets。