转载地址:http://www.cnblogs.com/zgx/archive/2011/09/22/2185261.html (为了使得文章结构清晰,我做了简单修改)

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

  LAMP所需软件与其结构:httpd mysql mysql-Server php php-devel php-mysql

  安装:#yum install httpd mysql-server php php-devel php-mysql (可以用rpm包安装,或者直接用yum安装)

  先来了解一下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会需要密码
这样就成功了

转载于:https://www.cnblogs.com/mollybaby-net/p/4159851.html

转载: CentOS下配置Apache相关推荐

  1. CentOS下配置apache虚拟主机

    1.apache虚拟主机配置: (1)基于域名的配置(同一个IP不同域名)方法:    ①添加域名到hosts文件中, 命令vim /etc/hosts 添加的内容: 192.168.142.140 ...

  2. centos oracle 服务自动启动,CentOS下配置Oracle 11gR2为系统服务自动启动

    CentOS下配置Oracle 11gR2为系统服务自动启动 CentOS下配置Oracle 11gR2为系统服务自动启动 为什么80%的码农都做不了架构师?>>> PS:在Wind ...

  3. Linux/CentOS下安装Apache/SVN/Subversion图文详解教程

    Linux(CentOS)下安装Apache+Subversion(图文教程) 服务器版本和安装软件 服务器版本: RedHatCentOS 5.5 32 bit 安装软件: apr-1.3.5.ta ...

  4. RedHat Enterprise Linux 5下配置Apache+Mysql+Php

    Phinecos(洞庭散人) 专注于开源技术的研究与应用 RedHat Enterprise Linux 5下配置Apache+Mysql+Php 第一步:系统与软件的准备 系统版本 redhat e ...

  5. CentOS下配置VNCServer,重启服务仍然生效

    CentOS下配置VNC Server,重启服务,配置仍然生效的方法: 本文前提:系统已安装好gnome桌面,如果没有请执行下面的命令安装即可. yum groupinstall "Desk ...

  6. CentOS下与Apache连接的PHP多版本共存方案实现详解

    这篇文章主要介绍了CentOS下与Apache连接的PHP多版本共存方案实现,针对mod_fcgi模块的配置作了一些说明,需要的朋友可以参考下 在apache下整合fastCGI模式运行的php-fp ...

  7. linux vnc服务重启,CentOS下配置VNCServer,重启服务仍然生效

    CentOS下配置VNC Server,重启服务,配置仍然生效的方法: 本文前提:系统已安装好gnome桌面,如果没有请执行下面的命令安装即可. yum groupinstall "Desk ...

  8. 【高可用HA】Apache (4) —— Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_jk

    Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_jk httpd版本: httpd-2.4.17 jk版本: tomcat-connectors-1.2.41 参考 ...

  9. linux 怎么配置apache,在Linux下配置Apache Web服务

    <在Linux下配置Apache Web服务>由会员分享,可在线阅读,更多相关<在Linux下配置Apache Web服务(10页珍藏版)>请在人人文库网上搜索. 1.在Lin ...

最新文章

  1. 100内奇数之和流程图_Python进阶记录之基础篇(四)
  2. 在Web应用中使用localforage存储离线数据
  3. ubuntu 20.04 下安装使用clash for windows
  4. python 贴吧自动发帖_python接口自动化3-自动发帖(session)
  5. 【Python爬虫学习笔记3】requests库
  6. HashMap,,ConcurrentHashMap------------------浅谈!!
  7. Failed to create the java virtual machine完全解决办法
  8. tar压缩及解压命令
  9. stm32 boot设置
  10. 小米笔记本网卡驱动失效,无法联网
  11. Ubuntu安装maven
  12. 航班查询php代码,基于php的实时航班api调用代码实例
  13. vmware linux虚拟机网络配置
  14. android root工具twrp,Android手机-全程解析最新Root通用方法
  15. 来自《星际迷航》的灵感启发
  16. NLP学习笔记 01 分词、词性标注和关键词提取
  17. mysql指令sum_MySQL Sum()函数
  18. 中职计算机应用专业教师到电商企业实践报告,中职教师到企业实践总结.doc
  19. 全志T507如何在Android系统上进行OTA升级
  20. 荣耀magic鸿蒙版,荣耀Magic正争取首发骁龙888 Pro;华为鸿首批推送无荣耀机型

热门文章

  1. python爬虫之json数据处理
  2. Linux MySQL单实例源码编译安装5.6
  3. 如何设计Android App测试用例
  4. override和overload的区别
  5. C# 中XML序列化与反序列化学习笔记
  6. 访问服务器的速度由哪些因素决定?
  7. 刚刚做完的一个屏幕截图程序,分享一下
  8. Fedora core 2下建立Poptop服务器以及常见问题
  9. 还是不知道怎么用FreeTextBox 3.0,郁闷致死
  10. python爬虫模拟点击下拉菜单和_python+selenium爬虫过程中的模拟点击问题