首页 > 代码库 > apache配置搭建

apache配置搭建


软件包下载:

wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.25.tar.gz

wget http://mirror.bit.edu.cn/apache/apr/apr-1.5.2.tar.gz

wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.5.4.tar.gz


yum install -y gcc autoconf automake make pcre pcre-devel openssl openssl-devel


tar xvf apr-1.5.2.tar.gz

cd apr-1.5.2

 ./configure

make

cd ..


tar xvf apr-util-1.5.4.tar.gz

cd apr-util-1.5.4

 ./configure --with-apr=/usr/local/apr

make

cd ..


 tar xvf httpd-2.4.25.tar.gz

cd httpd-2.4.25

./configure --prefix=/usr/local/apache2 --enable-so --enable-ssl --enable-rewrite --with-mpm=worker --with-suexec-bin --with-apr=/usr/local/apr/

make

cd ..


--prefix    //指定安装目录

--enable-so        //开启模块化功能

--enable-ssl        //支持ssl加密

--enable-rewrite    //支持地址重写

--with-mpm        //设置http工作方式

--with-suexec-bin    //支持suid,sgid

--with-apr        //指定apr程序绝对路径


参数

/usr/local/apache2/bin/apachectl

-t/configtest  检测http配置文件语法是否正确

graceful    启动httpd,不中断现有的http连接请求

graceful-stop    关闭httpd,不中断现有的http连接请求


配置文件解析

ServerRoot "/usr/local/apache2"  //httpd 安装目录

LoadModule foo_module modules/mod_foo.so   //编译时加--enable-so,格式LoadModule 模块    模块文件名称

ServerAdmin you@example.com //当网站出问题,发的解决问题邮箱

ServerName www.example.com    //网站域名

DocumentRoot "/usr/local/apache2/htdocs"    //web服务器的根目录

ErrorLog "logs/error_log"        //定位服务器错误日志

Include conf/extra/httpd-mpm.conf    //在apache主配置文件中加载其它配置文件

Options None        //不启用任何额外功能

  1. ALL:开启除MultiViews之外的所有选项

  2. ExecCGI:允许指定目录下的所有CGI脚本

  3. FollowSymlinks:允许指定目录下的文件链接到目录外的文件或目录

  4. Indexes:如果URL对应Options目录下找不到DirectoryIndex指定的首页文档,则apache将会把当前目录的所有文件索引出来


Order指令:

先检测允许,在检测拒绝,默认允许

Order deny,allow

Deny from all


eg:

Order Allow,Deny

allow from 192.168.1.10


IfDefine容器

在httpd启动时测试条件为真,才会被处理 需要通过httpd -D定义

<IfDefine>指令</IfDefine>

eg:

<IfDefine MemCache>

LoadModule mem_cache_module modules/mod_mem_cache.so

</IfDefine>

<IfDefine UseCache>

LoadModule cache_module modules/mod_cache.so

</IfDefine>


IfModule容器

仅在条件满足时才会处理的指令

<IfModule[!] 模块>指令</IfModule>

eg:

<IfModule unixd_module>

User daemon

Group daemon

</IfModule>

加载unixd_module模块后,User daemon与Group daemon才会被处理


Directory容器

用于特定文件系统,子目录以及目录下的内容

<Directory directory-path>指令</Directory> 路径可以用~正则表达式匹配

<Directory "/usr/local/apache2/htdocs">

Options Indexs FollowSymLinks

</Directory>

<Directory ~ "^/www/[0-9]{3}">

AllowOverride None

</Directory>


Location容器

<Location URL-path|URL>指令</Location>

加~使用正则表达式



本文出自 “linux学习笔记” 博客,请务必保留此出处http://rockycai.blog.51cto.com/8871643/1888756

apache配置搭建