Apache配置手册1

Apache配置手册1
Apache配置手册1

ServerType standalone

ServerType定义服务器的启动方式,缺省值为独立方式standalone,httpd服务器将由其本身启动,并驻留在主机中监视连接请求。在Linux下将在启动文件/etc/rc.d/rc.local/init.d/apache中自动启动Web服务器,这种方式是推荐设置。

启动Apache服务器的另一种方式是inet方式,使用超级服务器inetd监视连接请求并启动服务器。当需要使用inetd 启动方式时,便需要更改为这个设置,并屏蔽/etc/rc.d/rc.local/init.d/apache文件,以及更改/etc/inetd.conf并重起inetd,那么Apache就能从inetd中启动了。

ServerRoot "/etc/httpd"

ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerRoot定义的路径之下。LockFile /var/run/httpd.lock

由于httpd会经常进行并发的文件操作,就需要使用加锁的方式来保证文件操作不冲突,由于NFS文件系统在文件加锁方面能力有限,因此这个目录应该是本地磁盘文件系统,而不应该使用NFS文件系统。LockFile参数指定了httpd守护进程的加锁文件,一般不需要设置这个参数,Apache服务器将自动在ServerRoot下面的路径中进行操作。但如果ServerRoot为NFS文件系统,便需要使用这个参数指定本地文件系统中的路径。

PidFile /var/run/httpd.pid

PidFile指定的文件将记录httpd守护进程的进程号,由于httpd能自动复制其自身,因此系统中有多个httpd进程,但只有一个进程为最初启动的进程,它为其他进程的父进程,对这个进程发送信号将影响所有的httpd进程。PidFILE定义的文件中就记录httpd父进程的进程号。

ScoreBoardFile logs/apache_runtime_status

httpd使用ScoreBoardFile来维护进程的内部数据,因此通常不需要改变这个参数,除非管理员想在一台计算机上运行几个Apache服务器,这时每个Apache服务器都需要独立的设置文件httpd.conf,并使用不同的ScoreBoardFile Timeout 300

Timeout定义客户程序和服务器连接的超时间隔,超过这个时间间隔(秒)后服务器将断开与客户机的连接。KeepAlive Off

在HTTP 1.0中,一次连接只能作传输一次HTTP请求,而KeepAlive参数用于支持HTTP 1.1版本的一次连接、多次传输功能,这样就可以在一次连接中传递多个HTTP请求。虽然只有较新的浏览器才支持这个功能,但还是打开使用这个选项。

MaxKeepAliveRequests 100

MaxKeepAliveRequests为一次连接可以进行的HTTP请求的最大请求次数。将其值设为0将支持在一次连接内进行无限次的传输请求。事实上没有客户程序在一次连接中请求太多的页面,通常达不到这个上限就完成连接了。KeepAliveTimeout 15

KeepAliveTimeout测试一次连接中的多次请求传输之间的时间,如果服务器已经完成了一次请求,但一直没有接收到客户程序的下一次请求,在间隔超过了这个参数设置的值之后,服务器就断开连接。

MinSpareServers 5

MaxSpareServers 20

在使用子进程处理HTTP请求的Web服务器上,由于要首先生成子进程才能处理客户的请求,因此反应时间就有一点延迟。但是,Apache服务器使用了一个特殊技术来摆脱这个问题,这就是预先生成多个空余的子进程驻留在系统中,一旦有请求出现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了。在运行中随着客户请求的增多,启动的子进程会随之增多,但这些服务器副本在处理完一次HTTP请求之后并不立即退出,而是停留在计算机中等待下次请求。但是空余的子进程副本不能光增加不减少,太多的空余子进程没有处理任务,也占用服务器的处理能力,因此也要限制空余副本的数量,使其保持一个合适的数量,使得既能及时回应客户请求,又能减少不必要的进程数量。

因此就可以使用参数MinSpareServers来设置最少的空余子进程数量,以及使用参数MaxSpareServers 来限制最多的空闲子进程数量,多余的服务器进程副本就会退出。根据服务器的实际情况来进行设置,如果服务器性能较高,并且也被频繁访问,就应该增大这两个参数的设置。对于高负载的专业网站,这两个值应该大致相同,并且等同于系统支持的最多服务器副本数量,也减少不必要的副本退出。

StartServers 8

StartServers参数就是用来设置httpd启动时启动的子进程副本数量,这个参数与上面定义的MinSpareServers 和MaxSpareServers参数相关,都是用于启动空闲子进程以提高服务器的反应速度的。这个参数应该设置为前两个值之间的一个数值,小于MinSpareServers和大于MaxS pareServers都没有意义。

MaxClients 2000

在另一方面,服务器的能力毕竟是有限的,不可能同时处理无限多的连接请求,因此参数Maxclient s就用于规定服务器支持的最多并发访问的客户数,如果这个值设置得过大,系统在繁忙时不得不在过多的进程之间进行切换来为太多的客户进行服务,这样对每个客户的反应就会减慢,并降低了整体的效率。如果这个值设置的较小,那么系统繁忙时就会拒绝一些客户的连接请求。当服务器性能较高时,就可以适当增加这个值的设置。对于专业网站,应该使用提高服务器效率的策略,因此这个参数不能超过硬件本身的限制,如果频繁出现拒绝访问现象,就说明需要升级服务器硬件了。对于非专业网站,不太在意对客户浏览器的反应速度,或者认为反应速度较慢也比拒绝连接好,就也可以略微超过硬件条件来设置这个参数。

这个参数限制了MinSpareServers和MaxSpareServers的设置,它们不应该大于这个参数的设置。MaxRequestsPerChild 1000

使用子进程的方式提供服务的Web服务,常用的方式是一个子进程为一次连接服务,这样造成的问题就是每次连接都需要生成、退出子进程的系统操作,使得这些额外的处理过程占据了计算机的大量处理能力。因此最好的方式是一个子进程可以为多次连接请求服务,这样就不需要这些生成、退出进程的系统消耗,Apache就采用了这样的方式,一次连接结束后,子进程并不退出,而是停留在系统中等待下一次服务请求,这样就极大的提高了性能。

但由于在处理过程中子进程要不断的申请和释放内存,次数多了就会造成一些内存垃圾,就会影响系统的稳定性,并且影响系统资源的有效利用。因此在一个副本处理过一定次数的请求之后,就可以让这个子进程副本退出,再从原始的httpd进程中重新复制一个干净的副本,这样就能提高系统的稳定性。

这样,每个子进程处理服务请求次数由MaxRe questPerChild定义。缺省的设置值为30,这个值对于具备高稳定性特点的Linux系统来讲是过于保守的设置,可以设置为1000甚至更高,设置为0支持每个副本进行无限次的服务处理。

LoadModule vhost_alias_module modules/mod_vhost_alias.so

LoadModule bandwidth_module modules/mod_bandwidth.so

LoadModule throttle_module modules/mod_throttle.so

LoadModule env_module modules/mod_env.so

LoadModule config_log_module modules/mod_log_config.so

LoadModule agent_log_module modules/mod_log_agent.so

LoadModule referer_log_module modules/mod_log_referer.so

LoadModule mime_module modules/mod_mime.so

LoadModule negotiation_module modules/mod_negotiation.so

LoadModule status_module modules/mod_status.so

LoadModule info_module modules/mod_info.so

LoadModule includes_module modules/mod_include.so

LoadModule autoindex_module modules/mod_autoindex.so

LoadModule dir_module modules/mod_dir.so

LoadModule cgi_module modules/mod_cgi.so

LoadModule asis_module modules/mod_asis.so

LoadModule imap_module modules/mod_imap.so

LoadModule action_module modules/mod_actions.so

LoadModule alias_module modules/mod_alias.so

LoadModule rewrite_module modules/mod_rewrite.so

LoadModule access_module modules/mod_access.so

LoadModule auth_module modules/mod_auth.so

LoadModule anon_auth_module modules/mod_auth_anon.so

LoadModule db_auth_module modules/mod_auth_db.so

LoadModule expires_module modules/mod_expires.so

LoadModule headers_module modules/mod_headers.so

LoadModule setenvif_module modules/mod_setenvif.so

LoadModule perl_module modules/libperl.so

LoadModule php_module modules/mod_php.so

LoadModule php3_module modules/libphp3.so

LoadModule php4_module modules/libphp4.so

LoadModule dav_module modules/libdav.so

LoadModule roaming_module modules/mod_roaming.so

LoadModule ssl_module modules/libssl.so

LoadModule put_module modules/mod_put.so

LoadModule python_module modules/mod_python.so

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ClearModuleList

AddModule mod_vhost_alias.c

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AddModule mod_bandwidth.c

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AddModule mod_throttle.c

AddModule mod_env.c

AddModule mod_log_config.c

AddModule mod_log_agent.c

AddModule mod_log_referer.c

AddModule mod_mime.c

AddModule mod_negotiation.c

AddModule mod_status.c

AddModule mod_info.c

AddModule mod_include.c

AddModule mod_autoindex.c

AddModule mod_dir.c

AddModule mod_cgi.c

AddModule mod_asis.c

AddModule mod_imap.c

AddModule mod_actions.c

AddModule mod_userdir.c

AddModule mod_alias.c

AddModule mod_rewrite.c

AddModule mod_access.c

AddModule mod_auth.c

AddModule mod_auth_anon.c

AddModule mod_auth_db.c

AddModule mod_expires.c

AddModule mod_headers.c

AddModule mod_so.c

AddModule mod_setenvif.c

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AddModule mod_perl.c

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AddModule mod_php.c

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AddModule mod_php3.c

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AddModule mod_php4.c

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AddModule mod_dav.c

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AddModule mod_roaming.c

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AddModule mod_ssl.c

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AddModule mod_put.c

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AddModule mod_python.c

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Apache服务器的一个重要特性就是其模块化的结构,这不但表现为其能在编译时能通过新的模块加入新的功能,还表现为其模块可以动态加载入http服务程序中,而不必载入不需要的模块。使用Apache的动态加载模块只需要设置好Load Module和AddModule参数就可以了,这种特性就是Apache的DSO(Dynamic Shared Object)特性,然而要想充分使用DSO特性仍然不是一个简单的事情,不适当的改动这里的设置就可能造成服务器不能正常启动。因此如果不是要增加或减少服务器提供的功能,就不要改动这里的设置。

上面这些列表就显示了Linux下的缺省Apache服务器支持的模块,事实上很多模块是没有必要的,不必要模块不会被载入内存。模块可以静态连接到Apache 服务器内部,也可以这样动态加载,将Apache的特性都编译成动态可加载模块是该Port的做法,而不是Apache的缺省做法,这样就以牺牲很小的性能的同时,带来极大的灵活性。

因而动态可加载的能力还是对性能有轻微的影响,因此可以重新编译Apache,将自己所需要的功能编译进Apache 服务器内部,可以让系统显得更为干净,效率也有轻微的提高。通常仅仅为了这一个目的就重新编译Apache是没有必要的,如果需要增加其他特性而重新编译Apache,不妨在增加其他模块的同时将所有的模块都静态连接入Apache 服务器。有的使用者更喜欢动态加载模块,那么也不妨全部都使用动态加载模块。

这些模块都被放置到/usr/local/apache/libexec/目录下,每个模块对应Apache服务器的一个特性。详细解释每个模块的功能需要相当多的篇幅,其中比较重要的特性将在后面相应的地方中进行解释,而具体每个模块的功能及用法就需要查看Apache的文档。

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 主服务器设置

Apache服务器需要各种设置,以定义自己使用各种参数以提供Web服务。对于使用虚拟主机的情况,除了在虚拟主机的定义项中覆盖的设置之外(有的设置必须重新定义),这里的设置也是虚拟主机的缺省设置。

Port 80

Port定义了Standalone模式下httpd守护进程使用的端口,标准端口是80。这个选项只对于以独立方式启动的服务器才有效,对于以inetd方式启动的服务器则在inetd.conf中定义使用哪个端口。

在Unix下使用80端口需要root权限,一些管理员为了安全的原因,认为httpd 服务器不可能没有安全漏洞,因而更愿意使用普通用户的权限来启动服务器,这样就不能使用80端口及其他小于1024的端口,而必须使用大于1024的端口来启动httpd,一般情况下8000或8080也是常用的端口。而Apache httpd服务器本身可以在以root权限打开80端口后再改变为普通用户身份进行运行,这样就减少了危险性,因而就不需要考虑这个安全问题。但是如果普通用户也想安装配置自己的WWW服务器,那么就不得不使用大于1024的端口。

Listen 80

Listen 443

统可以同时拥有多个IP地址,因此也可以指定服务器只听取对某个BindAddress< /B>的IP地址的HTTP请求。如果没有配置这一项,则服务器会回应对所有IP的请求。

即使使用了BindAddress参数,使得服务器只回应对一个IP地址的请求,但是通过使用扩展的Listen参数,仍然可以让HTTP守护进程回应对其他IP地址的请求。此时Listen参数的用法与上面的第二个例子相同。这种比较复杂的用法主要用于设置虚拟主机。此后可以用VirtualHost参数定义对不同IP的虚拟主机,然而这种用法是较早的HTTP 1.0标准中设置虚拟主机的方法,每针对一个虚拟主机就需要一个IP地址,实际上用处并不大。在HTTP 1.1中,增加了对单IP地址多域名的虚拟主机的支持,使得虚拟主机的设置具备更大的意义。

User apache

Group apache

User和Group配置是Apache的安全保证,Apache在打开端口之后,就将其本身设置为这两个选项设置的用户和组权限进行运行,这样就降低了服务器的危险性。这个选项也只用于Standalone模式,inetd模式在inetd.conf 中指定运行Apache的用户。由于服务器必须执行改变身份的setuid()操作,因此初始进程应该具备root权限,如果是使用非root用户来启动Aapche,这个配置就不会发挥作用。

缺省设置为nobody和nogroup,这个用户和组在系统中不拥有文件,保证了服务器本身和由它启动的CGI 进程没有权限更改文件系统。在某些情况下,例如为了运行CGI与Unix交互,也需要让服务器来访问服务器上的文件,如果仍然使用nobody和nogroup,那么系统中将会出现属于nobody的文件,这对于系统安全是不利的,因为其他程序也会以nobody和nogroup的权限执行某些操作,就有可能访问这些nobody拥有的文件,造成安全问题。一般情况下要为Web服务设定一个特定的用户和组,同时在这里更改用户和组设置。

ServerAdmin root@localhost

配置文件中应该改变的也许只有ServerAdmin,这一项用于配置WWW服务器的管理员的email地址,这将在HTTP服务出现错误的条件下返回给浏览器,以便让Web使用者和管理员联系,报告错误。习惯上使用服务器上的webmaster作为WWW服务器的管理员,通过邮件服务器的别名机制,将发送到webmaster 的电子邮件发送给真正的Web管理员。

ServerName localhost

缺省情况下,并不需要指定这个ServerName参数,服务器将自动通过名字解析过程来获得自己的名字,但如果服务器的名字解析有问题(通常为反向解析不正确),或者没有正式的DNS名字,也可以在这里指定IP地址。当ServerName设置不正确的时候,服务器不能正常启动。

通常一个Web服务器可以具有多个名字,客户浏览器可以使用所有这些名字或IP地址来访问这台服务器,但在没有定义虚拟主机的情况下,服务器总是以自己的正式名字回应浏览器。ServerName就定义了Web服务器自己承认的正式名字,例如一台服务器名字(在DNS中定义了A类型)为https://www.360docs.net/doc/787093771.html,,同时为了方便记忆还定义了一个别名(CNAME记录)为https://www.360docs.net/doc/787093771.html,,那么Apache自动解析得到的名字就为https://www.360docs.net/doc/787093771.html,,这样不管客户浏览器使用哪个名字发送请求,服务器总是告诉客户程序自己为https://www.360docs.net/doc/787093771.html,。虽然这一般并不会造成什么问题,但是考虑到某一天服务器可能迁移到其他计算机上,而只想通过更改DNS中的www别名配置就完成迁移任务,所以不想让客户在其书签中使用Linux 记录下这个服务器的地址,就必须使用ServerName 来重新指定服务器的正式名字。

DocumentRoot "/var/web/www/html"

DocumentRoot定义这个服务器对外发布的超文本文档存放的路径,客户程序请求的URL就被映射为这个目录下的网页文件。这个目录下的子目录,以及使用符号连接指出的文件和目录都能被浏览器访问,只是要在URL 上使用同样的相对目录名。

注意,符号连接虽然逻辑上位于根文档目录之下,但实际上可以位于计算机上的任意目录中,因此可以使客户程序能访问那些根文档目录之外的目录,这在增加了灵活性的同时但减少了安全性。Apache在目录的访问控制中提供了FollowSymLinks选项来打开或关闭支持符号连接的特性。

Apache服务器可以针对目录进行文档的访问控制,访问控制可以通过两种方式来实现,一个是在设置文件httpd.conf(或access.conf)中针对每个目录进行设置,另一个方法是在每个目录下设置访问控制文件,通常访问控制文件名字为.htaccess。

虽然使用这两个方式都能用于控制浏览器的访问,然而使用配置文件的方法要求每次改动后重新启动httpd

设置具体目录的访问控制更为灵活方便。

Options FollowSymLinks

AllowOverride None

Directory语句就是用来定义目录的访问限制的,这里可以看出它的标准语法,为一个目录定义访问限制。上例的这个设置是针对系统的根目录进行的,设置了允许符号连接的选项FollowSymLinks ,以及使用AllowOverride None表示不允许这个目录下的访问控制文件来改变这里进行的配置,这也意味着不用查看这个目录下的相应访问控制文件。

由于Apache对一个目录的访问控制设置是能够被下一级目录继承的,因此对根目录的设置将影响到它的下级目录。注意由于AllowOverride None的设置,使得Apache服务器不需要查看根目录下的访问控制文件,也不需要查看以下各级目录下的访问控制文件,直至httpd.conf(或access.conf )中为某个目录指定了允许Alloworride,即允许查看访问控制文件。由于Apache对目录访问控制是采用的继承方式,如果从根目录就允许查看访问控制文件,那么Apache就必须一级一级的查看访问控制文件,对系统性能会造成影响。而缺省关闭了根目录的这个特性,就使得Apache从httpd.conf中具体指定的目录向下搜寻,减少了搜寻的级数,增加了系统性能。因此对于系统根目录设置AllowOverride None不但对于系统安全有帮助,也有益于系统性能。

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

这里定义的是系统对外发布文档的目录的访问设置,设置不同的AllowOverride选项,以定义配置文件中的目录设置和用户目录下的安全控制文件的关系,而Options选项用于定义该目录的特性。配置文件和每个目录下的访问控制文件都可以设置访问限制,设置文件是由管理员设置的,而每个目录下的访问控制文件是由目录的属主设置的,因此管理员可以规定目录的属主是否能覆盖系统在设置文件中的设置,这就需要使用AllowOverride 参数进行设置,通常可以设置的值为:

AllowOverride的设置对每个目录访问控制文件作用的影响

All 缺省值,使访问控制文件可以覆盖系统配置

None 服务器忽略访问控制文件的设置

Options 允许访问控制文件中可以使用Options参数

定义目录的选项

FileInfo 允许访问控制文件中可以使用AddType等参

数设置

AuthConfig 允许访问控制文件使用AuthName,AuthType

等针对每个用户的认证机制,这使目录属主

能用口令和用户名来保护目录Limit 允许对

访问目录的客户机的IP地址和名字进行限

制。

每个目录具备一定属性,可以使用Options来控制这个目录下的一些访问特性设置,以下为常用的特性选项:Options设置服务器特性设置

All 所有的目录特性都有效,这是缺省状态

None 所有的目录特性都无效

FollowSymLinks 允许使用符号连接,这将使浏览器有可能访

问文档根目录(DocumentRoot)之外的文档

允许访问,这个设置将增加一些安全性。

ExecCGI 允许这个目录下可以执行CGI程序Indexes

允许浏览器可以生成这个目录下所有文件的

索引,使得在这个目录下没有index.html(或

其他索引文件)时,能向浏览器发送这个目

录下的文件列表。

此外,上例中还使用了Order、Allow、Deny等参数,这是Limit语句中用来根据浏览器的域名和IP地址来控制访问的一种方式。其中Order定义处理Allow和Deny的顺序,而Allow、Deny则针对名字或IP进行访问控制设置,上例使用allowfrom all,表示允许所有的客户机访问这个目录,而不进行任何限制。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

UserDir public_html

当在一台Linux上运行Apache服务器时,这台计算机上的所有用户都可以有自己的网页路径,形如https://www.360docs.net/doc/787093771.html,/~user,使用波浪符号加上用户名就可以映射到用户自己的网页目录上。映射目录为用户个人主目录下的一个子目录,其名字就用UseDir这个参数进行定义,缺省为public_html。如果不想为正式的用户提供网页服务,使用DISABLED作UserDir的参数即可。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.php3 index.phtml index.cgi index.htm1

很多情况下,URL中并没有指定文档的名字,而只是给出了一个目录名。那么Apache服务器就自动返回这个目录下由DirectoryIndex定义的文件,当然可以指定多个文件名字,系统会这个目录下顺序搜索。当所有由DirectoryIndex指定的文件都不存在时,Apache服务器可以根据系统设置,生成这个目录下的所有文件列表,提供用户选择。此时该目录的访问控制选项中的Indexes选项(Options Indexes )必须打开,以使得服务器能够生成目录列表,否则Apache将拒绝访问。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AccessFileName .htaccess

AccessFileName定义每个目录下的访问控制文件的文件名,缺省为.htaccess,可以通过更改这个文件,来改变不同目录的访问控制限制。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Order allow,deny

Deny from all

Satisfy All

除了可以针对目录进行访问控制之外,还可以根据文件来设置访问控制,这就是File语句的任务。使用File 语句,不管文件处于哪个目录,只要名字匹配,就必须接受相应的访问控制。这个语句对于系统安全比较重要,例如上例将屏蔽所有的使用者不能访问.htaccess文件,这样就避免.htaccess中的关键安全信息不至于被客户获取。////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// CacheNegotiatedDocs

缺省情况下如果代理服务器和Apache服务器协商是否缓存其网页,Apache给予否定的回答,不希望自己的网页被代理服务器缓存。然而这样就不能有效的利用代理服务器的优势,因此可以设置CacheNegotiatieDocs 选项,使得代理服务器可以对网页进行缓存。然而即使不设置这个选项,有的代理服务器(或通过调整设置)也能对网页进行缓存。

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// UseCanonicalName On

这样服务器就能使用ServerName和Port选项的设置内容构建完整的URL,并回应客户,使浏览器能得到规范的URL。如果将这个参数设置为Off,那么Apache将使用从客户请求中获得服务器的名字和端口值(支持HTTP 1.1的客户的请求中将会有这些信息),重新构建URL。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

TypesConfig/etc/mime.types

TypeConfig用于设置保存有不同的MIME类型数据的文件名,在Linux下缺省设置为/usr/local/apache/etc/mime.types。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

DefaultType text/plain

如果Web服务器不能决定一个文档的缺省类型,这通常表示文档使用了非标准的后缀,那么服务器就使用DefaultType定义的MIME类型将文档发送给客户浏览器。这里的设置为text/plain,这样设置的问题是,如果服务器不能判断出文档的MIME,那么大部分情况下这个文档为一个二进制文档,但使用text/plain格式发送回去,浏览器将在内部打开它而不会提示保存。因此建议将这个设置更改为application/octet-stream,这样浏览器将提示用户进行保存。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

MIMEMagicFile conf/magic

除了从文件的后缀出发来判断文件的MIME类型之外,Apache还可以进一步分析文件的一些特征,来判断文件的真实MIME类型。这个功能是由mod_mime_magic 模块实现的,它需要一个记录各种MIME类型特征的文件,以进行分析判断。上面的设置是一个条件语句,如果载入了这个模块,就必须指定相应的标志文件magic 的位置。

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// HostnameLookups Off

通常连接时,服务器仅仅可以得到客户机的IP地址,如果要想获得客户机的主机名,以进行日志记录和提供给CGI程序使用,就需要使用这个HostnameLookups 选项,将其设置为On打开DNS反查功能。但是这将使服务器对每次客户请求都进行DNS查询,增加了系统开销,使得反应变慢,因此缺省设置为使用Off关闭此选项。关闭选项之后,服务器就不会获得客户机的主机名,而只能使用IP地址来记录客户。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ErrorLog logs/error_log

LogLevel warn

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent

CustomLog logs/access_log combined

这里定义了系统日志的形式,对于服务器错误记录,由ErrorLog、LogLevel 来定义不同的错误日志文件及其记录内容。

对于系统的访问日志,缺省使用CustomLog参数定义日志的位置,缺省使用combined 参数指定将所有的访问日志放在一个文件中,然而也可以将不同种类的访问日志放在不同的日志记录文件中,这是通过在CustomLog中指定不同的记录类型来完成的。common表示普通的对单页面请求访问记录,referer表示每个页面的引用记录,可以看出一个页面中包含的请求数,agent表示对客户机的类型记录,显然可以将现有的combined 定义的设置行注释掉,并使用common、referer和agent作为CustomLog的参数,来为不同种类的日志分别指定日志记录文件。

显然,LogFormat是用于定义不同类型的日志进行记录时使用的格式,这里使用了以%开头的宏定义,以记

如果这些参数指定的文件使用的是相对路径,那么就是相对于ServerRoot的路径。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ServerSignature On

一些情况下,例如当客户请求的网页并不存在时,服务器将产生错误文档,缺省情况下由于打开了ServerSignature选项,错误文档的最后一行将包含服务器的名字、Apache的版本等信息。有的管理员更倾向于不对外显示这些信息,就可以将这个参数设置为Off,或者设置为Email,最后一行将替换为对ServerAdmin 的Email 提示。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Alias /icons/ "/var/web/www/icons/"

Options Indexes MultiViews

AllowOverride None

Order allow,deny

Allow from all

ScriptAlias /cgi-bin/ "/var/web/www/cgi-bin/"

AllowOverride None

Options None

Order allow,deny

Allow from all

Alias参数用于将URL与服务器文件系统中的真实位置进行直接映射,一般的文档将在DocumentRoot 中进行查询,然而使用Alias定义的路径将直接映射到相应目录下,而不再到DocumentRoot 下面进行查询。因此Alias 可以用来映射一些公用文件的路径,例如保存了各种常用图标的icons路径。这样使得除了使用符号连接之外,文档根目录(DocumentRoot)外的目录也可以通过使用了Alias映射,提供给浏览器访问。

定义好映射的路径之后,应该需要使用Directory语句设置访问限制。

ScriptAlias也是用于URL路径的映射,但与Alias的不同在于,ScriptAlias 是用于映射CGI程序的路径,这个路径下的文件都被定义为CGI程序,通过执行它们来获得结果,而非由服务器直接返回其内容。缺省情况下CGI程序使用cgi-bin目录作为虚拟路径。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Redirect old-URI new-URL

Redirect参数是用来重写URL的,当浏览器访问服务器上的一个已经不存在的资源的时候,服务器返回给浏览器新的URL,告诉浏览器从该URL中获取资源。这主要用于原来存在于服务器上的文档,改变了位置之后,而又希望能使用老URL能访问到,以保持与以前的URL兼容。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

IndexOptions FancyIndexing NameWidth=*

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*

AddIconByType (IMG,/icons/image2.gif) image/*

AddIconByType (SND,/icons/sound2.gif) audio/*

AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe

AddIcon /icons/binhex.gif .hqx

AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv

AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip

AddIcon /icons/a.gif .ps .ai .eps

AddIcon /icons/layout.gif .html .shtml .htm .pdf

AddIcon /icons/text.gif .txt

AddIcon /icons/c.gif .c

AddIcon /icons/p.gif .pl .py

AddIcon /icons/f.gif .for

AddIcon /icons/dvi.gif .dvi

AddIcon /icons/uuencoded.gif .uu

AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl

AddIcon /icons/tex.gif .tex

AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..

AddIcon /icons/hand.right.gif README

AddIcon /icons/folder.gif ^^DIRECTORY^^

AddIcon /icons/blank.gif ^^BLANKICON^^

DefaultIcon /icons/unknown.gif

ReadmeName README

HeaderName HEADER

IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

当一个HTTP请求的URL为一个目录的时候,服务器返回这个目录中的索引文件。但如果一个目录中不存在缺省的索引文件,并且该服务器又许可显示目录文件列表的时候,就会显示出这个目录中的文件列表,为了使得这个文件列表能具有可理解性,而不仅仅是一个简单的列表,就需要前面的这些设置参数。

如果使用了IndexOptions FancyIndexing选项,可以让服务器产生的目录列表中针对各种不同类型的文档引用各种图标。而哪种文件使用哪种图标,则使用下面的AddIconByEncoding、AddIconByType以及AddIcon来定义,分别依据MIME 的编码、类型以及文件的后缀来判断使用何种图标。如果不能确定文档使用的图标,就使用DefaultIcon定义的缺省图标。

同样,使用AddDescription可以为不同类型的文档加入不同的描述。并且,服务器还在目录下,查询使用ReadmeName和HeaderName定义的文件(自动加上.html后缀,如果没有发现,再使用.txt后缀进行搜索),如果发现了这些文件,就在文件列表之前首先显示这些文件的内容,以使得普通目录列表具备更大的可理解性。

IndexIgnore让服务器在列出文件列表时忽略相应的文件,这里使用模式配置的方式定义文件名。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AddEncoding x-compress Z

AddEncoding x-gzip gz tgz

AddLanguage da .dk

AddLanguage nl .nl

AddLanguage en .en

AddLanguage et .ee

AddLanguage fr .fr

AddLanguage de .de

AddLanguage el .el

AddLanguage he .he

AddCharset ISO-8859-8 .iso8859-8

AddLanguage it .it

AddCharset ISO-2022-JP .jis

AddLanguage kr .kr

AddCharset ISO-2022-KR .iso-kr

AddLanguage nn .nn

AddLanguage no .no

AddLanguage pl .po

AddCharset ISO-8859-2 .iso-pl

AddLanguage pt .pt

AddLanguage pt-br .pt-br

AddLanguage ltz .lu

AddLanguage ca .ca

AddLanguage es .es

AddLanguage sv .sv

AddLanguage cz .cz

AddLanguage ru .ru

AddLanguage zh-tw .tw

AddLanguage tw .tw

AddCharset Big5 .Big5 .big5

AddCharset WINDOWS-1251 .cp-1251

AddCharset CP866 .cp866

AddCharset ISO-8859-5 .iso-ru

AddCharset KOI8-R .koi8-r

AddCharset UCS-2 .ucs2

AddCharset UCS-4 .ucs4

AddCharset UTF-8 .utf8

LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw

AddType application/x-tar .tgz

AddType image/x-icon .ico

AddType application/x-httpd-php .php .php4 .php3 .phtml .htm1

AddType application/x-httpd-php-source .phps

AddType application/x-httpd-php3 .php3

AddType application/x-httpd-php3-source .phps

AddType application/x-httpd-php .phtml

AddHandler server-parsed .shtml

AddHandler imap-file map

AddEncoding用于告诉一些使用压缩的MIME类型,这样可以让浏览器进行解压缩操作。

一个HTML文档可以同时具备多个语言的版本,如对于file1.html文档可以具备file1.html.en、file1.html.fr 等不同的版本,每个语言后缀必须使用AddLanguage进行定义。这样服务器可以针对不同国家的客户,通过与浏览器进行协商,发送不同的语言版本。而LanguagePriority 定义不同语言的优先级,以便在浏览器没有特殊要求时,按照顺序使用不同的语言版本回应对file1.html 的请求。这个国际化的能力实际的应用并不多。

AddType参数可以为特定后缀的文件指定MIME类型,这里的设置将覆盖mime.types中的设置。

AddHandler是用于指定非静态的处理类型,用于定义文档为一个非静态的文档类型,需要进行处理,再向浏览器返回处理结果。例如上面注释中的设置是将以.cgi结尾的文件设置为cgi-script类型,那么服务器将启动这个CGI程序以进行处理。如果需要在前面AliasScript定义的路径之外执行CGI程序,就需要使用这个参数进行设置,此后以.cgi结尾的文件将被当作CGI程序执行。在配置文件、这个目录中的.htaccess以及其上级目录的.htaccess中必须允许执行CGI程序,这需要通过Options ExecCGI参数设定。

另外一种动态进行处理的类型为server-parsed,由服务器自身预先分析网页内的标记,将标记更改为正确的HTML标识。由于server-parsed需要对text/html 类型的文档进行处理,因此首先定义了对应的.shtml为text/html 类型。

然而要支持SSI,还要首先要在配置文件(或.htaccess)中使用Options Includes允许该目录下的文档可以为SSI类型,或使用Options IncludesNOExec让执行普通的SSI标志,但不执行其中引用的外部程序。

另一种指定server-parsed类型的方式为使用XBitBack设置选项,如果将XBitHack设置为On,服务器将检查所有text/html类型的文档(包括.html后缀的文档),如果发现文件属性具备执行位“x",则服务器就认为它是服务器分析文档,需要服务器进行处理。推荐使用AddHandler进行设置,而将XBitBack 设置为Off,因为使用XBitBack将对所有的HTML文档都执行额外的检查,降低了效率。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

BrowserMatch "Mozilla/2" nokeepalive

BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

BrowserMatch "RealPlayer 4\.0" force-response-1.0

BrowserMatch "Java/1\.0" force-response-1.0

BrowserMatch "JDK/1\.0" force-response-1.0

BrowserMatch命令为特定的客户程序,设置特殊的参数,以保证对老版本浏览器的兼容性,并支持新浏览器的新特性。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Alias /doc/ /usr/share/doc/

order deny,allow

deny from all

allow from localhost .localdomain

Options Indexes FollowSymLinks

AllowOverride None

Options Indexes

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 用于设置访问控制的设置主要是针对目录和文件进行设置的,然而也可以针对不同的URL进行访问控制的

针对URL进行控制的语句为Location语句,这样不但能对服务器上的文件、CGI提供保护,此外,它还能保护不能找到对应文件,而是由服务器本身提供的特殊功能URL。http://servername/server-status用于报告当前Apache服务器的状态,http://servername/server-info用于报告Apache 服务器的统计信息。与此相关的设置还有ExtendedStatus参数,可以让服务器输出更详细的的报告。

是针对网络空间的指令。

下例中的配置会拒绝任何对以/private开头的URL的访问,

如:https://www.360docs.net/doc/787093771.html,/private,

https://www.360docs.net/doc/787093771.html,/private123,

https://www.360docs.net/doc/787093771.html,/private/dir/file.html

等所有以/private开头的URL。

Order Allow,Deny

Deny from all

Location指令无须文件系统的支持,下例演示了如何映射特定的URL到由mod_status提供的Apache内部处理器,而并不要求文件系统中确实存在server-status。

SetHandler server-status

什么情况下用什么?

选择使用文件系统容器还是使用网络空间容器其实很简单。当指令应该作用于文件系统时,总是用或者;而当指令作用于不存在于文件系统的对象时,就用,比如一个由数据库生成的网页。

不要试图用去限制对文件系统中对象的访问,因为许多不同的网络空间路径可能会映射到同一个文件系统目录,导致你的访问限制被突破。比如:

Order allow,deny

Deny from all

上述配置对https://www.360docs.net/doc/787093771.html,/dir/请求的确起作用。但是设想在一个不区分大小写的文件系统中,这个访问限制会被https://www.360docs.net/doc/787093771.html,/DIR/请求轻易突破。而指令才会真正作用于对这个位置的任何形式的请求。(但是有一个例外,就是Unix文件系统中的连接,符号连接可以使同一个目录出现在文件系统中的多个位置。指令能不经过重置路径名而跟随符号连接,因此,对于安全要求最高的,应该用Options指令禁止对符号连接的跟随。)

不要认为使用大小写敏感的文件系统就无所谓了,因为有很多方法会将不同的网络空间路径映射为同一个文件系统路径,所以,能使用文件系统容器时就应该使用。但是,也有一个例外,就是,把访问限制放在段中可以很安全地作用于除了某些特定的以外所有的URL。

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 代理

容器中的指令仅作用于指定URL所匹配的通过mod_proxy的代理服务器访问的站点。下例中的配置会拒绝通过代理服务器访问https://www.360docs.net/doc/787093771.html,站点。

Order allow,deny

Deny from all

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// NameVirtualHost 61.132.74.9

其中NameVirtualHost 来指定虚拟主机使用的IP地址,这个IP地址将对应多个DNS名字,如果Apache使用了Listen 参数控制了多个端口,那么就可以在这里加上端口号以进一步进行区分对不同端口的不同连接请求。此后,使用VirtualHost 语句,使用NameVirtualHost指定的IP地址作参数,对每个名字都定义对应的虚拟主机设置。

虚拟主机是在一台Web服务器上,可以为多个单独域名提供Web服务,并且每个域名都完全独立,包括具有完全独立的文档目录结构及设置,这样域名之间完全独立,不但使用每个域名访问到的内容完全独立,并且使用另一个域名无法访问其他域名提供的网页内容。

虚拟主机的概念对于ISP来讲非常有用,因为虽然一个组织可以将自己的网页挂在具备其他域名的服务器上的下级往址上,但使用独立的域名和根网址更为正式,易为众人接受。传统上,必须自己设立一台服务器才能达到单独域名的目的,然而这需要维护一个单独的服务器,很多小单位缺乏足够的维护能力,更为合适的方式是租用别人维护的服务器。ISP也没有必要为一个机构提供一个单独的服务器,完全可以使用虚拟主机能力,使服务器为多个域名提供Web服务,而且不同的服务互不干扰,对外就表现为多个不同的服务器。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

AddType application/x-x509-ca-cert .crt

AddType application/x-pkcs7-crl .crl

SSLPassPhraseDialog builtin

SSLSessionCache dbm:logs/ssl_scache

SSLSessionCacheTimeout 300

SSLMutex file:logs/ssl_mutex

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

SSLLog logs/ssl_engine_log

SSLLogLevel error

ErrorLog logs/error_log

TransferLog logs/access_log

SSLEngine on

ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt

SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key

SSLOptions +StdEnvVars

SSLOptions +StdEnvVars

SetEnvIf User-Agent ".*MSIE.*" \

nokeepalive ssl-unclean-shutdown \

downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \

"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////有两种设定虚拟主机的方式,一种是基于HTTP 1.0标准,需要一个具备多IP地址的服务器,再配置DNS 服务器,给每个IP地址以不同的域名,最后才能配置Apache的配置文件,使服务器对不同域名返回不同的Web 文档。由于这需要使用额外的IP地址,对每个要提供服务的域名都要使用单独的IP地址,因此这种方式实现起来问题较多。

可以在一个网络界面上绑定多个IP地址,Linux下需要使用ifconfig的alias参数来进行这个配置,但此时会影响网络性能。

再看另一种虚拟主机的方式:

HTTP 1.1标准在协议中规定了对浏览器和服务器通信时,服务器能够跟踪浏览器请求的是哪个主机名字。因此可以利用这个新特性,使用更轻松的方式设定虚拟主机。这种方式不需要额外的IP地址,但需要新版本的浏览器支持。这种方式已经成为建立虚拟主机的标准方式。

要建立非IP基础的虚拟主机,多个域名是不可少的配置,因为每个域名就对应一个要服务的虚拟主机。因此需要更改DNS服务器的配置,为服务器增加多个C NAME选项,如:

linux IN A 192.168.1.64

vhost1 IN CNAME linux

vhost2 IN CNAME linux

基本的设置选项都是为了linux主机设定的,如果要为vhost1和vhost2设定虚拟主机,就要使用VirtualHost 语句定义不同的选项,在语句中可以使用配置文件前面中的大部分选项,而可以重新定义几乎所有的针对服务器的设置。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////这里需要注意的是,VirtualHost的参数地址一定要和NameVirtualHost定义的地址相一致,必须保证所有的值严格一致,Apache服务器才承认这些定义是为这个IP地址定义的虚拟主机。

此外,定义过NameVirtualHost之后,那么对这个IP地址的访问都被区分不同的虚拟主机进行处理,而对其他IP地址的访问,例如127.0.0.1,才应用前面定义的缺省选项。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

DocumentRoot /var/web/www/html/

ServerName 61.132.74.9

DocumentRoot /var/web/www/html/njzs/bx80/sites/njzs

ServerName https://www.360docs.net/doc/787093771.html,

DocumentRoot /var/web/www/html/njzs/bx80/sites/njzs_en

ServerName https://www.360docs.net/doc/787093771.html,

DocumentRoot /var/web/www/html/njzs/bx80/sites/njzs_french

ServerName https://www.360docs.net/doc/787093771.html,

DocumentRoot /var/web/www/html/njzs/bx80/sites/njzs_german ServerName https://www.360docs.net/doc/787093771.html,

DocumentRoot /var/web/www/html/njzs/bx80/sites/njzs_japan ServerName https://www.360docs.net/doc/787093771.html,

DocumentRoot /var/web/www/html/njzs/bx80/sites/njzs_kor

ServerName https://www.360docs.net/doc/787093771.html,

DocumentRoot /var/web/www/html/njzs/bx80

ServerName https://www.360docs.net/doc/787093771.html,

DocumentRoot /var/web/www/html/njzs/bx80/sites/njzs

ServerName https://www.360docs.net/doc/787093771.html,

DocumentRoot /var/web/www/html/njzs/bx80

ServerName https://www.360docs.net/doc/787093771.html,

DocumentRoot /var/web/www/html/njzs/bx80

ServerName https://www.360docs.net/doc/787093771.html,

DocumentRoot /var/web/www/html/mail

ServerName https://www.360docs.net/doc/787093771.html,

DocumentRoot /var/web/www/html/golden

ServerName https://www.360docs.net/doc/787093771.html,

DocumentRoot /data/acewindBAK

ServerName https://www.360docs.net/doc/787093771.html,

Apache配置详解(最好的APACHE配置教程)

Apache配置详解(最好的APACHE配置教程) Apache的配置 Apache的配置由文件配置,因此下面的配置指令都是在文件中修改。 主站点的配置(基本配置) (1) 基本配置: ServerRoot "/mnt/software/apache2" #你的apache软件安装的位置。其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。 PidFile log #第一个httpd进程(所有其他进程的父进程)的进程号文件位置。 Listen 80 #服务器监听的端口号。 ServerName #主站点名称(网站的主机名)。 ServerAdmin #管理员的邮件地址。 DocumentRoot "/mnt/web/clusting" #主站点的网页存储位置。 以下是对主站点的目录进行访问控制: Options FollowSymLinks AllowOverride None Order allow,deny Allow from all 在上面这段目录属性配置中,主要有下面的选项: Options:配置在特定目录使用哪些特性,常用的值和基本含义如下: ExecCGI: 在该目录下允许执行CGI脚本。 FollowSymLinks: 在该目录下允许文件系统使用符号连接。 Indexes: 当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如,则返回该目录下的文件列表给用户。

SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。 其它可用值和含义请参阅: AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定): None: 当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)。 All: 在.htaccess文件中可以使用所有的指令。 其他的可用值及含义(如:Options FileInfo AuthConfig Limit等),请参看: Order:控制在访问时Allow和Deny两个访问规则哪个优先: Allow:允许访问的主机列表(可用域名或子网,例如:Allow from 。 Deny:拒绝访问的主机列表。 更详细的用法可参看: DirectoryIndex #主页文件的设置(本例将主页文件设置为:,和) (2) 服务器的优化 (MPM: Multi-Processing Modules) apache2主要的优势就是对多处理器的支持更好,在编译时同过使用--with-mpm选项来决定apache2的工作模式。如果知道当前的apache2使用什么工作机制,可以通过httpd -l命令列出apache的所有模块,就可以知道其工作方式: prefork:如果httpd -l列出,则需要对下面的段进行配置: StartServers 5 #启动apache时启动的httpd进程个数。 MinSpareServers 5 #服务器保持的最小空闲进程数。 MaxSpareServers 10 #服务器保持的最大空闲进程数。 MaxClients 150 #最大并发连接数。 MaxRequestsPerChild 1000 #每个子进程被请求服务多少次后被kill掉。0表示不限制,推荐

(2020)(环境管理)WindowsApacheMysqlPHP环境的安装与配置图文教程经典整合版

(环境管理)WindowsApacheMysql PHP环境的安装与配置图文教程经典整合版

Windows+Apache2.2+Mysql5+ PHP5环境的配置整合版 所需文件: mysql-essential-5.1.48-win32.msi httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.MSI php-5.2.6-Win32.zip PECL5.2.6 Win32 binaries.ZIP 配置要求: 1、将Apache+PHP+Mysql安装在E:\。 2、将网页文档文件改为:E:\Web。 Apache的安装: 1、运行httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.MSI,界面如下:

单击“I accept the terms in the license agreement”之后再单击“Next”。

服务器信息可以按照默认配置,如果服务器的80端口没被其他服务器程序占据。可选“for All Users,on Port 80, as a Service—Recommended.”如果仅为当前用户使用,使用8080端口,手动启动,选择“only for the Current User, on Port 8080, when started Manually.”。单击“Next”。

“Typical”为默认安装,“Custom”为用户自定义安装。选择“Custom”,单击“Next”。 单击“Build Headers and libraries”,选择“This feature will be installed on local dirive.”

SVN服务端安装和配置

所有资料来源于 https://www.360docs.net/doc/787093771.html, 我用Subversion - SVN|TortoiseSVN下载安装配置使用技术交流社区 SVN 服务端安装和配置 1.Windows环境下基于 Apache 的SVN 服务器安装及配置 1.1安装 1.1.1安装Apache (1)下载Apache 地址https://www.360docs.net/doc/787093771.html,/download.cgi 注意:Apache低于2.0.54的Windows版本的存在编译问题,低于2.0.54的版本不能与Subversion 1.2一起工作。2.2.X目前不能很好支持SVN 1.4.3。当前建议下载Apache 2.0.59 (2) 安装 下载完成后运行apache_2.0.59-win32-x86-no_ssl.msi,根据提示进行操作。遇到系统要求输入SERVER的URL时,如果你的服务器没有DNS名称,请直接输入IP地址。 注意:如果你已经有了IIS或其他监听80段口的程序,安装会失败,如果发生这种情况,直接到程序的安装目录\Apache Group\Apache2\conf,打开httpd.conf。编辑文件的Listen 80为其他可用的端口,例如Listen 81,然后重新启动-这样就不会那个问题了。 (3)检查 安装完成后浏览http://localhost/若成功,可看到apache页面。 1.1.2安装Subversion (1)下载 Subversion 地址:https://www.360docs.net/doc/787093771.html,/servlets/ProjectDocumentList?folderID=91(2)安装 运行svn-1.4.3-setup.exe 安装程序,并根据指导安装,如果Subversion认识到你安装了Apache,你就几乎完成了工作,如果它没有找到Apache服务器,你还有额外的步骤。 (3)后续 步骤1 从C:\Program Files\Subversion\bin 中将 mod_authz_svn.so mod_dav_svn.so复制到 C:\Program Files\Apache Group\Apache2\modules下 intl3_svn.dll libdb*.dll C:\Program Files\Apache Group\Apache2\bin下 步骤2 找到C:\Program Files\Apache Group\Apache2\conf\httpd.conf文件去掉如下几行的注释(删除 '#'标记):

安装使用手册详细版

Phoenix安装与使用文档 作者:宋亚飞 2015年3月27日 目录 Phoenix安装与使用文档1 目录1 描述1 Phoenix安装2 1、下载Phoenix2 2、上传压缩包3 3、解压缩文件3 4、配置Phoenix3 5、修改权限3 6、验证是否成功3 Phoenix使用4 1、建表4 2、导入数据4 3、查询数据4 查询1、查询全部记录5 查询2、查询记录总条数5 查询3、查询结果分组排序5 查询4、求平均值6 查询5、多字段分组,排序,别名。6 查询6、查询日期类型字段6 查询7、字符串,日期类型转换6 4、Phoenix基本shell命令7 5、用Phoenix Java api操作HBase8 Phoenix支持11 描述 现有hbase的查询工具有很多如:Hive,Tez,Impala,Shark/Spark,Phoenix等。今天主要记录Phoenix。

phoenix,中文译为“凤凰”,很美的名字。Phoenix是由https://www.360docs.net/doc/787093771.html,开源的一个项目,后又捐给了Apache基金会。它相当于一个Java中间件,提供jdbc连接,操作hbase数据表。 但是在生产环境中,不可以用在OLTP中。在线事务处理的环境中,需要低延迟,而Phoenix在查询HBase时,虽然做了一些优化,但延迟还是不小。所以依然是用在OLAT中,再将结果返回存储下来。 Phoenix官网上,对Phoenix讲解已经很详细了。如果英语好,可以看官网,更正式一些。 Phoenix安装 1、下载Phoenix 下载地址:https://www.360docs.net/doc/787093771.html,/apache/phoenix/ phoenix与HBase版本对应关系 Phoenix 2.x - HBase 0.94.x Phoenix 3.x - HBase 0.94.x Phoenix 4.x - HBase 0.98.1+ 我目前测试使用版本概况: Hadoop2.2.0--HBase0.98.2 所以我可以用phoenix4.x。下载的压缩包为phoenix-4.3.0-bin.tar.gz

Apache 安装图解

Apache安装图解

一、安装Apache,配置成功一个普通网站服务器 运行下载好的“apache_2.0.55-win32-x86”,出现如下界面: 出现Apache HTTP Server 2.0.55的安装向导界面,点“Next”继续

确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续

将Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续 设置系统信息,在Network Domain下填入您的域名(比如:https://www.360docs.net/doc/787093771.html,),在Server Name下填入您的服务器名称(比如:https://www.360docs.net/doc/787093771.html,,也就是主机名加上域名),在Administrator's Email Address下填入系统管理员的联系电子邮件地址(比如:yinpeng@https://www.360docs.net/doc/787093771.html,),上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者,三条信息均可任意填写,无效的也行。下面有两个选择,图片上选择的是为系统所有用户安装,使用默认的80端口,并作为系统服务自动启动;另外一个是仅为当前用户安装,使用端口8080,手动启动。一般选择如图所示。按“Next”继续。]

选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选择Custom,有更多可选项。按“Next”继续 出现选择安装选项界面,如图所示,左键点选“Apache HTTP Server

2.0.55”,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。点选“Change...”,手动指定安装目录。 我这里选择安装在“D:\”,各位自行选取了,一般建议不要安装在操作系统所在盘,免得操作系统坏了之后,还原操作把Apache配置文件也清除了。选“OK”继续。

Apache服务器的安装与配置

Apache服务器的安装与配置 一、安装Apache 双击可执行文件apache_1.3.33-win32-x86-no_src.exe,将Apache服务器软件安装至C:\Apache目录下。 二、设置C:\apache\conf\httpd.donf文件 修改Apache的核心配置文件c:\apache\conf\httpd.conf(说明一点:“#”为Apache的注释符号)。修改方法如下: 1、寻找到ServerName。这里定义你的域名。这样,当Apache Server运行时,你可以在浏览器中访问自己的站点。如果前面有#,记得删除它。 2、寻找到ServerAdmin。这里输入你的E-Mail地址。 (以上两条在安装时应该已经配置好了,所以不必改动,这里介绍一下,主要是为了日后的修改) 3、寻找到。向下有一句Options,去掉后面所有的参数,加一个All(注意区分大小写!A 大写,两个l小写。下同。);接着还有一句Allow Override,也同样去掉后面所有的参数,加一个All。 AllowOverride All Options All Order allow,deny Allow from all 4、寻找到DocumentRoot。这个语句指定你的网站路径,也就是你主页放置的目录。你可以使用默认的,也可以自己指定一个,但记住,这句末尾不要加“/”。此外注意,路径的分隔符在Apache Server里写成“/”。(将DocumentRoot "C:/apache/htdocs"改为DocumentRoot "C:/try") 5、寻找到DirectoryIndex。这就是你站点第一个显示的主页,在index.html的后面加入index.htm index.php index.php3 index.cgi index.pl。注意,每种类型之间都要留一空格!这里添加好了,以后就不用再麻烦了。 6、port(端口号),如果没安装IIS的话,就保持80不要变,否则,就要改一下(因为IIS的WEB服务占据了80),可以改成81等等。 三、Apache的手动启动和停止 Net start apache启动apache服务,Net stop apache停止apache服务。

apache服务配置

Apache 安装后启动然后配置即可.记得开启80 端口. iptables –I INPUT –p tcp –dport 80 –j ACCEPT 开启tcp 80 端口 apache 的配置文件: httpd.conf 路径: /etc/httpd/conf/httpd.conf DocumentRoot “/var/www/html”设置主目录的路径 DirectoryIndex index.html index.html.var 设置默认主文档,中间用空格格开 Listen 80 Listen 192.168.1.1:80 设置apache监听的IP地址和端口号,可添加多个 ServerRoot “/etc/httpd”设置相对根目录的路径(存放配置文件和日志文件) ErrorLog Logs/error_log 设置错误日志存放路径 CustomLog Logs/access_log combined (日志格式) 设置访问日志存放路径 如果日志文件存放路径不是以”/”开头,则意味着该路径相对于ServerRoot 的相对路径. ServerAdmin 邮箱地址{设置管理员的E-mail地址 ServerName FQDN名或IP地址{设置服务器主机名 由于Apache默认字符集为西欧(UTF-8),所以客户端访问中文网页时会出现乱码. 将语句“AddDefaultCharset UTF-8”改为“AddDefaultCharset GB2312”方可解决,不过要重新启动Apache服务. 修改完默认字符集后,客户端如需访问,要先清空浏览器的缓存.

创建虚拟目录,添加Alias语句即可 Alias /ftp “/var/ftp”Alias 虚拟目录名物理路径 Options Indexes 定义目录特性 AllowOverride None 一般这样写就行 Order allow,deny 设置访问权限 Allow from all 允许所有用户访问 要实现虚拟目录用户认证,首先要建立保存用户名和口令的文件 htpasswd -c /etc/httpd/mysecretpwd (文件名) text (用户) -c 选项表示无论口令文件是否已经存在,都会重新写入文件并删去原有内容.所以在添加第二个用户到口令文件时,就不需要使用-c 选项了. Alias /ftp “/var/ftp” AuthType Basic 设定认证类型,Basic最常用AuthName “This is a private directory. Please Login:”辛苦点,全背上吧. AuthUserFile /etc/httpd/mysecretpwd 定义口令文件路径Require user text(用户) 定义允许哪些用户可以访问

Linux下Apache服务器的安装和配置

【实验8】Apache服务器的安装和配置 一、实验目的: 1.掌握Apache Web服务器的安装和配置。 2.使用虚拟主机在同一台服务器上架设多个网站。 二、【实验环境】 1.虚拟机软件VM Ware 6.0,Redhat Enterprise Linux虚拟机或光盘镜像文 件。 2.2台以上机器组成的局域网。 三、【实验原理】 (一)Apache服务简介 Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。 Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web 服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。 (二)虚拟主机 所谓虚拟主机,也叫“网站空间”就是把一台运行在互联网上的服务器划分成 多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务 器(支持WWW、FTP、E-mail等)功能。一台服务器上的不同虚拟主机是各自 独立的,并由用户自行管理。 虚拟主机技术是互联网服务器采用的节省服务器硬体成本的技术,虚拟主机 技术主要应用于HTTP服务,将一台服务器的某项或者全部服务内容逻辑划分 为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬体资源。如果 划分是系统级别的,则称为虚拟服务器。

(三)Linux中虚拟主机的分类 1、基于IP地址的虚拟主机 如果某公司有多个独立的IP地址可用,那么可以用不同的IP地址来配置虚拟主机。 2、基于端口的虚拟主机 如果只有一个IP地址,但是要架设多个站点,可以使用端口来区分,每个端口对应一个站点。这样配置的话,用户在访问的时候必须在 URL中指明端口号才能访问相应的网站。 3、基于名称的虚拟主机 使用基于IP地址或者端口的虚拟主机,能够配置的站点数目有限,而使用基于名称的虚拟主机,可以配置任意数目的虚拟主机,而不需要 额外的IP地址,也不需要修改端口号。 四、实验步骤 本实验请勿使用【系统】→【管理】→【服务器设置】中的【HTTPD】工具来配置,否则后果自负! (一)Apache服务器的启动 1、测试是否已安装Apache服务器: [root@localhost ~]#rpm –qa httpd 2、启动Apache服务器: [root@localhost ~]#service httpd start (二)基于端口的虚拟主机的配置 1、在/etc/httpd目录中,建立一个名为vhostconf.d的子目录,用来存放虚拟 主机的配置文件。 2、在/var/www目录中,建立一个名为websites的子目录,用于存放网站源 文件;在website目录下再建立ipvhost1和ipvhost2文件夹,用于区分各 个站点。

2-apache Apache_Web 服务器安装部署手册档

重要提示 Web服务器包括apache的安装部署和W AS7 Plugin安装部署两部分,如果的websphere应用服务器使用非集群模式,plugin则不需要安装,只需配置本文2.1章节内容,如果websphere 应用服务器使用群集模式,则需要按照本文2.2章节进行plugin安装配置。 1 Apache安装 Apache的安装和配置现在可以采用脚本自动化安装,脚本就是139ftp上的 apache_install_script.sh 请下载到web服务器中,并执行即可。 注意:在执行脚本安装前请确认web服务器的/opt/apache下没有安装过apache,并且web 服务器能上外网(能ping通https://www.360docs.net/doc/787093771.html,) 成功安装apache并测试通过后即可直接继续本文第二章节Was7 Plugin安装 在root下进行root进入方法#su 然后输入密码 1.1 准备安装 关闭系统自带的web服务: #chkconfig httpd off 在线安装gcc #yum install gcc cc 下载并解压安装程序: #cd ~/ #wget https://www.360docs.net/doc/787093771.html,/httpd/httpd-2.2.15.tar.gz #tar –zxvf httpd-2.2.15.tar.gz -C /usr/src Web 服务器安装部署手册 Page 4 of 21 1.2 安装Apache Web Server 进入源码目录: #cd /usr/src/httpd-2.2.15 编译源文件: #./configure //(安装到默认目录) 形成安装文件: #make 安装程序: #make install 1.3 验证安装 进入安装后目录: # cd /opt/apache/apache-2.2.15/bin 检查进程模式: #./apachectl –l Compiled in modules: core.c worker.c http_core.c mod_so.c 启动Apache Web Server:

windows Apache配置文件

. Apache 主要配置Network Domain、Server Name、Email地址(我依次填的是localhost、localhost、邮箱随意)以及Apache服务的占用端口,默认为80端口,你可以根据需要配置在其他端口,Apache的安装目录你可以使用默认目录或根据需要自行选择安装目录(我安装到D:\Apache)。 在完成apache服务的安装后,在游览器中输入http://localhost/,出现It’s work!字样,说明Apache服务安装成功了。 2. PHP 只要解压php-5.3.4-Win32-VC6-x86.zip并重名为文件夹为php到某个盘即可完成PHP 安装(我是将其解压复制到D盘目录下D:\php) 3. MySQL 点击Mysql安装程序自动安装,在此期间你可以根据需要选择Mysql数据库的安装目录(我安装到D:\MySQL),MySQL 安装完后会启动向导,你可以先取消,下一部的配置里有说。 三、配置 1. Apache(Apache配置文件httpd.conf在Apache安装目录下的conf文件夹里面) (1)默认Apache服务器执行WEB主程序的目录为Apache2.2/htdocs,所以当你的WEB主程序目录变更时,我们需要修改相应的Apache配置(我改到D:\localhost\htdocs),即用文本编辑软件打开httpd.conf 将 DocumentRoot "D:/Apache/htdocs" 修改为 DocumentRoot "D:/localhost/htdocs" 再把 修改为 (2)修改具体的index文件先后顺序,由于配置了PHP功能,当然需要index.php优先执行 找到 DirectoryIndex index.html 修改为 DirectoryIndex index.php index.html (3)使Apache支持PHP 找到 #LoadModule vhost_alias_module modules/mod_vhost_alias.so 在其下面增加如下内容(注意php的安装路径) LoadModule php5_module "d:/php/php5apache2_2.dll" PHPIniDir "d:/php" AddType application/x-httpd-php .php .html .htm 说明:我们在PHP目录下可以看到多个php5apache的DLL文件,由于我们使用的是Apache2.2.17,所以我们当然需要使用php5apache2_2.dll,接着指定PHP的安装目录以及执行的程序扩展名。 2. PHP(配置文件php.ini在PHP安装目录下) (1)把php.ini-development改名为php.ini,然后用文本编辑器修改php.ini,接下来的步骤都是在php.ini进行的。

AMP安装配置手册

Apache+mysql+php配置说明 1概述 §1.1前言 由于Bug管理系统bugfree需要安装在apache+mysql+php的运行环境,因此本手册专为bugfree系统搭建运行环境而准备.当然,除了少数几个地方特列外,完全可以用在搭建独立的apache+mysql+php环境。 本手册包括windows和linux(redhat)下的安装和配置,都已测试通过,对于unix 其他版本的配置请参照linux下的步骤做相应调整. §1.2说明 1.本手册假设windows下的基本安装目录为”D:\amp”,linux下的基本最终安装目录为/usr/local,linux下的程序存放目录/home/tool 2.linux下的安装都使用.tar.gz文件,解压基本步骤如下: 解压gz:gunzip tall.tar.gz 解包tar文件成目录:tar-xvf tall.tar 3.读者应该有基本的windows和linux使用经验,否则请先了解基本的操作. 4.安装时请按照手册的顺序安装,因为php安装时必须要求mysql与apache已经安装 5.源码安装的步骤和说明 ./configure--prefix=/usr/local/xxx(配置环境变量,生成makefile) make(编译源程序) make install(根据make的结果,完成程序的安装)

2Mysql安装配置 §2.1总体说明 本次采用mysql5 参考手册:https://www.360docs.net/doc/787093771.html,/doc/refman/5.1/zh/index.html 下载地址:https://www.360docs.net/doc/787093771.html,/downloads/ windows安装程序:mysql-5.0.22-win32.zip linux安装程序:mysql-5.1.23-rc-linux-i686-glibc23.tar.gz 验证安装是否成功:启动mysql mysql–u root–p能正常登录即安装正确 §2.2基本操作说明 进入mysql后的每个命令必须以’;’结束,’mysql’是客户端程序 1.linux下的启动和停止: 启动:/usr/local/mysql/bin/mysqld_safe--user=root& 停止:kill掉mysqld进程 2.登录:mysql–u root–p 远程登录:mysql-h ipaddress-u root-p 3.设置远程主机可访问: mysql如果需要客户端或者其他系统远程访问,需要设置远程主机的ip到 mysql的user表中,或者设置user的hostname为’%’,如: update user set host='%'where host='localhost'; flush privileges; 4.修改密码: mysql默认安装时管理员密码(root)为空,可通过命令修改: mysqladmin-u root password'new-password'( 格式:mysqladmin-u用户名-p旧密码password新密码 5.一个mysql包含多个数据库,可用’show databases;’查看,使用数据库 用’use databasename’如’use mysql’,修改表之前必须先use指定库,查看此数据库有那些表用’show tables’ 6.更详细的操作和说明请看<> §2.3Windows下的安装 Windows下安装比较简单,下载win32的安装包,默认安装即可.须注意下面几点: 1.安装目录:选择D:\amp\MySQL5,不必须修改默认目录只是方便管理 2.字符集:安装时为了bugfree的需要,选择’utf8’ 3.选择安装配置工具的安装,并设置管理员密码为’mysql’

Apache如何修改配置文件

Apache配置参考 1.什么是Apache ? 1.什么是Apache ? Apache,是一种开放源码的HTTP服务器,可以在大多数操作系统中运行,由于其多平台和安全性所以被广泛使用,是目前最流行的Web服务器软件之一。Apache 起初由Illinois 大学Urbana-Champaign 的国家高级计算程序中心开发,开始Apache只是作为Netscape网页服务器之外的选择。渐渐的,它开始在功能和速度上超越其它基于Unix的HTTP服务器。从1996年4月以来,Apache一直是Internet上最流行的HTTP服务器: 1999年5月它在57% 的网页服务器上运行;而到了2005年7月这个比例上升到了69%。Apache名称的由来是为了纪念美洲印第安人土著中的一支,因为这支土著拥有最高超的作战策略和无穷的耐性。 Apache HTTP Server2.什么是? Apache HTTP Server(也被称为Apache httpd)是Apache软件基金会创建的一个健壮的、工业级的、功能强大的、开放源代码的HTTP(Web)服务器。 二、httpd.conf中常用参数介绍 1.连接类参数 l TimeOut 服务器在断定请求失败前等待的时间,即接收和发送数据的超时时间。 【说明】 TimeOut参数用于设置Apache在等待以下三种事件的时间: u 接受一个GET请求耗费的总时间。 u POST或PUT请求时,接受两个TCP包之间的时间。 u 回应时TCP包传输中两个ACK包之间的时间。 还可以理解成Apache允许每次通过HTTP协议传输数据的最大时间。 l KeppAlive 启用HTTP持续作用。

php+mysql+apache环境配置手册

运行环境配置全过程 (Apache php mysql) 1.首先下载相关软件 Apache官方下载地址:httpd-2.2.17-win32-x86-no_ssl.msi,更多版本在这里; php官方下载地址:php-5.2.16-Win32-VC6-x86.zip,更多镜像下载地址,更多版本下载; mysql官方下载地址:mysql-essential-5.1.54-win32.msi,更多镜像下载地址,更多版本下载。 一、安装Apache,配置成功一个普通网站服务器 运行下载好的“httpd-2.2.17-win32-x86-no_ssl.msi”,出现如下界面: 出现Apache HTTP Server 2.2的安装向导界面,点“Next”继续

确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续

将Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续

设置系统信息,在Network Domain下填入您的域名(比如:https://www.360docs.net/doc/787093771.html,),在Server Name下填入您的服务器名称(比如:https://www.360docs.net/doc/787093771.html,,也就是主机名加上域名),在Administrator's Email Address下填入系统管理员的联系电子邮件地址(比如:yinpeng@https://www.360docs.net/doc/787093771.html,),上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者,三条信息均可任意填写,无效的也行。下面有两个选择,图片上选择的是为系统所有用户安装,使用默认的80端口,并作为系统服务自动启动;另外一个是仅为当前用户安装,使用端口8080,手动启动。一般选择如图所示。按“Next”继续。] 选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选择Custom,有更多可选项。按“Next”继续

Apache服务器配置及安全应用指南

Apache服务器配置及安全应用指南 技术创新变革未来

Apache服务安全加固 一.账号设置 以专门的用户帐号和组运行Apache。 根据需要为Apache 创建用户、组 参考配置操作如果没有设置用户和组,则新建用户,并在Apache 配置文件中指定 (1) 创建apache 组:groupadd apache (2) 创建apache 用户并加入apache 组:useradd apache –g apache (3) 将下面两行加入Apache 配置文件httpd.conf中 检查httpd.conf配置文件。检查是否使用非专用账户(如root)运行apache 默认一般符合要求,Linux下默认apache或者nobody用户,Unix默认为daemon用户

Apache服务安全加固 授权设置 严格控制Apache主目录的访问权限,非超级用户不能修改该目录中的内容 Apache 的主目录对应于Apache Server配置文件httpd.conf的Server Root控制项中应为: 判定条件 非超级用户不能修改该目录中的内容 检测操作 尝试修改,看是否能修改 一般为/etc/httpd目录,默认情况下属主为root:root,其它用户不能修改文件,默认一般符合要求 严格设置配置文件和日志文件的权限,防止未授权访问。 chmod600 /etc/httpd/conf/httpd.conf”设置配置文件为属主可读写,其他用户无权限。 使用命令”chmod644 /var/log/httpd/*.log”设置日志文件为属主可读写,其他用户只读权限。 /etc/httpd/conf/httpd.conf默认权限是644,可根据需要修改权限为600。 /var/log/httpd/*.log默认权限为644,默认一般符合要求。

Apache安装配置SSL证书方法教程

Apache SSL证书安装配置方法教程 1.1 SSl证书安装环境简介 Centos 6.4 操作系统; Apache2.2.*或以上版本; Openssl 1.0.1+; SSL 证书一张(备注:本指南使用https://www.360docs.net/doc/787093771.html, 域名OV SSL 证书进行操作,通用其它版本证书) 1.2 网络环境要求 请确保站点是一个合法的外网可以访问的域名地址,可以正常通过或http://XXX 进行正常访问。 2.1 生成请求文件csr 首先下载openssl软件,可以去openssl官网下载: https://www.360docs.net/doc/787093771.html,/source/ 下载后安装到本地计算机。 2.1.1 查看openssl 在终端输入openssl version 查看openssl当前版本。 图 1 2.1.2 生成key私钥文件 使用以下命令来生成私钥:opensslgenrsa -des3 -out https://www.360docs.net/doc/787093771.html,.key 2048,生成的私钥保存在当期目录。

图 2 2.1.3 生成csr文件 使用以下命令来生成私钥:opensslreq -new -key https://www.360docs.net/doc/787093771.html,.key -out https://www.360docs.net/doc/787093771.html,.csr 图 3 Country Name (2 letter code) [GB]: 输入国家地区代码,如中国的CN State or Province Name (full name) [Berkshire]: 地区省份 Locality Name (eg, city) [Newbury]: 城市名称 Organization Name (eg, company) [My Company Ltd]: 公司名称 Organizational Unit Name (eg, section) []: 部门名称

Apache 用户手册(中文版)

WWW WWW ! "#$%&'() *+,-./0123 4567!89% :;<=Linux>?@A WWW >B:4 $Internet! intranet $CD E WWW FGHIJK LM:NO;?@= v Ejk Gc2fg wmnxy zL ! " # $ !l{p|}=~Emn Nc 5 2 QR A xy /( mn) h @p48 Option F4 Override (!fg C srm.conf jkQ ?@ c.htacess2t mn xy) 45p ! /home/httpd/virtual/virtual1/ mn+C c index F>G! f index.html (! srm.conf f g) Q R m n ! $o FollowSymLinks 5 Symbolic Link ?mn¢ £g ¤¢¥pq|?@§¨fglEmn y?order allow deny Ga??

-?ˉ °± -?45pl{2U8 =(allow from all) :LM 3 W?@!?′μ w deny ?·! C zL %&' () () ?1 fg:oo?jk$C ??? I ?àá?>?@= ˉ pq?? lEjk?C?w a? LoadModule?AddModule ?@4?èH:é ê?L st:ì d Gí|1q ??í>?@= ˉ ! * lEfgGD httpd !8? QR>òó?2 I clEfg>?@=èH: httpd @ inetd òó )& lE -&??Lpqê? port ?D>&× E IP ?ù ú?port 80 G HTTP l EüY T??(! /etc/services ?@st)LM: àá Ea? `% ?wêúo ? ?? W?? 80 tè?1éê?? cT??&= + " # LM: ê? : ` "#Gì?í? W ?fg on? :% ? IP ?ùoX , - . - lE|G¨te:%rí|lE nobody3! /etc/passwd ? /etc/group {C>?@ = ! - /- :?@ ?tèe?ò?lE ` ò?ó?? 0 1 LM: ?f÷? ?( Cp> ù:L d=)¥?@ ?C #ú? ..... ˉ a?üü yt ??p?=??> = ...... ?ü p = :( #ProxyRequests On apache F?@N Proxy c 4>ê?=? (tips: ProxyRemote * http://remote.proxy.host:8080)

Apache服务器主配置文件说明

Apache服务器主配置文件说明: /etc/httpd/conf/httpd.conf 第一配置段:全局环境配置(影响整个服务器) 57行:ServerRoot“/etc/httpd”//设置服务器的根 63行:PidFile run/httpd.pid /这些文件保存Apache父进程ID 68行:Timeout 120 //设定超时时间 74行:KeepAlive off/on //是否允许客户端同时提出多个请求 81行:MaxKeepAliveRequests 100 //每次联系允许的最大请求数 87行:KeepAliveTimout 15 //客户端的请求如果15秒还没有发出,则继线

// web服务器的工作模式为prefork startServers启动时打开的httpd进程数 minSpareServers最少会有5个闲置httpd进程来监听用户的请求 MaxSpareServers最多会有20个闲置httpd进程来监听用户的请求ServerLimit 256 //限制MaxClients MaxClients 256 //最大并发量,就是同时访问数量 MaxRequestsPerChild 4000 //每个子进程最多能处理的请求数量,处理够数量后就被kill 然后重新启动

// web服务器的工作模式为worker.c //设置监听端口号

148-199行:加载DSO(Dynamic Shared Object动态共享对象)模块,类似于动态链接库。P114

//包含模块文件,这里的模块都是对动态共享对象的支持 //设置使用的用户和组 第二段主服务器配置 设置管理员邮箱 //设置器名称和端口号 //定义文档根目录

Apache+Php5.3.8的安装与配置方法

Apache的安装与配置 打开apache官方网站https://www.360docs.net/doc/787093771.html,/dist/httpd/binaries/win32/或者镜像网站https://www.360docs.net/doc/787093771.html,/httpd/binaries/win32/,下载里面的apache_2.2.20-win32-x86-no_ssl.msi安装文件。其中,同一版本有两种类型:no_ssl和openssl,openssl多了个ssl安全认证模式,它的协议是HTTPS 而不是HTTP,这就是带有SSL的服务器与一般网页服务器的区别了。一般情况下,我们下载no_ssl版本的就ok了。 下载好apache安装文件后,点击安装,在连续3次next后,将进入server information配置界面,要求输入network domain、server domain和网站管理员的邮箱地址,普通用户可以随便按照格式填一下就行了。再次按Next后,出现选择安装路径的界面,默认的路径比较长,pharmar把安装路径修改为:“D:\Program Files\Apache\”,继续安装,直到完成。 安装完毕,apache就自动启动,可以测试apache是否成功启动。在浏览器地址栏里输入:http://localhost/或http://127.0.0.1/,如果出现“It works.”,那么恭喜你,apache已经成功安装了;同时在电脑右下角的任务栏里有一个绿色的apache服务器运行图标。 apache还有一个配置文件:httpd:conf 需要配置,以便php运行。位置为:D:\Program Files\Apache\conf目录里。打开httpd:conf: 1)、查找“DocumentRoot”,这里是指定主页放置的目录。默认是:“D:\Program Files\Apache\htdocs”,你可以使用默认的目录,也可以自己定义一个,如:“D:/PHP”。注意:目录末尾不要加“/”。 2)、查找“DirectoryIndex”,这里是默认首页文件名,可以在index.html 的后面加入index.php等。每种类型之间都要留一个空格。 3)、查找 Options FollowSymLinks AllowOverride None Order deny,allow Deny from all 修改为: Options FollowSymLinks AllowOverride None Order deny,allow allow from all 如果不改这里的话,可能会出现You don't have permission to access / on this server. 这样的错误提示,尤其在改变了默认主页的路径后。

相关文档
最新文档