`
xuebingnanmm
  • 浏览: 176511 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

CentOS Apache配置详解

阅读更多

要想在linux上实现网页服务器(www)需要Apache这个服务器软件,不过Apache仅能提供最基本的静态网站数据而已,想要实现动态网站的话,最好还是要PHP与MySQL的支持,所以下面我们将会以LAMP(linux+Apache+MySQL+PHP)作为安装与设置的介绍。

LAMP所需软件与其结构
httpd mysql mysql-Server php php-devel php-mysql
可以用rpm包安装,或者直接用yum安装
#yum install httpd mysql-server php php-devel php-mysql
先来了解一下apache 2.0这个版本的相关结构,这样才能知道如何处理我们的网页数据
/etc/httpd/conf/httpd.conf:最主要的配置文件,不过很多其他的distribution都将这个文件拆成数个小文件,分别管理不同的参数。但是最主要配置文件还是以这个文件名为主。
/etc/httpd/conf.d/*.conf:这个事CentOS的特色之一,如果你不想修改原始配置文件httpd.conf的话,那么可以将你自己的额外参数独立出来,而启动apache时,这个文件就会被读入到主要配置文件。
/usr/lib/httpd/modules:apache支持很多的模块,所以您想要使用的模块默认都放置在此目录
/var/www/html:这里是CentOS默认的“首页”所在目录。
/var/www/error:如果因为主机设置错误,或者是浏览器端要求的数据错误,在浏览器上出现的错误信息就已这个目录的默认信息为主。
/var/www/icons:提供apache的一些小图标
/var/www/cgi-bin :默认给一些可执行的CGI程序放置的目录
/var/log/httpd:默认apache的日志文件都放在这里,对于流量大的网站来说,这个目录要很小心,因为这个文件很容易变的很大,您需要足够的空间哦
/usr/sbin/apachectl:这是Apache的主要执行文件,这个执行文件其实是shell script,它可以主动检测系统上的一些设置值,好让您启动Apache时更简单
/usr/sbin/httpd:这是主要的apache的二进制文件
/usr/bin/htpasswd:当您想登陆某些网页时,需要输入账号与密码。那么Apache本身就提供一个最基本的密码保护方式。该密码的产生就是通过这个命令实现的

至于MySQL方面,您需要知道的几个重要目录与文件有以下几个:
/etc/my.cnf:这是Mysql的配置文件,包括您想要进行mysql数据库的最佳化,或者是正对mysql进行一些额外的参数指定,都可以在这个文件里实现
/usr/lib/mysql:这个目录是MySQL数据库放置的位置,当启动任何MySQL的服务器时,请务必记得在备份时,将此目录完整的备份下来。

另外,在PHP方面,应该了解以下几个文件。
/usr/lib/httpd/modules/libphp4.so:PHP提供给apache使用的模块,这个关系我们能否在apache网页上面设计php程序语言的最重要文件
/etc/httpd/conf.d/php.conf:你要不要手动将该模块写入Httpd.conf中呢?不需要,因为系统已经主动将php设置参数写入到这个文件中了,而这个文件会在apache重新启动时被读入。
/etc/php.ini:这是PHP的主要配置文件,包括PHP能不能允许用户上传文件,能不能允许某些低安全性的标志等,都在这个配置文件中设置。
/etc/php.d/mysql.ini /usr/lib/php4/mysql.so:PHP能否可以支持MySQL接口就看这两个文件了。这两个文件是由php-mysql软件提供的
/usr/bin/phpize /usr/include/php:如果您以后想要安装类似PHP加速器可以让浏览速度加快的话,那么这个文件与目录就需要存在,否则加速器软件没法用。

httpd.conf的基本设置
首先,你需要在/etc/hosts内需要有个一个完整的主机名,否则在重启apache服务时,会提示找不到完整的主机名。
httpd.conf的基本设置是这样的:
<设置项目>
      次设置项目内的相关参数
      。。。。
</设置项目>
例如,你想要针对首页/var/www/html提供额外的功能,那么可以进行如下设置:
<Directory "/var/www/html">
   Options Indexes
   ......
</Directory>

针对主机环境的设置项目
#vi /etc/httpd/conf/httpd.conf
ServerTokens OS
# 这个项目在告诉客户端WWW服务器的版本和操作系统,不需要改编它
#如果你不想告诉太多的主机信息,将这个项目的OS改成Minor

ServerRoot "/etc/httpd"
#这个是设置文件的最顶层目录,通常使用绝对路径,下面某些数据设置使用相对路径时
#就是与这个目录设置值有关的下层目录,不需要更改它
ServerRoot
设定Apache 安装的绝对路径
TimeOut
设定 服务器接收至完成的最长等待时间
KeepAlive
设定服务器是否开启连续请求功能,真实服务器一般都要开启
Port
设定http服务的默认端口。
User/Group
设定 服务器程序的执行者与属组,这个一般是apache

下面我们就针对Apache做几个实验
1:我们测试把默认网站目录改到root家目录下
新建/root/website目录
#mkdir -p /root/website
#echo "website page" >> /root/website/index.html
#vi /etc/httpd/conf/httpd.conf
找到 DocumentRoot "/var/www/html" 这一段   //apache的根目录
把/var/www/html 这个目录改到 /root/website
在找到 <Directory "/var/www/html"> //定义apache /var/www/html这个区域
把 /var/www/html改成/root/website
这样我们就把apahce的默认路径改掉了
然后重启服务
#service httpd restart  
//这里在你重启服务的时候,可能会报错,说找不到目录,这个主要是由于selinux导致的
那怎么解决呢?有2个办法,关掉selinux  
#setenforce 0
或者更改/root/website这个文件的selinux属性,让它匹配httpd这个服务器的要求
怎么改?我们可以复制/var/www/html这个目录的selinux属性
#chcon -R --reference /var/www/html /root/website
然后在重启服务,之后你就看到它没有报错了
不过你去访问localhost的时候,会发现访问拒绝 这是为什么呢?主要是因为你的/root的权限是750,ahache这个用户没有权限访问,你需要更改掉权限,可以这样改
#chmod -R 755 /root
然后去访问 发现正常了

2:基于名称的虚拟主机
需要两个域名解析到你的服务器,对应关系是
/var/www/server             server.example.com
/var/www/client                client.example.com
当访问这两个域名时,可以分别显示出不同文件里面主页的内容
#echo "server page" >> /var/www/server/index.html
#echo "client page" >> /var/www/client/index.html
然后我们编辑一个配置文件
#vi /etc/httpd/conf.d/virtual.conf //记住conf.d里面的内容也是apache的配置文件
添加如下内容:
NameVirtualHost 192.168.76.133:80

<VirtualHost 192.168.76.133:80>
ServerName service.example.com
DocumentRoot /var/www/server
</VirtualHost>

<VirtualHost 192.168.76.133:80>
ServerName client.example.com
DocumentRoot /var/www/client
</VirtualHost>
#service httpd restart
这样基于名称的虚拟主机就配置好了
如果你没有DNS你可以再你的机器上hosts文件里加记录 linux在/etc/hosts这个文件 windows在C:\windows\system32\drivers\etc\hosts文件
加上这两行
192.168.76.133    server.example.com
192.168.76.133    client.example.com
这样你在去测试,就会发现访问不同的域名显示不同的内容了 这样基于名称的虚拟主机就配置好了!

3:基于IP地址的虚拟主机
先添加一个临时网卡
#ifconfig eth0:0 192.168.76.132 //临时使用,重启后就会消失
然后便捷virtual.conf文件
#vi /etc/httpd/conf.d/virtual.conf
把内容修改为
#NameVirtualHost 192.168.76.133:80

<VirtualHost 192.168.76.133:80>
ServerName service.example.com
DocumentRoot /var/www/server
</VirtualHost>

<VirtualHost 192.168.76.132:80>
ServerName client.example.com
DocumentRoot /var/www/client
</VirtualHost>
让后你在用ip访问,发现也能显示不同的内容,或者你编辑hosts文件,用域名访问也没问题
这样基于IP地址的虚拟主机也成功了!

4:别名
在/etc/httpd/conf/httpd.conf里加入
Alias /test "/root/website/"    // 别名 这样你用192.168.76.133/test访问 也会显示192.168.76.133的页面
这个地方需要注意的就是/test 还是/test/ 这个是用区别的 你用/test 那么你访问的时候只能用192.168.76.133/test访问   如果你用/test/ 那么192.168.76.133/test/访问,而/test将不会放你访问
忘了这里你的先把/etc/httpd/conf.d目录里面刚刚设置的虚拟目录注释掉 不然没法访问,是因为做了虚拟目录,而httpd.conf里面的设置就无法访问 当然可以用localhost来访问,其他的访问都不行

5:实现网页的资源下载
首先添加别名
#vi /etc/httpd/conf/httpd.conf
在Alias /test "/root/website/" 后面加入
Alias /down "/var/ftp/pub"
让后对/var/ftp/pub区域设置参数
<Directory "/var/ftp/pub">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
在Options 加入 MultiViews   //没有index时自动列出目录文档
然后重启服务,这样http://192.168.76.133/down/里面就可以列出/var/ftp/pub里面的文件了,试着点一个另存为,是否可以下载? 呵呵 成功!

6:.htpasswd的实现
#vi /etc/httpd/conf/httpd.conf
我们针对刚刚做的/var/ftp/pub来做
加入如下信息
Alias /down "/var/ftp/pub/"
<Directory "/var/ftp/pub">
    Options Indexes MultiViews
    AllowOverride AuthConfig
    Order allow,deny
    Allow from all
</Directory>
<Directory "/var/ftp/pub">
AuthType Basic
AuthName "this is test"
AuthUserFile /etc/httpd/htpasswd
Require User test
</Directory>
然后重启httpd服务,
让后生成.htpasswd用户密码
htpasswd -c /etc/httpd/htpasswd test
让后去访问192.168.76.133/down会需要密码
这样就成功了

分享到:
评论

相关推荐

    CentOS Apache配置详解 文字说明

    或者直接用yum安装#yum install httpd mysql-server php php-devel php-mysql先来了解一下apache 2.0这个版本的相关结构,这样才能知道如何处理我们的网页数据/etc/httpd/conf/httpd.conf:最主要的配置文件,不过很...

    CentOS下Apache配置多域名或者多端口映射

    ### CentOS 下 Apache 配置多域名或多端口映射详解 #### 一、概述 在 CentOS 系统中,Apache 是一个广泛使用的 Web 服务器软件,它可以用来托管多个不同的网站或应用服务。为了实现这一点,我们需要对 Apache 进行...

    Centos11+Apache+Mysql+Php安装配置详解.docx

    Centos11+Apache+Mysql+Php安装配置详解.docx

    Centos11+Apache+Mysql+Php安装配置详解.pdf

    Centos11+Apache+Mysql+Php安装配置详解.pdf

    Linux中Apache的配置详解

    ### Linux中Apache的配置详解 #### 一、Apache概述与特点 Apache是一款广泛使用的Web服务器软件,它在Linux操作系统上非常流行。Apache以其强大的功能、稳定性以及灵活性而著称,适用于多种平台,并支持HTTP 1.1...

    Centos 64位PHP5.4 Apache Web云服务器操作文档详解

    版本:centos 6.3 64位/php5.4-apache2-mysql5.5-vsftpd 1、软件安装方式 2、云服务器配置要求 3、软件版本号、开源协议列表 4、MYSQL及FTP密码 5、软件目录及配置列表 6、软件操作命令汇总 7、开机自启动 8...

    CentOS7 syslog日志转发配置.docx

    ### CentOS 7 syslog日志转发配置详解 #### 一、Syslog简介 Syslog是一种广泛应用于网络设备的日志记录协议,主要用于将系统日志信息发送到特定的日志服务器上进行集中管理和监控。这对于大型网络环境来说尤其重要...

    CentOS+Nginx配置详解

    【Nginx 配置详解】在 CentOS 6.5 环境下,配置 Nginx 1.6.2 可以实现多种高级功能,包括 SSL 双向认证、负载均衡和反向代理。以下是一份详细的配置步骤指南。 ### 1. 安装与准备 首先,确保你的系统是 CentOS 6.5...

    Vbox虚拟机装centos7过程详解配置桥接网络

    CentOS 7 虚拟机安装和桥接网络配置详解 在虚拟机中安装 CentOS 7 并配置桥接网络是非常重要的步骤,本文将详细介绍整个过程。 虚拟机安装 CentOS 7 首先,我们需要在 VirtualBox 中安装 CentOS 7。启动 ...

    centosApache搭建多个站点方法.pdf

    ### CentOS 下 Apache 搭建多个站点的方法 #### 一、引言 随着互联网技术的发展,许多企业或个人用户需要在同一台服务器上部署多个网站,这不仅能够节省资源,还能提高管理效率。Apache 作为一款广泛使用的开源 Web...

    centos7如何以源码方式安装Apache

    ### CentOS 7 以源码方式安装 Apache 及其配置详解 #### 一、源码安装 Apache 的背景及优势 在 CentOS 7 中,通过源码方式安装 Apache HTTP Server 是一种常见且灵活的方法。这种方式相较于使用包管理工具如 `yum`...

    cacti安装与配置详解

    在CentOS/RHEL系统中,使用`yum install rrdtool net-snmp`。 3. **下载与解压Cacti**:你可以从Cacti的官方网站获取最新版本的源代码包,然后使用`tar -zxvf cacti-x.x.x.tar.gz`命令解压。 4. **配置Cacti**:...

    centos配置openmeetings

    以上就是配置CentOS系统以运行OpenMeetings所需的关键知识点,包括系统环境的准备、必备软件的安装、数据库的配置以及安全措施。这个过程需要一定的Linux和服务器管理经验,确保每个步骤都正确执行,才能成功搭建并...

    Apache-tomcat-8.0.0 for centos

    **Apache Tomcat 8.0.0 for CentOS详解** Apache Tomcat是一款开源的Java Servlet容器,主要用于部署和运行Java Web应用程序。在这个版本中,我们关注的是`Apache-tomcat-8.0.0`,这是一个在CentOS 7操作系统环境下...

    Centos7-64位全新安装Apache和PHP

    1. **编辑Apache配置文件**: ```bash vi /etc/httpd/httpd.conf ``` 在文件末尾添加虚拟主机配置: ```apacheconf *:80&gt; DocumentRoot "/var/www/html/pure/" ServerName www.erdangjiade.com ErrorLog ...

    Fedora 9、CentOS 5下设置Apache+SVN

    【Apache + SVN 配置详解】 在Linux系统中,配置Apache服务器与Subversion(SVN)集成是一项常见的任务,尤其对于开发团队来说,这能够提供一个便捷的代码版本控制系统。本教程将详细介绍如何在Fedora 9和CentOS 5...

    Centos7 搭建apache+mysql+php环境

    ### Centos7 搭建 Apache+MySQL+PHP 环境详解 #### 一、概述 在现代 Web 开发中,Apache、MySQL 和 PHP 的组合(通常被称为 LAMP 或 WAMP,根据操作系统不同)是一种非常流行的解决方案。本文将详细介绍如何在 ...

    Centos7 kickstart 配置

    ### Centos7 Kickstart 自动化安装配置详解 #### 一、概述 Kickstart 是一种自动化部署工具,它能够帮助用户实现对 CentOS 或其他 Red Hat 基础系统的无人值守安装。通过创建一个预定义的配置文件(通常命名为 `ks....

Global site tag (gtag.js) - Google Analytics