首页 > 代码库 > linux搭建web服务器
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
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.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 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.com和www.accp.com:8080可以分别访问两个主页
本文出自 “NE之路” 博客,请务必保留此出处http://332162926.blog.51cto.com/8831013/1533407