Linux 编译安装apache服务

一、安装

1.通过编译安装,首先需要下载源代码安装包

apache下载链接:http://httpd.apache.org/download.cgi

2.解开源代码封装包

tar zxvf httpd-2.2.17.tar.gz  -C  /usr/src/

3.配置选择安装的功能和安装目录等信息

--prefix:指定将httpd服务程序安装到哪个目录,如/usr/local/httpd。

--enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力。

--enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。

--enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页。

--enable-cgi:启用CGI脚本程序支持,便于扩展网站的应用访问能力

cd /usr/src/httpd-2.2.17/

./configure  --prefix=/usr/local/httpd  --enable-so  --enable-rewrite  --enable-charset-lite  --enable-cgi

 

4.生成二进制文件 make

  

5.安装生成的二进制文件

 

6.优化执行路径

ln -s /usr/local/httpd/bin/*     /usr/local/bin/

  

7.添加httpd系统服务

cp /usr/local/httpd/bin/apachectl   /etc/init.d/httpd(apache服务的控制脚本)开机启动apache

 

8. 修改/etc/init.d/httpd配置文件  chkconfig: 35 85 15(使其能够支持chkconfig来进行管理),添加如下两行

  

9.调整启动级别

chkconfig --add httpd(调整启动级别)

chkconfig --list httpd(查看启动状态)

  

10.启动服务测试apache服务是否正常

二、配置web服务

httpd服务的目录结构

服务目录:/usr/local/httpd/

主配置文件:/usr/local/httpd/conf/httpd.conf

网页目录:/usr/local/httpd/htdocs/

服务脚本:/usr/local/httpd/bin/apachectl

执行程序:/usr/local/httpd/bin/httpd

访问日志: /usr/local/httpd/log/access_log

错误日志: /usr/local/httpd/log/error_log

httpd.conf配置文件

常用的全局配置参数
ServerRoot:服务目录

ServerAdmin:管理员邮箱

User:运行服务的用户身份

Group:运行服务的组身份

ServerName:网站服务器的域名

DocumentRoot:网页文档的根目录

Listen:监听的IP地址、端口号

PidFile:保存httpd进程PID号的文件

DirectoryIndex:默认的索引页文件

ErrorLog:错误日志文件的位置

CustomLog:访问日志文件的位置

LogLevel:记录日志的级别,默认为warn

Timeout:网络连接超时,默认为300秒

KeepAlive:是否保持连接,可选On或Off

MaxKeepAliveRequests:每次连接最多请求文件数

KeepAliveTimeout:保持连接状态时的超时时间

Include:需要包含进来的其他配置文件

区域配置项
<Directory "/usr/local/httpd/htdocs">
Options FollowSymLinks #控制选项,允许使用符号链接
AllowOverride None #不允许隐含控制文件中的覆盖配置
Order deny,allow #访问控制策略的应用顺序
Deny from all #禁止任何人访问此区域
</Directory>

httpd服务访问控制
作用:
控制对网站资源的访问
为特定的网站目录添加访问授权

常用访问控制方式:
客户机地址限制
用户授权限制

1)基于客户端地址的访问控制

Order配置项,定义控制顺序
先允许后拒绝,默认拒绝所有:Order allow,deny
先拒绝后允许,默认允许所有:Order deny,allow

2)用户授权限制

cd /usr/local/httpd/bin

htpasswd -c /usr/local/httpd/conf/.htpass webadmin
(-c,只在添加首个用户时使用)
cat /usr/local/httpd/conf/.htpass

3)对网站目录添加授权
vi /usr/local/httpd/conf/httpd.conf

<Directory "/usr/local/httpd/htdocs">
AuthName "www.yuzly.com"
AuthType Basic
AuthUserFile /usr/local/httpd/conf/.awspwd
require valid-user
</Directory>

4)重启网站服务
/etc/init.d/httpd restart 或者
/usr/local/httpd/bin/apachectl restart 或者
service httpd restart

1.在/usr/local/httpd/htdocs目录下新建一个admin文件夹,然后创建一个index.html文件用于充当后台管理页面

2.httpd服务访问控制,这里只对后台管理页面做限制,首页不做限制

限制特定IP地址访问

  

3.测试,下图可以看到,只有特定IP才能访问admin下的网页,说明限制有效

 

 

4.限制通过用户登录才能访问网页(用户授权访问)

首先创建用于访问网页的账户和密码

htpasswd -c /usr/local/httpd/conf/.htpass   yuzly    #-c 只在添加首个用户时使用

 

5.对网站目录添加授权

  

6.重启网站服务,测试用户授权是否有效

  

Linux 通过编译安装apache服务以及配置的更多相关文章

  1. Linux下编译安装Apache Http Server

    Linux下编译安装Apache Http Server [TOC] 1.下载httpd-2.4.12.tar.bz2 wget http://mirror.bit.edu.cn/apache/htt ...

  2. linux中编译安装Apache、PHP、MySQL(上)

    1.简介 在阿里云买了个云服务器,一直没时间折腾.过了近十天了吧,才有时间好好玩玩这个云服务器.自己是做Web开发的,所以我需要的开发环境是LAMP.之前打算是采用yum安装,不过yum安装apach ...

  3. Linux下编译安装Apache 2.4

    Linux一般会自带httpd服务,但是版本一般不是最新,性能也不是最好,生产中建议手动安装官方源码包,安装Apache官方包之前首先要停止之前的httpd服务,停止后也可以卸载之前的版本 准备工作做 ...

  4. Linux下编译安装Apache及模块

    Apache是时下最流行的Webserver软件之中的一个,支持多平台,可高速搭建web服务,并且稳定可靠.并可通过简单的API扩充.就能够集成PHP/Python等语言解释器. 文章这里解说怎样在l ...

  5. linux下编译安装apache

    在linux(CentOS6.5)上安装Apache,要首先确保以下程序事先安装 apr:The mission of the Apache Portable Runtime (APR) projec ...

  6. Linux下编译安装Apache报APR not found错误的解决办法

    我在编译安装完Nginx.MySQL和PHP(见之前一篇博客:LNMP环境搭建详细教程)之后,进行apache的编译安装: cd /usr/local/src wget http:.tar.gz ta ...

  7. 03 编译安装apache的简易配置

    1.监听端口,默认为80,在主配置文件 /etc/httpd24/httpd.conf中可以更改 2.持久连接 Include /etc/httpd24/extra/httpd-default.con ...

  8. LINUX系统yum安装SVN服务及其配置

    待: http://oplinux.com/app/svn/linux-yum-install-svn.html  //基础设置及流程 http://files.cnblogs.com/logon/s ...

  9. Linux编译安装Apache+PHP

    Linux编译安装Apache+PHP 来自:自学it网,http://www.zixue.it/. 1]编译安装Apache+PHP 1.安装程序依赖库和开发环境   为了省事把所需要的库文件全都安 ...

随机推荐

  1. java8新特征

    一:Lambda 表达式 为什么使用    :使用 Lambda 表达式可以使代码变的更加简洁紧凑. 表达了什么?: 匿名内部类的新写法: 语法 :(parameters) -> express ...

  2. 使用dotnet build时复制引用dll到生成目录

    默认配置下dotnet build只会输出项目代码的dll,依赖用的是dotnet缓存中的dll,只有dotnet publish才会把依赖的dll一起输出到生成目录. 在项目csproj文件中添加以 ...

  3. 在.NET Core console application中使用User Secrets(用户机密)

    微软很坑地只在Microsoft.NET.Sdk.Web中提供了VS项目右键菜单的"管理用户机密"/"Manage User Secrets"菜单项,在使用Mi ...

  4. Chorme浏览器渲染MathJax时出现竖线的解决方法

    Chorme浏览器渲染MathJax时出现竖线的原因分析与解决方法 查资料知,Chorme中显示MathJax时出现竖线的原因如下: 新版的Chorme浏览器在解析css时,会对其中的值进行向上取整( ...

  5. 从锅炉工到AI专家(10)

    RNN循环神经网络(Recurrent Neural Network) 如同word2vec中提到的,很多数据的原型,前后之间是存在关联性的.关联性的打破必然造成关键指征的丢失,从而在后续的训练和预测 ...

  6. 带着萌新看springboot源码05

    上一节走了一遍从浏览器发出请求到得到向页面的流程,基本的功能是已经实现了.但是现在啊,我想自定义一个拦截器(拦截器可以做用户登录验证,如果登录了,就让你通过,如果没有登录,就重定向登录页面),这里就不 ...

  7. 【SpringCloud】HystrixCommand的threadPoolKey默认值及线程池初始化

    关于threadPoolKey默认值的疑问 使用SpingCloud必然会用到Hystrix做熔断降级,也必然会用到@HystrixCommand注解,@HystrixCommand注解可以配置的除了 ...

  8. jQuery中关于全选、全不选和反选

    1.首先我们要获取当前点击的对象,然后得到点击事件,   判断他的状态如果是checked的话就把该第二行的选中,   否则就取消选中. 2.当第二列功能小项没有全部选中时,该行第一列的复选款也要取消 ...

  9. vue axios 批量删除 数组参数

    方法一:前端循环请求服务器端delete(id)方法 请问如何获得element-ui表格中的勾选项index,以实现批量删除功能 https://segmentfault.com/q/1010000 ...

  10. Java开发笔记(六十)匿名内部类的优势

    前面依次介绍了简单接口和扩展接口,给出的范例都是自定义的接口代码,其实Java系统本身就自带了若干行为接口,为了更好地理解系统接口的详细用法,接下来还是从一个基础的例子出发,抽丝剥茧地逐步说明接口的几 ...