当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Apache安装、配置、优化

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

Unix/Linux 中的 Apache安装、配置、优化


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 25 ::
收藏到网摘: n/a

安装 Apache 2.0.48 (查看Install手册)

  考虑到以后要 rewite_url 来使 google 更加容易收录网站,特地添加了 mod_rewrite 。

  同时为了限制流量,特别加了 mod_limitpcnn.c 补丁 , 所以多了一个 --enable-forward 选项。

  建议安装完毕以后不要删除安装目录,以便以后升级时使用。

  记得升级前关闭 apache2.0

  编译过程:
  
  代码:

#./configure --enable-so --enable-speling --enable-rewrite
 --with-ssl=/usr/local/ssl --enable-forward
   # make
   # make install

  这个例子里面是编译了 mod_so,mod_speling 和 openssl 支持。
  同样有另外几种写法
  
  代码:

#./configure --enable-modules=so --enable-modules=speling --enable-modules=rewrite
  
  或者
  
  代码:

#./configure --enable-modules=”so speling”
  
  --enable-MODULE[=shared] 编译并包含模块 MODULE. MODULE 是文档中去掉” _module ”的模块名。要将一个模块编译成为 DSO, 需要加 -shared 选项 , 即 --enable-mods-shared 。 (查看 MODULE 手册)
  
  注意 :"如果希望核心能够装载 DSO,而不实际编译任何动态模块,则要明确指定 --enable-modules=so 或者 --enable-so" (查看 DSO 手册),所以前面的顺序不能交换顺序。 查看所有apache 的 configure 参数
  
  安装完毕后可以用以下命令来查看启动了那些模块
  
  代码:

  # apachectl -l
   Compiled in modules:
   core.c
   mod_access.c
   mod_auth.c
   mod_include.c
   mod_log_config.c
   mod_env.c
   mod_setenvif.c
   prefork.c
   http_core.c
   mod_mime.c
   mod_status.c
   mod_autoindex.c
   mod_asis.c
   mod_cgi.c
   mod_negotiation.c
   mod_dir.c mod_imap.c
   mod_actions.c
   mod_speling.c
   mod_userdir.c
   mod_alias.c
   mod_rewrite.c
   mod_so.c 

  接着,将启动程序放入开机程序中去。 如果要启动 ssl 加密网页,则必须通过手动启动 apache2.0 (参见 ssl 部分 )
  
  代码:

# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local

  参考:

  代码:

If you want your server to continue running after a system reboot ,
   you should add a call to apachectl to your system startup files (typically rc.local
 or
   a file in an rc.N directory). This will start Apache as root. Before doing this ensure
   that your server is properly configured for
 security and access restrictions. 

  在 profile 里面添加以上的语句来设置路径,使得在 bash 下更容易控制 apachectl, 省去了输入路径的麻烦。
  
  代码:

# vi /etc/profile
   PATH="  $PATH:usr/local/apache2/bin:”
  
  配置 apache2.0

  代码:

# vi /usr/local/apache2/conf/httpd.conf
  
  配置文件请看文件 httpd.conf (设置文档目录为/home/dalouis/public_html)
  
  代码:

#chmod 755 – R /home/dalouis/
  
  设置目录的可读性为 drwxr-xr-x(755), 否则会出现 "Forbidden You don't have permission to access / on this server."
  
  一些关于安全性的配置:
  
  考虑到 cgi-bin 的安全性问题,我们暂时将 cgi-bin 去掉。将所有 httpd.conf 中的所有关于 cgi-bin 的行加上 #.

  Xiyang 的配置

  我用的: mod_limitipconn, mod_expires, mod_gzip, mod_php4, mod_so, mod_access, mod_alias, mod_userdir, mod_dir, mod_autoindex, mod_status, mod_mime, mod_log_config, http_core
  
  关于超时的问题

  在我编写好所有的产品查看页面的时候,经常会出现因为超时,或者流量过大 ,apache 停止工作的问题,原因有二,一是代码的不科学性,二是 apache 的设置问题。
  
  以下是对设置的一点改动:
  
  代码:

# KeepAlive: Whether or not to allow persistent connections(more than
   # one request per connection). Set to "Off" to deactivate.
     # KeepAlive Off
     # MaxKeepAliveRequests: The maximum number of requests to allow
   # during a persistent connection. Set to 0 to allow an unlimited amount.
   # We recommend you leave this number high, for maximum performance.
     # MaxKeepAliveRequests 0
    # KeepAliveTimeout: Number of seconds to wait for the next request
   # from the same client on the same connection.
     # KeepAliveTimeout 0

  • 记录访问者的 HTTP-REFERER 和 AGENT, 有助于统计来者是通过什么搜索引擎找到我们的网站的。 或者在原有的CustomLog行,将参数由 common 改成 combined

  代码:

# If you would like to have agent and referer logfiles,
   # uncomment the following directives.
   CustomLog logs/referer_log referer
         CustomLog logs/agent_log agent
   CustomLog logs/www.domain.com-access_log combined

  使用 mod_limitipconn.c 来限制 apache 的并发数
  
  Package: http://dominia.org/djao/limit/这里的安装建议使用动态 DSO 并 patch apache2.0, 以使得 apache2.0 可以认识在代理后方的 IP 。但是要 重新编译 apache2.0, 以下是介绍。
  
  代码:

##Instructions for building DSO with proxy tracking:
   # tar xzvf httpd-2.0.39.tar.gz
   # tar xzvf mod_limitipconn-0.22.tar.gz
   # cd httpd-2.0.39
   # patch -p1 < ../mod_limitipconn-0.22/apachesrc.diff
   # ./buildconf
   # ./configure --enable-so --enable-speling --enable-rewrite
--with-ssl=/usr/local/ssl --enable-forward
   # make
   # make install
   # cd ../mod_limitipconn-0.22
   # PATH=/usr/local/apache2/bin: $PATH
   # make install

  安装过程

# lynx http://dominia.org/djao/limit/mod_limitipconn-0.22.tar.gz
   # tar -zxvf mod_limitipconn-0.22.tar.gz
   # cd httpd-2.0.48
   # patch -p1 < ../mod_limitipconn-0.22/apachesrc.diff
   patching file configure.in
   Hunk #1 succeeded at 373 (offset 55 lines).
   patching file include/scoreboard.h
   patching file modules/generators/mod_status.c
   Hunk #1 succeeded at 746 (offset -1 lines).