设为首页 收藏本站
查看: 1252|回复: 0

[经验分享] linux下的apache配置

[复制链接]

尚未签到

发表于 2018-11-23 10:07:20 | 显示全部楼层 |阅读模式
  目前几乎所有的linux所有的发行版都捆绑了Apache,配置Apache服务,需要用到httpd包.可以使用下面命令,查看是否安装此包...
  [root@station195 ~]# rpm -q httpd
  package httpd is not installed
  本地配置有yum源,直接使用此命令安装...
  [root@station195 ~]# yum install httpd
  主配置文件:/etc/httpd/conf/httpd.conf
  网页目录:/var/www/html
  服务脚本:/etc/rc.d/init.d/httpd
  执行程序:/usr/sbin/htpd
  访问日志:/var/log/httpd/access_log
  错误日志:/var/log/httpd/error_log
  http.conf配置文件主要由全局环境,主服务器配置和虚拟主机3个部分组成,配置语句可以放在文件中的任何地方,但为了增强文件的可读性,最好将配置语句放在相应的位置.所有选项指令均不区分大小写..Apache默认会在本机所有可用IP地址上的TCP 80端口监听客户端的请求.可以使用多个Listen语句,以便在多个地址和端口上监听请求.在做基于端口的虚拟主机的时候会用到...
  serverRoot "/etc/httpd" apache服务的根...
  Errorlog 路径 -->定义错误日志文件..
  customlog 路径 -->定义访问日志文件..
  serverAdmin  EMAIL -->定义管理员的邮箱..
  servername  IP -->定义主机名称,如果服务器有域名,则填写其域名,如果没有则写其IP...
  Timeout 连接超时..
  keepalive 一次连接,多次请求,此选项默认是off可以置为on.
  maxkeepaliveRequests 100 当下载资源超过100个时断开重新连一次.
  keepalivetimeout 两次请求之间间隔不能超过15秒.
  DocumentRoot -->定义网页存放的位置.
  Allowoverride None 基于身份的验证...
  options Indexes Multiviews -->
  Indexes 索引..允许目录浏览,当访问不到页面时,会看到目录中的文件和子目录列表.
  MultiViews 允许内容协商的多重视图..
  All 包含了除MultiViews之外的所有特性,如果没有options语句,默认为All
  ExecCGI 允许在该目录下执行CGI脚本..
  FollowSymLinks 可以在该目录中使用符号链接.
  Includes 允许服务器端包含的功能.
  IncludesNoExec 允许服务器端包含功能,但禁止使用CGI脚本.
  DirectoryIndex 这儿定义默认主页..
  loglevel 日志级别.
  细心的用户可能会发现虽然在主目录设置了Indexes权限,且主目录中并不存在默认文档,但访问时并不会出现目录列表,而只出现Apache的测试面.解决这个问题的方法是将位于/etc/httpd/conf.d目录下的welcome.conf文件删除重启Apache即可.
  AddDefaultCharset 编码 -->定义服务器返回给客户机的默认字符集..默认是西欧(UTF-8),让其支持中文使用GB2312
  最关键的一点Order  allow,deny,没有写的规则默认是deny,如果allow中定义的和deny中定义的规则冲突,以默认deny为佳...
  试验一: 我们去做个试验...建一个用户sandy,密码为redhat.允许发布个人站点.且试验过程中开启selinux.
  [root@station195 conf]# vim httpd.conf
  # UserDir disable
  UserDir public_html
  
  allowoverride none
  options Indexes
  order allow,deny
  allow from all
  
  [root@station195 ~]# cd  /home/sandy;mkdir public_html;cd  public_html
  [root@station195 ~]# vim index.html
  welcome sandy...
  [root@station195 home]# chmod o+x sandy/
  [root@station195 sandy]# ls  -Zld public_html/ -->查看public_html的标签.
  drwxr-xr-x  root root root:object_r:user_home_t        public_html/
  [root@station195 sandy]# chcon   -R   -t    httpd_sys_content_t   public_html/ -->修改此目录标签.
  [root@station195 ~]# service  httpd  restart
  [root@station195 ~]# chkconfig  httpd  on
  下面我们进行测试,在浏览器中输入http://192.168.0.195/~sandy就可以访问到网页了.....
  每次访问时都要加个"~"符号,很烦人,我们可以去做个别名...
  [root@station195 conf]# vim  httpd.conf
  Alias  /sandy/   "/home/sandy/public_html/"
  [root@station195 ~]# service  httpd  restart -->每次修改过配置文件都要重新启动服务器...
  下面我们再次测试...在浏览器中输入http://192.168.0.195/sandy/就可以访问到站点了...
  试验二: 基于密码验证....
  [root@station195 conf]# vim   httpd.conf
  
  allowoverride   Authconfig
  options   Indexes
  order    allow,deny
  allow   from   all
  
  [root@station195 ~]#cd  /home/sandy/public_html;vim  .htaccess
  AuthName  "my secret garden"
  AuthType   basic
  AuthUserFile  /etc/httpd/conf/.htpasswd
  Require  user  natasha -->允许natasha用户访问.
  [root@station195 ~]# htpasswd -cm  /etc/httpd/conf/.htpasswd  natasha -->创建natasha用户给其密码为redhat.记住在第一次创建用户的时候使用-cm选项,第二次创建用户时使用-m就可以了,因为第一次创建时已经把.htpasswd文件创建好了...
  [root@station195 ~]# service  httpd  restart -->重新启动服务,这一步一定不要忘了.
  下面去进行测试.在浏览器中输入http://192.168.0.195/sandy/会出现一个输入用户名和密码的方框,我们输入natasha,密码redhat,然后就可以访问到sandy的个人站点了....so  easy !
  试验三: 虚拟主机.
  虚拟主机目前有三种:一种是基于端口的,一种基于IP的,还有一种基于主机头的...
  最常用的就是基于主机头的..基于IP的,会耗费大量资金,基于端口的访问起了非常的不方便...下面我们去建一个站点www.example.com
  [root@station195 ~]# cd   /etc/httpd/conf;vim  httpd.conf
  #DocumentRoot "/var/www/html" -->这一步很重要,首先注释掉主机头...
  NameVirtualHost *:80 -->打开监听的80端口.
  
  serveradminwww.example.com
  DocumentRoot /var/www/www
  Errorlog /var/log/httpd/www/err.log
  customlog /var/log/httpd/www/custom.log combined
  
  [root@station195 httpd]# cd  /var/log/httpd;mkdir  www
  [root@station195 www]# cd  /var/www/;mkdir   www;cd   www
  [root@station195 www]# vim   index.html
  this  is  main  web!
  [root@station195 ~]# vim  /etc/resolv.conf
  192.168.0.195   www.example.com
  由于我本地妹做DNS服务器.为达到试验效果.测试机器上在hosts文件中也得写入这么一句才行...
  [root@station195 ~]# service httpd restart
  下面进行测试....在客户机浏览器http://www.example.com测试结果是成功的...大家可以模仿着做试试...
  基于https的配置...先看CA证书的配置...
  [root@station195 ~]# cd  /etc/pki/CA
  [root@station195 CA]# openssl   genrsa 1024 > private/cakey.pem
  [root@station195 CA]# vim  /etc/pki/tls/openssl.cnf 将[CA_default]后dir =../../CA改为dir = /etc/pki/CA
  [root@station195 CA]# mkdir  ./newcerts
  [root@station195 CA]# touch  ./{serial,index.txt}
  [root@station195 CA]# echo "00" > ./serial
  [root@station195 CA]# chmod 600 private/cakey.pem
  [root@station195 CA]# chmod 600 cacert.pem
  下面进行ssh的配置.可以去了解证书的配置..
  [root@station195 ~]# yum  -y  install  mod_ssl
  [root@station195 ~]#cd  /etc/httpd/;mkdir  ssl;cd  ssl
  [root@station195 ssl]#mkdir  private
  [root@station195 ssl]#openssl genrsa  1024  > private/httpd.key
  [root@station195 ssl]#openssl req -new  -key  private/httpd.key -out  httpd.csr
  [root@station195 ssl]#openssl  ca  -in  httpd.csr -out httpd.crt  -days  3600
  [root@station195 ssl]#vim  ../conf.d/ssl.conf
  
  servername  www.example.com
  documentroot   /var/www/www
  SSLEngine on
  SSLcertificateFile /etc/httpd/ssl/httpd.crt
  SSLcertificatekeyFile /etc/httpd/ssl/private/httpd.key
  SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
  
  [root@station195 ssl]# chmod  600 httpd.crt
  [root@station195 ssl]# chmod  600 private/httpd.key
  [root@station195 ssl]# service  httpd  restart
  下面进行测试在客户端浏览器中输入https://www.example.com测试访问时成功的...这些我都严格测试过的,有一点大家注意,ssl.conf文件中在虚拟主机部分可以定义日志文件,但日志文件要和httpd.conf文件中的路径和名字一样,否则报错.我开始遇到这个问题,最后解决了.像SSLEgine SSLcertificateFile  SSLcertificatekeyFile这些都得必须定义.大家可以模仿着试试. .


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-638536-1-1.html 上篇帖子: PHP5.4 Apache Mysql搭配与多站点配置 下篇帖子: CentOS 源码搭建LAMP(Apache MySQL PHP)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表