Apache搭建web网站服务器
2016-12-21 22:05
531 查看
•apache服务器概述-安装
•配置web服务器-搭建LAMP环境
•修改web网站根目录-配置别名-虚拟目录
•实现apache打开软链接功能-禁止显示目录列表-用户认证
•apache虚拟主机基于-IP-域名-端口三种搭建方式
安装
主配置文件介绍:
yum 的方式搭建 LAMP 环境
LAMP=Linux(存在)+Apache(HTTPD 已安装)+Mysql+PHP
测试数据库:
测试apache是否支持php
LAMP环境,几种不同的安全访问机制的实现:
一、修改网站目录对应参数及权限:
修改网站默认根目录,并且设置访问权限,只有在我允许的范围之内可以访问
修改网站默认根目录
设置文档目录为/var/www/html/bbs
允许所有人访问/var/www/html/bbs 目录
二、使用别名,引用网站根目录以外的路径。
将/usr/local/phpdata 目录通过虚拟目录功能添加到网站根目录。当访问http://192.168.1.63/ phpdata/ 时,就可以访问目录/usr/local/phpdata中的内容。
注:apache的别名也叫虚拟目录
语法:
Alias URL路径 PATH物理路径
创建测试数据:
•配置web服务器-搭建LAMP环境
•修改web网站根目录-配置别名-虚拟目录
•实现apache打开软链接功能-禁止显示目录列表-用户认证
•apache虚拟主机基于-IP-域名-端口三种搭建方式
安装
yum -y install httpd
主配置文件介绍:
vim /etc/httpd/conf/httpd.conf ServerName 192.168.1.235:80 #服务器主机名 PidFile run/httpd.pid #apache #运行进程 ID 存放 Timeout 60 #超时时间,多少 s 没有反应就超时 KeepAlive Off #是否允许一个永久的链接,设置为 OFF 的时候,不 能保持连接功能,传输效率比较低,设置为 ON 时,可以提高服务器传输文件的效率,建议开启 MaxKeepAliveRequests 100 #设置 KeepAlive 为 ON 时,设置客户端每次连接允许 请求相应最大文件数,默认 100 个 KeepAliveTimeout 15 #超时时间,同一个客户端下一个请求 15s 没收到就 超时 Listen 80#监听端口,默认本地 IP,如果指定 ip 写上 IP:80 <IfModule prefork.c> StartServers8 #服务开始起启动 8 个进程 MinSpareServers5 #最小空闲 5 个进程 MaxSpareServers20 #最多空闲 20 个进程 ServerLimit256 #服务器允许配置进程数上线 MaxClients256 #最大连接数 256,超过要进入等候队列 MaxRequestsPerChild4000 #每个进程生存期内服务最大的请求数量,0 表示用不 结束 </IfModule> <Directory /> Options FollowSymLinks #Options Indexes 目录浏览FollowSymLinks 用连接 浏览 AllowOverride None #设置为 none,忽略.htaccess </Directory> LoadModule auth_basic_module modules/mod_auth_basic.so #载入的库,模块 Include conf.d/*.conf #conf.d 里面的 conf 文件也属有效配置文件 User apache #运行以哪个身份运行 Group apache #运行以哪个组的身份运行 ServerAdmin root@localhost #管理员邮箱 DocumentRoot "/var/www/html" #默认的主目录,如果改动要改动两处,Directory <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny #这里默认后者生效,也就是 deny 生效 Allow from all #这里说允许所有 </Directory> LogLevel warn #日志等级 DirectoryIndex index.html index.html.var #首页 AccessFileName .htaccess #access 文件名,也可以在这里定义伪静态、防盗链等,不建议在这个文件定义 AddDefaultCharset UTF-8 #支持的语言,默认编码 #配置文件的最后是虚拟主机的字段
yum 的方式搭建 LAMP 环境
LAMP=Linux(存在)+Apache(HTTPD 已安装)+Mysql+PHP
yum install httpd mysql mysql-server php php-mysql –y
测试数据库:
service mysqld start chkconfig mysqld on mysql mysql> show databases; mysql>exit;
测试apache是否支持php
cd /var/www/html/ vim index.php <?php phpinfo(); ?>
LAMP环境,几种不同的安全访问机制的实现:
一、修改网站目录对应参数及权限:
修改网站默认根目录,并且设置访问权限,只有在我允许的范围之内可以访问
修改网站默认根目录
设置文档目录为/var/www/html/bbs
vim /etc/httpd/conf/httpd.conf DocumentRoot "/var/www/html/bbs"
允许所有人访问/var/www/html/bbs 目录
#目录与访问控制: <Directory "/var/www/html/bbs"> #子目录会继承这个目录的属性 Options FollowSymLinks #Options:Indexes:目录浏览 AllowOverride None #Followsymlinks:可以用连接 Order allow,deny Allow from 192.168.18.0/24 #从哪里来的允许 Deny from 192.168.16.0/24 #从哪里来的拒绝 Allow from .baidu.com #Allow,Deny都会读取,如果有冲突和未说明的时候按照Order选项逗号后面的那个为准。 谁写到后面,谁的优先级高。 </Directory>
二、使用别名,引用网站根目录以外的路径。
将/usr/local/phpdata 目录通过虚拟目录功能添加到网站根目录。当访问http://192.168.1.63/ phpdata/ 时,就可以访问目录/usr/local/phpdata中的内容。
注:apache的别名也叫虚拟目录
语法:
Alias URL路径 PATH物理路径
创建测试数据:
mkdir /usr/local/phpdata echo "This Alias PHPdata" > /usr/local/phpdata/index.html #修改配置文件: vim /etc/httpd/conf/httpd.conf # 在Alias下添加以下内容 Alias /phpdata/ "/usr/local/phpdata/" <Directory "/usr/local/phpdata/"> Options Indexes FollowSymLinks AllowOverride None Order deny,allow Allow from all </Directory> 注: d619 Alias /phpdata/ "/usr/local/phpdata/" #/phpdata/ 可以随意起。比如改/phpdata/ 为/php/ 则访问链接: http://192.168.1.63/php/[/code]
测试:service httpd restart http://192.168.1.63/phpdata/
三、当一个目录下没有默认首页时,访问http://192.168.1.63/phpdata/禁止显示目录列表vim /etc/httpd/conf/httpd.conf # 修改红色标记内容 328 # The Options directive is both complicated and important. Please see 329 # http://httpd.apache.org/docs/2.2/mod/core.html#options 330 # for more information. 331 # 332 Options -Indexes FollowSymLinks ###去除Indexes或者在前面加一个减号 333
四、通过用户认证的方式,对网站下/usr/local/phpdata/目录进行保护。 设置/usr/local/phpdata/目录,只能通过用户名密码方式访问。vim /etc/httpd/conf/httpd.conf #在需要使用用户验证的目录的相关Directory段落添加以下红色标记内容: Alias /phpdata/ "/usr/local/ phpdata /" <Directory "/usr/local/ phpdata /"> Options Indexes FollowSymLinks AllowOverride None Order deny,allow Allow from all authtype basic # authtype命令:指定认证类型为:basic。 authname "my web site" # AuthName命令:指定认证区域名称。区域名称是在提示要求认证的对话框中显示给用户的。 authuserfile /etc/httpd/conf/passwd.secret AuthUserFile命令:指定一个包含用户名和密码的文本文件,每行一对。 #require user tom #require user tom bob require valid-user # require命令:指定哪些用户或组才能被授权访问。如: #require user user1 user2(只有用户user1和user2可以访问) # require valid-user (在AuthUserFile指定的文件中任何用户都可以访问) </Directory>
利用Apache附带的程序htpasswd,生成包含用户名和密码的文本文# htpasswd -cm 存放用户名和密码的文件名 用户名 htpasswd -cm /etc/httpd/conf/passwd.secret tom New password: 123456 Re-type new password: 123456 Adding password for user tom #第一个生成用户名和密码,需要创建文件,因此需要加-c参数 htpasswd -h #查看参数 -c Create a new file. -m Force MD5 encryption of the password. htpasswd -m /etc/httpd/conf/passwd.secret bob New password: 123456 Re-type new password: 123456 Adding password for user bob cat /etc/httpd/conf/passwd.secret #查看内容 tom:$apr1$WJicnaIz$ejqYMmcqukEMsAVEjLcKf. bob:$apr1$S8pXfxJh$tletPNMKd33WZXqdkSLFy0 测试: [root@xuegod63 conf]# service httpd restart http://192.168.1.63/phpdata/[/code]
六 、配置apache虚拟主机,实现在一台服务器上运行多个网站
apache虚拟主机实现有三种方法:
1、通过不同的IP地址
2、通过不同的域名
3、通过不同的端口号
三种都需要把虚拟主机功能打开:
vim /etc/httpd/conf/httpd.conf改: #NameVirtualHost *:80 为: NameVirtualHost *:80 方法1: 通过不同的IP地址,解析不同域名 给服务器增加IP(另一个域名解析出来的那个IP)。 ifconfig eth0:1 192.168.0.56 netmask 255.255.255.0 mkdir /var/www/html/bbs/ echo "bbs.xuegod.cn" > /var/www/html/bbs/index.html 修改httpd.conf #vim httpd.conf 在文件的最后,添加以下内容 <VirtualHost 192.168.0.63:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /var/www/html/ ServerName dummy-host.example.com ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common </VirtualHost> <VirtualHost 192.168.0.56:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /var/www/html/bbs/ ServerName dummy-host.example.com ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common </VirtualHost> 测试: [root@xuegod63 conf]# service httpd restart http://192.168.1.56/ http://192.168.1.63/
方法二:
通过不同域名:
在域名管理后台,修改DNS配置,www.xuegod.com与bbs.xuegod.com解析成相同的IP。
修改httpd.confvim httpd.conf <VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /var/www/html/ ServerName www.xuegod.com ErrorLog logs/www.xuegod.com-error_log CustomLog logs/www.xuegod.com-access_log common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /var/www/html/bbs/ ServerName bbs.xuegod.com ErrorLog logs/bbs.xuegod.com-error_log CustomLog logs/bbs.xuegod.com-access_log common </VirtualHost> vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.63 xuegod63.cn 192.168.1.63 www.xuegod.com 192.168.1.63 bbs.xuegod.com 192.168.1.64 xuegod64.cn
测试:service httpd restart elinks www.xuegod.com elinks bbs.xuegod.com
方法3:基于端口配置虚拟主机:vim /etc/httpd/conf/httpd.conf 改: Listen 80 为: Listen 80 Listen 81 # 更改为你要添加的多个端口 再建立两个虚拟主机: vim /etc/httpd/conf/httpd.conf # 在文件的最后添加 <VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /var/www/html/ ServerName www.example.com ErrorLog logs/www.example.com-error_log CustomLog logs/www.example.com-access_log common </VirtualHost> <VirtualHost *:81> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /var/www/html/bbs/ ServerName bbs.example.com ErrorLog logs/bbs.example.com-error_log CustomLog logs/bbs.example.com-access_log common </VirtualHost>
测试:service httpd restart http://192.168.1.63/ http://192.168.1.63:81/
相关文章推荐
- 使用Apache搭建Web网站服务器
- Lighttpd+Squid+Apache搭建高效率Web服务器[转]
- apNginx 0.5.35 + PHP 5.2.5(FastCGI)搭建胜过Apache 10倍的Web服务器
- 搭建高性能Web服务器Nginx,10倍于Apache---Nginx+Php(FastCgi模式)
- 中小型web网站架构初探之四:前端SQUID高速WEB缓存服务器的搭建
- Lighttpd+Squid+Apache搭建高效率Web服务器
- Nginx0.5.33+PHP5.2.5(FastCGI)搭建胜过Apache10倍的Web服务器
- Lighttpd+Squid+Apache搭建高效率Web服务器
- Nginx 0.7.x + PHP 5.2.9(FastCGI)搭建胜过Apache十倍的Web服务器
- Lighttpd+Squid+Apache搭建高效率Web服务器
- web服务器中默认首页和默认网站的配置(以apache服务器为例)
- 搭建Apache + Mongrel 最佳RoR Web服务器平台
- Lighttpd+Squid+Apache搭建高效率Web服务器
- Lighttpd+Squid+Apache搭建高效率Web服务器
- 搭建高性能Web服务器Nginx,10倍于Apache---Nginx+Php(FastCgi模式)
- Lighttpd+Squid+Apache搭建高效率Web服务器
- ginx + PHP搭建可承受3万以上并发连接数,胜过Apache 10倍的Web服务器
- Lighttpd+Squid+Apache搭建高效率Web网络服务器
- Nginx 0.7.x + PHP 5.2.9(FastCGI)搭建胜过Apache十倍的Web服务器
- Lighttpd+Squid+Apache搭建高效率Web服务器