首页 > 代码库 > linux搭建web服务器

linux搭建web服务器

linux httpd

假设服务器地址为192.168.80.20/24

  1. 1.   将准备安装的httpd软件包共享给everyone

(1)linuxmount.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

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

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模块提供的功能,用LoadModulehttpd.conf文件或包含的conf文件中动态加载某个模块。让 Apache 可以支持DSO模式

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

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

--with-mpm=worker// apacheworker方式运行

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

AllowOverride   None

Order   allow,deny

Allow  from  all

AuthName   "hello"

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

AuthUserFile   /usr/local/apache/user                 设置用于保存用户账号、密码的认证文件路径(htpasswd

require valid-user                        要求只有认证文件中的合法用户才能访问。valid-user表示所有合法用户

#Require  all   grante

</Directory>

保存

添加有访问权限的用户

./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.comwww.accp.com两个网址,IP均为192.168.80.20 .

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

vi   vhost.conf       

输入以下脚本:

<VirtualHost  192.168.80.20:80>

    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

</VirtualHost>

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

    Options  Indexes  MultiViews  FollowSymLinks

    AllowOverride  None

    Order  allow,deny                               白名单

    Allow  from  all

    Require  all  granted

</Directory>

 

<VirtualHost  192.168.80.11:80>

    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

</VirtualHost>

<Directory  "/opt/accp/">

    Options  Indexes  MultiViews  FollowSymLinks

    AllowOverride  None

    Order  allow,deny

    Allow  from  all

    Require  all  granted

</Directory>

(或者直接为/opt/授权

<Directory  "/opt">

    AllowOverride  None

    Options  None

    Require  all  granted

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

</Directory>

<VirtualHost192.168.80.20:80>

    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

</VirtualHost>

 

<Directory"/opt/accp/">

    Options Indexes MultiViews FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

    Require all granted

</Directory>

<VirtualHost192.168.80.20:8080>

    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

</VirtualHost>

红字为跟以上不同的地方

保存,重启服务。

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

 


本文出自 “NE之路” 博客,请务必保留此出处http://332162926.blog.51cto.com/8831013/1533407