Linux 系统的应用越来越广泛了,学习 linux 系统的网管兄弟也有增加的趋势。很久以前就有些想法,要将自己学的 linux 知识整理一下。最近,终于下定决心,挤出时间开始动手写些东西了。虽然不一定好,不过,留些笔记至少可以方便记忆。
Apache Linux 服务里面用得最多的之一,今天我们就从它开始来一次 Linux 服务部署之旅。
本文分以下章节介绍:
1. 安装Apache
2. 配置Apache
3. 配置虚拟主机
4. 管理日志文件
5. 配置PHP运行环境
 
一、安装 Apache
下载地址: http://httpd.apache.org/
1. 安装 Apache
# tar  zxvf  httpd- 2.2.11 .tar.gz
# cd  httpd- 2.2.11
# ./configure  --prefix=/usr/local/apache  --enable-so
// 编译时加上加载模块参数 --enable-so
# make
# make  install
 
2. 配置系统启动时自动启动 Apache 服务。
# vi  /etc/rc.d/rc.local
  // rc.local 上加入一行 /usr/local/apache/bin/apachectl k  start
Linux服务器部署系列之一—Apache篇(上)_第1张图片
 
二、配置 Apache
1. 修改 httpd.conf 文件
# vi  /usr/local/apache/conf/httpd.conf
1 设置根目录的路径
根目录是指 Apache 存放配置文件和日志文件的目录,配置参数为 ServerRoot ,默认位于“ /usr/local/apache ”。命令如下:
Linux服务器部署系列之一—Apache篇(上)_第2张图片
2 设置监听 IP 地址及端口号
默认侦听本机所有 IP 地址的 TCP80 端口,命令如下:
Listen 80
用户也可以按自己的需求,使用多个 Listen 语句在多个地址和端口上侦听客户端请求。比如:
Listen 192.168.99.9:80
Linsten 172.16.0.20:8080
3 设置系统管理员 E-mail
使用 ServerAdmin 参数设置管理员 E-mail ,比如管理员的 Email 地址为 [email protected]
4 设置服务器主机的名称
参数 ServerName 用来设置服务器的主机名称,如果没有域名则填入服务器的 IP 地址,比如服务器的 IP 地址为 192.168.99.9
5 设置主目录的路径
用户可以使用参数 DocumentRoot 配置服务器主目录默认路径,比如,主目录路径为:
6 设置默认文件
Apache 的默认文件名为 index.html ,可以使用 Directory Index 参数来配置,比如,将 index.php 设置为默认文件名:
7 )测试:
打开浏览器,输入地址: http://192.168.99.9 ,可以打开站点了:
Linux服务器部署系列之一—Apache篇(上)_第3张图片
 
2. 配置目录权限
使用 目录路径 > 设置目录的权限。比如:
  /var/www/icons >
Options  Indexes  MultiViews
AllowOverride  None
Order  allow,deny
Allow  from  all
说明:
1 )定义目录特性选项 Options
可选参数:
Indexes :该特性表明目录允许“目录浏览”;
MultiViews :该特性表明目录允许内容协商的多重试图;
All :包含了除 MultiViews 外的所有特性;
ExecCGI :该特性表明允许在该目录下执行 CGI 脚本;
FollowSymLinks :该特性表明允许在该目录下使用符号连接。
2 .htaccess 文件
可以通过 .htaccess 文件(访问控制文件)设置目录的权限。
AccessFileName  .htaccess
配置参数 AllowOverride 指定目录的 .htaccess 文件中指令的类型,包括 All None Options FileInfo AuthConfig Limit 的任意组合。一般将 AllowOverride 设置为“ None ”,禁止使用 .htaccess 文件,当 AllowOverride 参数为 All 时, .htaccess 文件可以覆盖任何以前的配置。
3 )设置访问控制
使用 Order 选项来定义访问权限。
比如以下语句表明允许所有客户机的访问:
Order  allow,deny
Allow  from  all
以下语句表明只允许网段 192.168.99.0/24 的客户机访问,但 IP 地址为 192.168.99.254 这个客户机除外:
Order  allow,deny
Allow from  192.168.99.0/24
Deny from  192.168.99.254
用户可以根据需要,按上述方法配置自己的目录权限。
 
3. 创建虚拟目录
使用 Alias 选项创建虚拟目录,比如,建立“ /icons/ ”这个虚拟目录,其对应的物理路径为“ /var/www/icons/ ”:
Alias  /icons/  “/var/www/icons/”
 
4. 用户认证
比如,有一个名为 myweb 的虚拟目录,其对应的物理路径是“ /usr/local/myweb ”,现对其启用用户认证功能,只允许用户 Tonyguo Wayne 访问。
1 )建立虚拟目录并设置用户认证:
Linux服务器部署系列之一—Apache篇(上)_第4张图片
2) 建立口令文件并为用户设置口令
Linux服务器部署系列之一—Apache篇(上)_第5张图片
-c 选项表示无论口令文件是否已经存在,都会重新写入文件并删除原内容。所以第二个用户 wayne 不需要使用 -c 选项。
3 )测试
在浏览器中输入: http://192.168.99.9/myweb ,可以看到如下对话框:
Linux服务器部署系列之一—Apache篇(上)_第6张图片
输入用户名和密码后就可以访问网站了:
Linux服务器部署系列之一—Apache篇(上)_第7张图片
 
三、配置虚拟主机
1. 配置基于 IP 的虚拟主机
1 IP 地址相同,但端口号不同的虚拟主机配置
比如使用 192.168.99.9 的两个不同端口 80 8080 发布两个不同站点 , 虚拟主机分别对应的目录为 /usr/local/apache/htdocs/web1 /usr/local/apache/htdocs/web2
Listen 80
Listen 8080
  192.168.99.9:80>
  ServerSignature  email
  DocumentRoot  /usr/local/apache/htdocs/web1
  DirectoryIndex  index.html  index.htm
  LogLevel  warm
  HostNameLookups  off
  192.168.99.9:8080>
  ServerSignature  email
  DocumentRoot  /usr/local/apache/htdocs/web2
  DirectoryIndex  index.html  index.htm
  LogLevel  warm
  HostNameLookups  off
2 )配置基于域名的虚拟主机
比如服务器有两个 IP 地址 192.168.99.9 192.168.99.10 ,使用这两个 IP 创建两台虚拟主机,虚拟主机分别对应的目录为 /usr/local/apache/htdocs/web1 /usr/local/apache/htdocs/web2 。设置方法如下:
  192.168.99.9>
  ServerName  192.168.99.9:80
  DocumentRoot  /usr/local/apache/htdocs/web1
  DirectoryIndex  index.html  index.htm
  192.168.99.10>
  ServerName  192.168.99.10:80
  DocumentRoot  /usr/local/apache/htdocs/web2
  DirectoryIndex  index.html  index.htm
 
2. 配置基于域名的虚拟主机
比如有两个域名 guoxuemin.cn tonyguo.com 需要使用同一台服务器 192.168.99.9 ,那么可以这样配置:
NameVirtualHost  192.168.99.9
  www.guoxuemin.cn>
  ServerName  www.guoxuemin.cn:80
  ServerAdmin  [email protected]
  DocumentRoot  /usr/local/apache/htdocs/web1
  DirectoryIndex  index.html  index.htm
  ErrorLog  logs/web1/error_log
  Customlog  logs/web1/access_log  combined
  www.tonyguo.com>
  ServerName   www.tonyguo.com:80
  ServerAdmin  [email protected] 
DocumentRoot  /usr/local/apache/htdocs/web2
  DirectoryIndex  index.html  index.htm
  ErrorLog  logs/web1/error_log
  Customlog  logs/web1/access_log  combined
 
未完,待续。。。