linux下安装apache服务器

linux下安装apache服务器

ID:6127593

大小:732.50 KB

页数:17页

时间:2018-01-04

上传者:U-2441
linux下安装apache服务器_第1页
linux下安装apache服务器_第2页
linux下安装apache服务器_第3页
linux下安装apache服务器_第4页
linux下安装apache服务器_第5页
资源描述:

《linux下安装apache服务器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

 Linux下安装Apache服务器 2010-07-2907:37:41分类: 系统运维  Apache服务器是目前比较主流的web服务器。在目前市场是占用很大的市场份额。Apache服务器之所以能够长期作为Web服务器的实际标准,与其具有的诸多优秀特性是密不可分的主要特点开放源代码、跨平台应用支持多种网页编程语言模块化设计 、运行稳定、良好的安全性软件版本1.X目前最高版本是1.3,运行稳定向下兼容性较好,但缺乏一些较新的功能2.X目前主要包括2.0和2.2两个版本具有更多的功能特性与1.X相比,配置管理风格存在较大差异1.X版本和2.X版本并存,同时进行维护。1.X系列侧重于维持既有功能的一贯稳定性,而2.X系列则增加了一些性能优化措施,提供对更多扩展功能的支持,例如:2.X系列采用了MPM(MultiProcessingModules,多道处理模块)机制,负责绑定本机网络端口、接受访问请求,提高了Web服务的性能对于新建立的Web站点服务器,通常会选用2.x系列的版本;而对于已经使用较长时间的既有Web应用服务器,可能会仍然维持使用1.x系列版本编译安装编译安装的优点具有较大的自由度,功能可定制可及时获得最新的软件版本普遍适用于大多数Linux版本,便于移植使用对于源码编译安装的httpd软件包,服务目录通常也就是安装目录,所有的程序、文件、子目录等都集中在服务目录下主要目录和文件:服务目录:/usr/local/apache2/主配置文件:/usr/local/apache2/conf/httpd.conf网页目录:/usr/local/apache2/htdocs/服务脚本:/usr/local/apache2/bin/apachectl执行程序:/usr/local/apache2/bin/httpd访问日志: /usr/local/apache2/log/access_log错误日志: /usr/local/apache2/log/error_log获得Apache服务器的源码包参考地址:http://httpd.apache.org/download.cgi下面来介绍一下主流的安装步骤: 一:准备工作在安装httpd之前必须要配置好DNS服务二Httpd安装Apache的主要步骤如下:1. 解包tar  zxvfhttpd-2.2.9.tar.gz  -C  /usr/src/2. 编译前的配置cd  /usr/src/httpd-2.2.9./configure--prefix=/usr/local/apache2--enable-so--enable-rewrite这一步是根据你的特定平台和个人需求配置源代码树。位于发行源代码根目录的configure脚本会完成这个步骤(对下载ApacheCVS版源代码的开发者,需要装有autoconf和libtool ,并需要执行buildconf ,对于官方的发行版则没这个必要)。 要想用所有的默认值配置源代码树只要简单的执行 ./configure 命令就可以了,同时configure还可以接受命令行参数以改变默认值。 最重要的选项是Apache安装目录的前缀:--prefix ,因为Apache需要知道这个目录才能正常运作。更多的微调选项请参考配置选项详解。 这样,你就可以通过在配置选项中指定要启用或禁用哪些模块来定制Apache的特性。Base组的模块默认包含在Apache中。其他组的模块可以通过 --enable-module 指令启用。其中module是模块名去掉"mod_"并将下划线转换成连字符后的字符串。你也可以使用 --enable-module=shared 指令将模块编译为可在运行时加载和卸载的动态共享对象(DSO)。同样的,你也可以使用 --disable-module 指令禁用Base组的模块。注意,使用这些指令的时候configure不会对你拼写错误的模块发出警告说找不到某某模块,而只是简单的忽略这个选项。 另外,有时候还必须提供给configure脚本关于编译器、库、头文件位置的更多信息。这些可以通过环境变量或者命令行选项传递给configure脚本。要了解更多信息,请参考配置源代码树。 为了让你对能指定什么有一个简单的印象,此例演示编译Apache ,并将其安装在/sw/pkg/apache目录,指定了一个特定的编译器以及编译参数,而且允许今后将两个附加的模块mod_rewrite和mod_speling通过DSO机制在运行时动态加载: $CC="pgcc"CFLAGS="-O2"./configure--prefix=/sw/pkg/apache--enable-rewrite=shared--enable-speling=shared configure需要运行几分钟,以测试指定的功能在你的系统中是否有效,并建立稍后编译时所需的许多Makefile文件。 3. 编译并安装make&&makeinstall我们可以把它写成脚本来安装,写法如下;#!/bin/sh tar-zxfhttpd-2.2.9.tar.gzecho"正在开始安装......"cdhttpd-2.2.9echo"已完成30%......"./configure--prefix=/usr/local/apache2--enable-so--enable-rewrite&>/dev/nullecho"已完成50%......"make&>/dev/nullecho"已完成80%......"makeinstall&>/dev/nullecho"安装已完成"准备好软件;编写脚本;赋予执行的权限执行脚本,如下,安装成功。 进入/usr/local/apache2/conf/目录,修改httpd.conf文件,如下,去掉Includeconf/extra/httpd-userdir.conf前面的#号进入/etc/skel目录,新建public_html目录,然后新建用户并赋予其权限。进入/usr/local/apache2/conf/目录的配置文件httpd.conf,将virtualhosts下的#号去掉进入extra/目录,编辑http-vhosts.conf配置文件,在其最后一行添加如下内容;NameVirtualHost192.168.0.106  #虚拟主机支持的ip是192.168.0.106#在192.168.0.106上建立虚拟主机        ServerNamewww.lele.com        DocumentRoot/home/lele/public_html              AddDefaultCharsetUTF-8#默认此虚拟主机支持UTF-8语言没建一个用户,就添加一行。实现ftp进行更新功能,安装vsftpd软件包 修改anonymous_enable=NO,添加chroot_local_user=YES启动ftp服务和httpd服务如安装成功,就会出现如下效果  在如客户端浏览器输入www.lele.com就会出现如下页面。 做个测试,在/var/www/html/目录下新建一张主页并添加内容; 再次输入www.lele.com,就会出现如下内容。具体文字叙述:一:搭建DNS安装bind软件包1.修改主配置文件 cd/var/named/chroot/etc/named.caching-nameserver.conf 1.1改4个地方成any2.修改主配置文件的扩展文件named.rfc1912.zones 2.1添加lele.com,yue.com为主域(master) zone"lele.com"{#开启域名叫lele.com       typemaster;#类型为主域       file"lele.com";#域配置文件为lele.com };zone"yue.com"{#开启域名叫yue.com       typemaster;#类型为主域       file"yue.com";#域配置文件为yue.com };3.建立lele.com,yue.com的域配置文件cd/var/named/chroot/var/namedcpnamed.localamao.com删除amao.com的最后一行添加www IN A  192.168.0.2保存退出cplele.comyue.com执行bind-chroot-admin-s命令chkconfignamedon4.重启服务,完成配置二:装httpd软件httpd-2.2.9.tar.gz编写脚本#!/bin/shtar-zxfhttpd-2.2.9.tar.gzecho"正在开始安装......"cdhttpd-2.2.9echo"已完成30%......"./configure--prefix=/usr/local/apache2--enable-so--enable-rewrite&>/dev/nullecho"已完成50%......"make&>/dev/nullecho"已完成80%......"makeinstall&>/dev/nullecho"安装已完成"执行脚本./install.shvi/usr/local/apache2/conf/httpd.conf将382前面的#号删除变为Includeconf/extra/httpd-userdir.confcd/etc/skelmkdirpublic_htmladduserlelepasswdleleadduseryuepasswdyuechmodo+x/home/*cd/usr/local/apache2/conf/vihttpd.conf修改virtualhosts下去掉#cdextra/vihttp-vhosts.confNameVirtualHost192.168.0.106#虚拟主机支持的ip是192.168.0.2#在192.168.0.106上建立虚拟主机       ServerName www.lele.com       DocumentRoot/home/lele/public_html  AddDefaultCharsetUTF-8 #默认此虚拟主机支持UTF-8语言#在192.168.0.106上建立虚拟主机       ServerName www.lele.com       DocumentRoot/home/lele/public_html  AddDefaultCharsetUTF-8#默认此虚拟主机支持UTF-8语言3.实现ftp进行更新功能vitc/vsftpd.conf修改anonymous_enable=NO 3、1添加chroot_local_user=YES 3、2关闭匿名访问servicevsftpdstart/usr/local/apache2/bin/apachectlstart知识补充:httpd.conf配置文件 使用下面的命令可以获得有效配置清单:grep-v"#"httpd.conf.bak|grep-v"^$">httpd.conf常用的全局配置参数ServerRoot:服务目录ServerAdmin:管理员邮箱User:运行服务的用户身份Group:运行服务的组身份ServerName:网站服务器的域名DocumentRoot:网页文档的根目录Listen:监听的IP地址、端口号 PidFile:保存httpd进程PID号的文件DirectoryIndex:默认的索引页文件ErrorLog:错误日志文件的位置CustomLog:访问日志文件的位置LogLevel:记录日志的级别,默认为warnTimeout:网络连接超时,默认为300秒KeepAlive:是否保持连接,可选On或OffMaxKeepAliveRequests:每次连接最多请求文件数KeepAliveTimeout:保持连接状态时的超时时间Include:需要包含进来的其他配置文件升级升级的第一步是阅读源代码目录中的发布公告(releaseannouncement)和CHANGES文件以寻找可能会对你的站点产生影响的变化。如果主板本号的变化(例如1.3→2.0或2.0→2.2)表明编译时和运行时的配置发生了重大变化,需要手动调整,所有模块也需要升级以兼容新版本的模块API 。 小幅度的版本升级(例如:2.2.55→2.2.57)很容易。makeinstall 的过程不会改写任何已经存在的文档、日志、配置文件。此外,开发者也会尽量兼容上一版本的configure选项、运行时配置、模块API 。大多数情况下,你将能够使用与上一版本完全相同的configure命令行和运行时配置,而你原来的所有模块也将正常工作。 如果你保存了上一次安装后build子目录中的config.nice文件,升级将更加平滑。这个文件精确地保存了所有对目录树进行配置的configure命令行。你只需要将config.nice文件复制到新的源代码目录树的根文件夹并进行你希望的修改后,然后运行下面的命令即可完成升级: $./config.nice$make$makeinstall$PREFIX/bin/apachectl-kgraceful-stop$PREFIX/bin/apachectl-kstart Linuxapache编译安装Linuxapache编译安装 文章分类:操作系统1.下载httpd-2.2.15.tar.gz wget http://mirror.bjtu.edu.cn/apache/httpd/httpd-2.2.17.tar.gz [root@test-AS4~]#mkdir-P/usr/local/src/apache/   #创建源包存放的目录 [root@test-AS4~]#cd/usr/local/src/apache/          #把httpd-2.2.15.tar.gz放入此目录下 [root@test-AS4apache]#tarzxvfhttpd-2.2.15.tar.gz      #解压文件会生成httpd-2.2.15目录 [root@test-AS4apache]#ll total6464 drwxr-xr-x 11angelangel   4096Mar1007:42httpd-2.2.15 -rw-r--r--  1root root 6593633Mar10 2010httpd-2.2.15.tar.gz [root@test-AS4httpd-2.2.15]#cdhttpd-2.2.15  [root@test-AS4httpd-2.2.15]#./configure--prefix=/usr/local/apache-2.2.15 --enable-so--enable-mods-shared=most--with-mpm=worker 如果发现gcc没有装,请先安装GCC yum-yinstallgcc  [root@test-AS4httpd-2.2.15]#make  #执行make前执行  apt-getbuild-depfcitx [root@test-AS4httpd-2.2.15]#makeinstall # --prefix=指明编译后的二进制文件安装到目录,用实际安装路径替换,如--prefix=/usr/local/apache-2.2.15,如果省略此配置参数,默认安装到/usr/local/apache2目录。 # --enable-so指明编译动态加载模块(DSO)支持到httpd二进制文件,此模块使得Apache的各功能模块可以与核心分开编译、运行时动态加载。有了DSO支持,升级和增加模块时只需编译相关的模块即可,不必重新编译整个系统。最新版本的Apache缺省编译此模块到httpd二进制文件,如果你在使用早期版本的apache并且需要DSO支持,可能要明确指出此选项。 # --enable-mods-shared=明确指明要以DSO方式编译的模块,为空格分隔的模块名列表、all或者most,all表示包含所有模块,most表示包含大部分模块,如--enable-mods-share="rewritedeflate",--enable-mods-share=most,效果等同于多个--enable-=share # --with-mpm= 先择Apache多路处理模块,={beos|event|worker|prefork|mpmt_os2},prefork为Unix系统下默认处理模块,它将运行一个非线程型的、预派生的Web服务器,适合于没有线程安全库,需要避免线程兼容性问题的系统,它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。worker为支持混合的多线程多进程的多路处理模块,由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM,同时,它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。如果你的系统是基于线程安全的,那么笔者建议使用worker替代prefork,它将使得你的系统得到实际的性能改善。 2.设置开机自启动服务控制脚本   Apache安装后可通过其安装路径的bin目录下的apachectl脚本控制服务的启动和停止。本例中apache安装在/usr/local/apache-2.2.15,服务控制脚本为:    /usr/local/apache-2.2.15/bin/apachectl   执行下面的命令启动Apache服务:    /usr/local/apache-2.2.15/bin/apachectlstart   执行下面的命令停止Apache服务:    /usr/local/apache-2.2.15/bin/apachectlstop  可以简单地把Apache启动命令加到/etc/rc.local文件,让Apache随系统启动而自动启动:    echo"/usr/local/apache-2.2.15/bin/apachectlstart" >>/etc/rc.local 下面介绍如何把Apache加入到系统服务,用service命令来控制Apache的启动和停止。 ##这里请注意一下!如果Linux服务器上默认安装了httpd的话(用rpm-qa|grephttpd查看), ##会有/etc/init.d/httpd这个脚本文件的,所以你也可以用以下方法直接生成这个文件来覆盖它 ##那么下次就可以用servicehttpdstart来启动了 ##如果需要区分开来的话就使用下面的方式  首先以apachectl脚本为模板生成Apache服务控制脚本:    grep-v"#"/usr/local/apache-2.2.15/bin/apachectl >/etc/init.d/apache   用vi编辑Apache服务控制脚本/etc/init.d/apache:    vi/etc/init.d/apache   在文件最前面插入下面的行,使其支持chkconfig命令:    #!/bin/sh              #chkconfig:23458515              #description:ApacheisaWorldWideWebserver.   保存后退出vi编辑器,执行下面的命令增加Apache服务控制脚本执行权限:    chmod +x /etc/init.d/apache   执行下面的命令将Apache服务加入到系统服务:    chkconfig--addapache   执行下面的命令检查Apache服务是否已经生效:    chkconfig--listapache              命令输出类似下面的结果:              apache         0:off1:off2:on3:on4:on5:on6:off       表明apache服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制Apache的启动和停止。  启动Apache服务:    serviceapachestart   停止Apache服务:       serviceapachestop    执行下面的命令关闭开机自启动:    chkconfigapacheoff   执行下面的命令改变开机自启动的运行级别为3、5:    chkconfig--level35apacheon 3.Apache的配置 源码包方式安装目录结构   源码包方式安装时通常是在configure命令的--prefix选项指定的目录中建立如下的目录结构,特殊指定的目录除外:         ./icons    #Apache图标文件目录           ./modules  #动态加载模块目录           ./lib      #库文件目录           ./logs     #日志文件目录           ./build    #           ./conf     #主配置文件目录           ./conf/extra    #扩展及模块配置文件目录           ./error    #默认错误应答文件目录           ./manual   #Apache文档目录           ./include  #包含头文件目录           ./htdocs   #默认WEB文档根目录           ./cgi-bin  #默认cgi文件目录           ./bin    #Apache二进制程序及服务程序目录           ./man    #man帮助文件目录 4.配置文件http.conf ServerRoot"/usr/local/apache-2.2.15"      ##设置服务器的基础目录,默认为Apache安装目录 Listen80          ##设置服务器监听的IP和端口 LoadModuleauthn_file_modulemodules/mod_authn_file.so LoadModuleauthn_dbm_modulemodules/mod_authn_dbm.so LoadModuleauthn_anon_modulemodules/mod_authn_anon.so LoadModuleauthn_dbd_modulemodules/mod_authn_dbd.so LoadModuleauthn_default_modulemodules/mod_authn_default.so LoadModuleauthz_host_modulemodules/mod_authz_host.so LoadModuleauthz_groupfile_modulemodules/mod_authz_groupfile.so LoadModuleauthz_user_modulemodules/mod_authz_user.so LoadModuleauthz_dbm_modulemodules/mod_authz_dbm.so LoadModuleauthz_owner_modulemodules/mod_authz_owner.so LoadModuleauthz_default_modulemodules/mod_authz_default.so LoadModuleauth_basic_modulemodules/mod_auth_basic.so LoadModuleauth_digest_modulemodules/mod_auth_digest.so LoadModuledbd_modulemodules/mod_dbd.so LoadModuledumpio_modulemodules/mod_dumpio.so LoadModulereqtimeout_modulemodules/mod_reqtimeout.so LoadModuleext_filter_modulemodules/mod_ext_filter.so  LoadModuleinclude_modulemodules/mod_include.so LoadModulefilter_modulemodules/mod_filter.so LoadModulesubstitute_modulemodules/mod_substitute.so LoadModuledeflate_modulemodules/mod_deflate.so LoadModulelog_config_modulemodules/mod_log_config.so LoadModulelogio_modulemodules/mod_logio.so LoadModuleenv_modulemodules/mod_env.so LoadModuleexpires_modulemodules/mod_expires.so LoadModuleheaders_modulemodules/mod_headers.so LoadModuleident_modulemodules/mod_ident.so LoadModulesetenvif_modulemodules/mod_setenvif.so LoadModuleversion_modulemodules/mod_version.so LoadModulemime_modulemodules/mod_mime.so LoadModuledav_modulemodules/mod_dav.so LoadModulestatus_modulemodules/mod_status.so LoadModuleautoindex_modulemodules/mod_autoindex.so LoadModuleasis_modulemodules/mod_asis.so LoadModuleinfo_modulemodules/mod_info.so LoadModulecgid_modulemodules/mod_cgid.so LoadModuledav_fs_modulemodules/mod_dav_fs.so LoadModulevhost_alias_modulemodules/mod_vhost_alias.so LoadModulenegotiation_modulemodules/mod_negotiation.so LoadModuledir_modulemodules/mod_dir.so LoadModuleimagemap_modulemodules/mod_imagemap.so LoadModuleactions_modulemodules/mod_actions.so LoadModulespeling_modulemodules/mod_speling.so LoadModuleuserdir_modulemodules/mod_userdir.so LoadModulealias_modulemodules/mod_alias.so LoadModulerewrite_modulemodules/mod_rewrite.so  Userdaemon    ##设置实际提供服务的子进程的用户。 Groupdaemon   ##设置提供服务的Apache子进程运行时的用户组。  ServerAdminyou@example.com     ##设置在所有返回给客户端的错误信息中包含的管理员邮件地址。 ServerName192.168.221.128      ##设置服务器用于辨识自己的主机名和端口号(用IP代替)。 DocumentRoot"/usr/local/apache-2.2.15/htdocs"    ##设置Web文档根目录。       ###用于封装一组指令,使之仅对某个目录及其子目录生效。    OptionsFollowSymLinks    AllowOverrideNone    Orderdeny,allow    Denyfromall    ##设置DocumentRoot指定目录的属性    OptionsIndexesFollowSymLinks   ##建议拿掉Indexes    AllowOverrideNone    Orderallow,deny    Allowfromall     ##设置默认目录资源列表文件    DirectoryIndexindex_top.htmlentrance.htmlindex.htmlindex.phpindex.htmindex.asp index.php3      ##拒绝对.ht开头文件的访问,以保护.htaccess文件    Orderallow,deny    Denyfromall    SatisfyAll  ErrorLog"logs/error_log"     ##指定错误日志文件 LogLevelwarn       ##指定记录到错误日志的消息级别    ##定义访问日志的格式    LogFormat"%h%l%u%t"%r"%>s%b"%{Referer}i""%{User-Agent}i""combined    LogFormat"%h%l%u%t"%r"%>s%b"common          LogFormat"%h%l%u%t"%r"%>s%b"%{Referer}i""%{User-Agent}i"%I%O"combinedio        CustomLog"logs/access_log"common   ##指定访问日志及使用的格式     ##设定默认CGI脚本目录及别名    ScriptAlias/cgi-bin/"/usr/local/apache-2.2.15/cgi-bin/"       ##设定默认CGI脚本目录的属性    AllowOverrideNone    OptionsNone    Orderallow,deny    Allowfromall  DefaultTypetext/plain   ##设定默认MIME内容类型     TypesConfigconf/mime.types    AddTypeapplication/x-compress.Z    AddTypeapplication/x-gzip.gz.tgz   SSLRandomSeedstartupbuiltin SSLRandomSeedconnectbuiltin               ##编译参数--with-mpm=worker时,使用worker.c模块                ServerLimit        25   ##/usr/local/apache-2.2.15/bin/apachectl-l查看使用模块                ThreadLimit       200                StartServers        3                MaxClients       2000                MinSpareThreads    50                MaxSpareThreads   200                ThreadsPerChild   100                MaxRequestsPerChild 1000   Timeout15 KeepAliveOn MaxKeepAliveRequests100 KeepAliveTimeout3 UseCanonicalNameOff AccessFileName.htaccess ServerTokensProd ServerSignatureOff HostnameLookupsOff NameVirtualHost*:80     DocumentRoot/usr/local/apache-2.2.15/htdocs/irene    ServerNamewww.irene.com      DocumentRoot/usr/local/apache-2.2.15/htdocs/angel    ServerNamewww.angel.com  ----------------------------------------------------------------------------------------- 4.认证和授权配置 ##在httpd.conf配置文件中添加如下代码         AllowOverrideNone     ##不使用.htaccess文件        AuthTypeBasic         ##指定使用基本认证方式        AuthName"apache.passwd"   ##指定认证领域名称        AuthUserFile/usr/local/apache-2.2.15/htdocs/protect/apache.passwd ##认证口令存放位置        requirevalid-user    ##授权给认证口令文件中的所有用户        #Orderallow,deny        #Allowfromall  **由于文本中DocumentRoot"/usr/local/apache-2.2.15/htdocs"已经指定了你的文档根目录 **所以在这个目录下建立相关目录作为指定的保护文档位置 **也可以使用Alias别名指定一个其他目录 [root@test-AS4~]#cd/usr/local/apache-2.2.15/htdocs [root@test-AS4htdocs]#mkdirprotect [root@test-AS4protect]#htpasswd-capache.passwdangel [root@test-AS4protect]#ll  total8 -rw-r--r-- 1rootroot20Mar1421:14apache.passwd [root@test-AS4protect]#catapache.passwd angel:Grka1xfi6y5RM [root@test-AS4protect]# ##打开浏览器URL:http://192.168.221.128/protect/ 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭