天天看点

【LINUX】linux搭建web服务器

linux httpd

假设服务器地址为192.168.80.20/24

1.   将准备安装的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/"                    虚拟目录对应物理路径

<directory  "/var/www/icons">

options   indexes  multiviews   followsymlinks

allowoverride   none

order   allow,deny                      白名单

allow   from   all                      允许所有人访问

require   all   granted                   给目录授权

</directory>

/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/"

<directory  "/usr/share/doc/">

options   indexes  multiviews   followsymlinks

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  {

        file  "accp.com.zone";

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

@       in soa @  accp(

                                        1d      ; refresh

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

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

vi   vhost.conf       

输入以下脚本:

<virtualhost  192.168.80.20:80>

    serveradmin  [email protected]

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

    servername  www.benet.com            域名

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

    customlog   logs/bjxh.com-access_log common

</virtualhost>

<directory"/opt/benet/">                             授权目录

    options  indexes  multiviews  followsymlinks

    allowoverride  none

    order  allow,deny                               白名单

    allow  from  all

    require  all  granted

<virtualhost  192.168.80.11:80>

    serveradmin  [email protected]

    documentroot  /opt/accp/

    servername  www.accp.com

    errorlog  logs/xhce.com-error_log

    customlog  logs/xhce.com-access_log common

<directory  "/opt/accp/">

    options  indexes  multiviews  followsymlinks

    order  allow,deny

(或者直接为/opt/授权

<directory  "/opt">

    options  none

</directory>)

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

cd  /opt/

mkdir   benet

mkdir    accp

echo    “<h1>this  is benet</h1>   >   /opt/benet/index.html

echo    “<h1>this  is  accp</h1>   >  /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

<directory"/opt/benet/">

    options indexes multiviews followsymlinks

    allowoverride none

    order allow,deny

    allow from all

    require all granted

<virtualhost192.168.80.20:80>

    [email protected]

    documentroot /opt/benet/

    servername www.benet.com

    errorlog logs/benet.com-error_log

    customlog logs/benet.com-access_log common

<directory"/opt/accp/">

<virtualhost192.168.80.20:8080>

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