linux httpd

假设服务器地址为192.168.80.20/241.将准备安装的httpd软件包共享给everyone,

(1)在linux上mount.cifs  //真机IP地址/共享文件夹名/media /

ls  /meidia/查看

tar    xjvf   httpd-2.4.10.tar.bz2    -C  /usr/src解压至/usr/src下

下面两个插件是httpd2.4以后的版本所需要的

http://ftp.jaist.ac.jp/pub/apache/apr/apr-1.4.6.tar.gz

wgethttp://ftp.jaist.ac.jp/pub/apache/apr/apr-util-1.4.1.tar.gz

下载上面两个软件解压后复制到httpd的srclib解压目录中(不带版本号)

tar   xzvf  apr-1.4.6.tar.gz   -C   /opt

tar   xzvf  apr-util-1.4.1.tar.gz    -C    /opt

cd   /opt

cp   -r    apr-1.4.6   /usr/src/httpd-2.4.10/srclib/apr

cp   -r   apr-util-1.4.1     /usr/src/httpd-2.4.10/srclib/apr-util

(2)安装编译语言工具

yum -y install \

gcc \

gcc-c++ \

make \

pcre-devel

(3)cd    /usr/src/httpd-2.4.10/

输入以下脚本(配置需求)

./configure \

--prefix=/usr/local/apache\

--enable-so \

--enable-rewrite \

--enable-mods-shared=most\

--with-mpm=worker\

--disable-cgid \

--disable-cgi

(参数解释:

--prefix=   //来指定安装路径

--enable-so  //该参数表示支持用mod_so模块提供的功能,用LoadModule在httpd.conf文件或包含的conf文件中动态加载某个模块。让Apache可以支持DSO模式

--enable-rewrite  //支持URL重写

--enable-mods-shared=most  //选项:告诉编译器将所有标准模块都动态编译为DSO模块。

--with-mpm=worker//让apache以worker方式运行

--with-mpm=worker   //该参数是配置apache将以何种模式编译的。Apache网站文档指出不同操作系统下的不同的默认模式.

--disable-cgid //禁止用一个外部CGI守护进程执行CGI脚本

--disable-cgi //禁止编译CGI版本的PHP)

安装如无报错,输入make(编译)

安装如无报错,再输入make  install(完成安装)

(4) grep   -v   "#"   /usr/local/apache/bin/apachectl   >   /etc/init.d/httpd

vi/etc/init.d/httpd

在文件最前面插入下面的行,使其支持chkconfig命令:

#!/bin/sh

#   chkconfig:   2345   85  15

# description:   Apache  is  a  World  Wide Web server.

第一行4个数字参数意义分别为:哪些Linux级别需要启动httpd(2,3,4,5);启动序号(85);关闭序号(15)。

chmod   +x   /etc/init.d/httpd添加执行权限

chkconfig   --add   httpd

注如果在/etc/init.d/apache不编辑这个# chkconfig: 2345 85 15内容的话,就没法用chkconfig--add来添加apache这个服务的

chkconfig --listhttpd查看启动项

(5) vi    /usr/local/apache/conf/httpd.conf

ServerName   s01.rhel.com

Listen网卡IP地址:80

ln   -s   /usr/local/apache/conf/httpd.conf    /etc/httpd.conf做软链接

/etc/init.d/httpd  start/stop启动/停止

配置文件位置:  /usr/local/apache

cat   /usr/local/apache/htdocs/index.html查看默认文档

2.匿名访问虚拟目录

(1)vi   /usr/local/apache/conf/httpd.conf

在末尾加上

Include    /usr/local/apache/conf/conf.d/*.conf

保存。

(2)cd     /usr/local/apache/conf/conf.d

vi    vdir.conf

输入以下内容

Alias   /ic/ "/var/www/icons/"虚拟目录对应物理路径

Options   Indexes  MultiViews   FollowSymLinks

AllowOverride   None

Order   allow,deny白名单

Allow   from   all允许所有人访问

Require   all   granted给目录授权

保存。

/usr/local/apache/bin/httpd  -k  start启动web服务

可以在浏览器上输入//192.168.80.20/ic/访问虚拟目录

3.需要身份验证的虚拟目录

vi   /usr/local/apache/conf/conf.d/vdir.conf

在原有的语句末尾加入以下一段:

Alias   /share/    "/usr/share/doc/"

Options   Indexes  MultiViews   FollowSymLinks

AllowOverride   None

Order   allow,deny

Allow  from  all

AuthName   "hello"

AuthType   Basic设置认证的类型,basic为基本的认证

AuthUserFile   /usr/local/apache/user       设置用于保存用户账号、密码的认证文件路径require valid-user         要求只有认证文件中的合法用户才能访问。valid-user表示所有合法用户

#Require  all   grante

保存

添加有访问权限的用户

./htpasswd  -c  /usr/local/apache/user test增加test用户,第一次要加-c

./htpasswd  /usr/local/apache/user  jack增加jack用户,不需要加-c

/usr/local/apache/bin/httpd  -k  restart重启服务

这是,访问\\192.168.80.20\share\的时候,就需要使用test或者jack用户来验证。

4.虚拟主机

搭建好DNS

1、全局配置文件

vi   /etc/named.conf

options {

listen-on  port 53  { 192.168.80.11; };

allow-query     { any; };

}

2、区域配置文件

vi   /etc/named.rfc1912.zones

zone  "benet.com"  IN  {

type  master;

file  "benet.com.zone";

allow-update  { none; };

};

zone  "accp.com"  IN  {

type  master;

file  "accp.com.zone";

allow-update  { none; };

};

3、区域数据配置文件

# vi  /var/named/benet.com.zone

$TTL 1D

@       IN SOA @  admin(

0       ; serial

1D     ; refresh

1H      ; retry

1W      ; expire

3H)    ; minimum

NS     @

A      192.168.80.20

www     A      192.168.80.20

# vi/var/named/accp.com.zone

$TTL 1D

@       IN SOA @  accp(

0       ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H)    ; minimum

NS     @

A      192.168.80.20

www     A      192.168.80.20

(1)基于域名,准备搭建www.benet.com和www.accp.com两个网址,IP均为192.168.80.20 .

cd   /usr/local/apache/conf/conf.d

vi   vhost.conf

输入以下脚本:

ServerAdmin  webmaster@dummy-host.example.com

DocumentRoot   /opt/benet/主页物理路径

ServerName  www.benet.com域名

ErrorLog  logs/bjxh.com-error_log错误日志地址

CustomLog   logs/bjxh.com-access_log common

授权目录

Options  Indexes  MultiViews  FollowSymLinks

AllowOverride  None

Order  allow,deny白名单

Allow  from  all

Require  all  granted

ServerAdmin  webmaster@dummy-host.example.com

DocumentRoot  /opt/accp/

ServerName  www.accp.com

ErrorLog  logs/xhce.com-error_log

CustomLog  logs/xhce.com-access_log common

Options  Indexes  MultiViews  FollowSymLinks

AllowOverride  None

Order  allow,deny

Allow  from  all

Require  all  granted

(或者直接为/opt/授权

AllowOverride  None

Options  None

Require  all  granted

)

准备两个主页,放在/opt/下

cd  /opt/

mkdir   benet

mkdir    accp

echo    “

this  is benet

>   /opt/benet/index.html

echo    “

this  is  accp

>  /opt/accp/index.html

/usr/local/apache/bin/httpd  -k  restart重启服务

这时候,在浏览器上输入www.benet.com或者www.accp.com的时候就可以分别访问两个主页了.

(2)基于端口(比较少用)

vi   /usr/local/apache/conf/conf.d/vhost.conf

将原内容改为:

Listen   192.168.80.11:8080

Options Indexes MultiViews FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

Require all granted

ServerAdminwebmaster@dummy-host.example.com

DocumentRoot /opt/benet/

ServerName www.benet.com

ErrorLog logs/benet.com-error_log

CustomLog logs/benet.com-access_log common

Options Indexes MultiViews FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

Require all granted

ServerAdminwebmaster@dummy-host.example.com

DocumentRoot /opt/accp/

ServerName www.accp.com

ErrorLog logs/accp.com-error_log

CustomLog logs/accp.com-access_log common

红字为跟以上不同的地方

保存,重启服务。

这时候,访问www.benet.com和www.accp.com:8080可以分别访问两个主页

linux搭建web服务器原理,【LINUX】linux搭建web服务器相关推荐

  1. 【Linux】Shell运行原理及Linux权限的概念

    文章目录 一.Shell运行原理 二.Linux权限的概念 1)Linux中的用户 2)Linux权限管理 1.文件访问者的分类(人) 2.文件的权限(事物属性) ① 文件类型 ② 文件基本权限 ④ ...

  2. 【WebRTC---入门篇】(五)Web服务器原理与Nodejs搭建

    Web服务器工作原理 Nodejs工作原理 首先自己开发的APPLICATION(自己开发的JS程序)输出给V8引擎,解析后的二进制文件调用NODE API,然后调用LIBUV事件处理库(插入到事件队 ...

  3. Samba服务器原理及实验搭建(匿名共享,用户认证,权限设置,IP限制,目录挂载,桌面运维)

    本文目录 Samba服务器概念与原理 一.引子 二.samba原理及基本概念 三.samba共享实验搭建(匿名共享,用户认证,权限设置,IP限制,目录挂载,桌面运维) Samba服务器概念与原理 一. ...

  4. linux跟踪内存检测原理,wooyun/Linux下基于内存分析的Rootkit检测方法.html at master · exitmsconfig/wooyun · GitHub...

    Linux下基于内存分析的Rootkit检测方法 - 路人甲 原文地址:http://drops.wooyun.org/tips/4731 0x00 引言 某Linux服务器发现异常现象如下图,确定被 ...

  5. linux取消线程的原理,浅析 Linux 进程与线程

    简介 进程与线程是所有的程序员都熟知的概念,简单来说进程是一个执行中的程序,而线程是进程中的一条执行路径.进程是操作系统中基本的抽象概念,本文介绍 Linux 中进程和线程的用法以及原理,包括创建.消 ...

  6. <Linux> shell运行原理及Linux权限的理解

    文章目录 一.shell 命令及其运行原理 shell外壳 shell运行原理 二.Linux 权限的概念 1.用户分类 2.切换用户 3.用户提权 三.Linux 权限管理 1.文件访问者的分类(人 ...

  7. linux 液晶屏驱动原理,基于Linux的液晶显示屏驱动设计

    描述 1 Linux关于字符设备的管理 驱动程序在Linux内核中往往是以模块形式出现的.与应用程序的执行过程不同,模块通常只是预先向内核注册自己,当内核需要时响应请求.模块中包含2个重要的函数ini ...

  8. Linux的fork实现原理,【Linux】Fork炸弹详解

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 众所周知,bash是一款极其强大的shell,提供了强大的交互与编程功能.这样的一款shell中自然不会缺少"函数"这个元素来帮助程序 ...

  9. 【Linux】Shell运行原理及Linux权限

最新文章

  1. 一图看懂《中关村人工智能产业培育行动计划》
  2. HTTP_REFERER的获取情况
  3. Dubbo 2.7三大特性详解
  4. pycharm使用import numpy报错
  5. Myeclipse2015把web项目添加至tomcat中,添加列表中却没有想要添加的项目
  6. 信息学奥赛一本通 1125:矩阵乘法 | OpenJudge NOI 1.8 08
  7. 富士康欲进军电动汽车市场 目标占据市场10%份额
  8. Java多线程系列--“JUC锁”10之 CyclicBarrier原理和示例
  9. vm14安装mac10教程(亲测;转载)
  10. 三面,字节跳动电商Java面经(已过)
  11. oracle sql去重
  12. 计算机双机对连局域网,图解双机/多机无线互联技巧_局域网教程
  13. python 全栈开发,Day113(方法和函数的区别,yield,反射)
  14. 计算机的虚拟接口,怎样设置计算机的虚拟目录和虚拟端口
  15. chromium - DISALLOW_IMPLICIT_CONSTRUCTORS
  16. ffmpeg介绍与命令行基本用法
  17. 外贸人如何把握客户跟进频率?
  18. 最新StarrySky星空简约记录型模板源码+Typecho内核
  19. 电脑系统数据堆积过多想要重装win10系统,一键装机工具哪个好用?
  20. 弘辽科技:搞客单价标品怎么拿下转化率?

热门文章

  1. swift 去json空格_数字货币为什么要去中心化?好处是什么?
  2. lnmp架构搭建—源码编译(nginx、mysql、php)
  3. java 循环对比_Java stream 和 for 循环效率对比问题
  4. 面试官:聊一下二分法
  5. Spring Boot 最佳实践(一)快速入门
  6. windows自定义快速启动(运行)命令
  7. CTF【解密】字符串flag被加密成已知新字符串,请解密出flag,可以使用Python解码出WriteUp
  8. python 多线程 popen ping指定IP是否在线 判断连通
  9. Oracle和sql语言,SQL语言的四种类型和ORACLE运算符
  10. 安卓开发文档_鸿蒙2.0,HarmonyOS开发体验!