linux搭建web服务器原理,【LINUX】linux搭建web服务器

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可以分别访问两个主页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java核心类库篇7——多线程

Java核心类库篇7——多线程 1、程序、进程和线程 程序 - 数据结构 算法,主要指存放在硬盘上的可执行文件进程 - 主要指运行在内存中的可执行文件线程就是进程内部的程序流 操作系统内部支持多 进程的,而每个进程的内部又是支持多线程的 2、线程的创…

Java核心类库篇8——网络编程

Java核心类库篇8——网络编程 1、七层网络模型 OSI(Open System Interconnect),即开放式系统互联,是ISO(国际标准化组织)组织在1985 年研究的网络互连模型。 当发送数据时,需要对发送的内容按…

linux网站如何添加swf支持,linux下安装swftools和openOffice

1.openOffice下载地址:http://download.openoffice.org/all_rc.html#untested-full 下载 Linux 32-bit Intel rpm 包 版本自选 2.安装openOffice 1】 tar -zxvf OOo_3.2.1_Linux_x86_install-rpm-wJRE_zh-CN.tar.gz 2】 cd OOO320_m18_native_packed-1_zh-CN1.openO…

Java番外篇1——正则表达式

Java番外篇1——正则表达式 1、什么是正则表达式 正则表达式定义了字符串的模式正则表达式可以用来搜索、编辑或处理文本正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别 2、正则表达式规则 2.1、普通字符 普通字符包括没有显式指定为元字符的所…

linux 1号硬盘不能用,linux 挂载硬盘的疑问 : IDE1 上的接口无法使用.

状况说明:我将在linux系统上挂载多块硬盘(目前是redhat9).我通过3块硬盘试验.问题出现:无论如何链接 IDE1 上的硬盘, /dev/hdc 都无法 mount.数据:1. 使用 fdisk -l : 不会显示接到 IDE1 上的硬盘(目前只试验了在 IDE1 上接 1个硬盘,用 master 端口).2. 使用 fdisk /dev/hdc : …

Java番外篇2——jdk8新特性

Java番外篇2——jdk8新特性 1、Lambda 1.1、无参无返回值 public class Test {interface Print{void print();}public static void main(String[] args) { // Print printnew Print() { // Override // public void print() { // …

linux同花顺乱码,打开同花顺软件全是问号

官方答案:字体库字体乱码【原因分析】:系统字体缺失,损坏。【解决方案】方案一:使用360电脑门诊进行修复1.打开【360安全卫士】—【电脑专家】搜索乱码,然后会弹出如下六个解决方案,根据当前计算机的故障现…

Java番外篇3——线程池

Java番外篇3——线程池 1、多线程产生的问题 多次创建并销毁线程。而创建并销毁线程的过程势必会消耗内存 2、线程池 降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗提高系统响应速度,当有任务到达时,通…

嵌入式linux组件,嵌入式Linux系统的几大组件!

原标题:嵌入式Linux系统的几大组件!本文概述了Linux系统的几大组件,描述了这些组件之间的关系。文章解释了术语,并描述看似很基础的细节。每个Linux系统都有许多主要组件。其中一个组件(引导加载程序)从技术上讲是Linux之外的&…

linux iptables找不到,centos /etc/sysconfig/下找不到iptables文件解决方法

本想做些防火墙策略。防火墙策略都是写在/etc/sysconfig/iptables文件里面的。可我发现我也没有这个文件。[rootxiaohuai /]# cd /etc/sysconfig/[rootxiaohuai sysconfig]# lsatd firstboot irqbalance network-scripts rhn sysstatauditd grub kdump ntpd rngd sysstat.iocon…

Java番外篇4——BigInteger与BigDecimal

Java番外篇4——BigInteger与BigDecimal 为了解决大数运算的问题 操作整型:BigInteger操作小数:BigDecimal 1、BigInteger 方法声明功能介绍public BigInteger abs()返回大整数的绝对值public BigInteger add(BigInteger val)返回两个大整数的和publ…

linux cd 命令案例,15个关于Linux的‘cd’命令的练习例子

命令名称:cd代表:切换目录使用平台:所有Linux发行版本执行方式:命令行权限:访问自己的目录或者其余指定目录级别:基础/初学者1.从当前目录切换到/usr/local avitecmint:~$ cd /usr/local avitecmint:/usr/l…

c语言字符串strchr,Strchr()C语言字符串处理功能

strchr()函数不如strcpy(),strcat(),strcmp(),strupr(),strlwr(),strlen()直观c strchr函数,因此需要代码理解:代码来自C语言开发入门和项目实战书:#include#includeint main(){字符字符串[50];char * str&…

Java数据库篇1——数据库配置

Java数据库篇1——数据库配置 1、数据库 数据库(DataBase) 就是存储和管理数据的仓库本质是一个文件系统, 还是以文件的方式,将数据保存在电脑上 2、数据库的优点 存储方式优点缺点内存速度快不能够永久保存,数据是临时状态的文件数据是可以永久保存的使用IO流操作文件, 不…

C语言中输入123求位权,数反转 - it610.com

32位系统c语言中:char取值范围:-128~127unsigned char取值范围:0~255int取值范围:-2147483648~2147483647unsigned int取值范围:0~429496729564位系统下C语言中int还是占4字节,32位,与32位系统中没有区别64位系统下,采用64位编译器…

Java数据库篇2——数据库基本操作

Java数据库篇2——数据库基本操作 1、启动、停止、服务 net start mysqlnet stop mysql2、登入登出 本地 Mysql -u用户名 -p密码Mysql -u用户名 -p回车 密码远程 Mysql -hIP地址 -u用户名 -p密码Mysql -hIP地址 -u用户名 -p回车 密码退出 Quit Exit

c语言加密shell脚本,shell脚本加密

如何保护自己编写的shell程序要保护自己编写的shell脚本程序,方法有很多,最简单的方法有两种:1、加密 2、设定过期时间,下面以shc工具为例说明:一、下载安装shc工具shc是一个加密shell脚本的工具.它的作用是把shell脚本…

Java数据库篇3——SQL

Java数据库篇3——SQL 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库 查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统 1、SQL分类 分类说明数据定义语言简称DDL(Data De…

c语言分配飞机10个座位,leetcode1227(飞机座位分配)--C语言实现

对于第一个乘客来说 他有三种选择坐在正确的(自己的位置), 那么后面的乘客都不会乱,所以第n个乘客可以坐到自己的位置, 1/n * 1.坐在第n个乘客的位置,那么第n个乘客肯定无法坐到自己的位置, 1/n * 0.坐在[1,n-1]之间的某个位置K.对于第K个乘客而言&#…

Java数据库篇4——表的约束

Java数据库篇4——表的约束 1、非空约束 字段不允许为空 #创建表的时候添加 Create table 表名(列1 数据类型 not null,列2 数据类型,列3 数据类型 ); #创建表以后添加 Alter table 表名 modify 列名 数据类型 not null; #删除 Alter tabl…