apache的基本配置和动态页面配置

Apache

了解Apache的基本配置

  • 安装Apache :yum groupinstall web* -y
  • 启动服务并设置开机自启:systemctl restart httpd , systemctl enable httpd
  • 防火墙中开放httpd:firewall-cmd --add-service=http , firewall-cmd --add-service=http –permanent
    在这里插入图片描述
  • 查看apache版本:httpd -v

配置文件的功能介绍

  • 编辑http的配置文件:vi /etc/httpd/conf/httpd.conf

  • 查看监听的默认端口:netstat –ntulp | grep http
    在这里插入图片描述
    监听端口默认为80,如果想要开放其他端口,添加一个Listen即可:如 添加808
    在这里插入图片描述
    修改端口上下文:semanage port -a -t http_port_t -p tcp 808 (如果不知道这个,可以vi /etc/ssh/ssh.conf,里面15行是样本)
    在这里插入图片描述
    防火墙中开放808端口: firewall-cmd --add-port=808/tcp , firewall-cmd –add-port=808/tcp --permanent
    重启服务:systemctl restart httpd

  • http根目录
    在这里插入图片描述

  • user apache
    进程为apache的作用是为了提高安全性,当web服务被黑客入侵了,黑客拿到的并不是root权限,而是apache的权限,查看进程:ps aux | grep httpd
    在这里插入图片描述

  • 通知
    在这里插入图片描述

  • ServerName解析
    如果只配置了一个域名,这个可以不开启,如果有多个域名,就需要分别指定域名(hostname -f查看长主机名(域名)),
    在这里插入图片描述
    关系如下图:
    在这里插入图片描述

  • 文件/路径权限设置
    在这里插入图片描述
    上图中这种格式是设置目录权限的,格式为:
    <Directory /path(路径)>
    AllowOverride none
    Require all denied

    如果设置文件属性的话:
    <Files /path1 /file>
    Xxxxx
    Yyyyy

    记住:当我们新添加一个目录的时候,要记得为这个目录配置相关的属性否则可能会无法访问。
    如:现在在 /etc/www/html中创建一个目录xx,然后在里面创建若干*.html
    在这里插入图片描述
    然后在配置文件文件中设置权限:vi /etc/httpd/conf/httpd.conf,添加以下内容
    在这里插入图片描述
    参数详细说明:
    <Directory “/var/www/html/xx”> (路径)
    Options Indexes FollowSymLinks (Indexes是主页 必须存在 否则报错 ,FollowSymLinks 是允许软连接访问,就是在/etc/www/html中允许存在软连接 直接再该目录中创建软连接,即可正常在网页看到软连接中的内容,如果没有FollowSymLinks也可以,只是软连接如法使用)创建并使如下图:
    在这里插入图片描述
    AllowOverride None(这里allowOverride是否允许这个目录里隐藏文件 .htaccess 里的设置生效(None不允许,Authconfig允许))如果允许的情况下,举个例子:设置访问xx这个目录的时候需要输入用户名和密码(可以自定义更多功能,详细参见:https://blog.csdn.net/cmzhuang/article/details/53537591)。
    在/var/www/html/xx/ 中Vi .htacces ,编辑一下内容
    在这里插入图片描述
    AuthName “xxxx”
    AuthType Basic
    Require user ccx
    AuthUserFile “/etc/httpd/conf/.htpasswd”(密码文件是不存在的,,所以需要需要号创建密码文件 touch /etc/httpd/conf/.htpasswd , htpasswd –mc /etc/httpd/conf/.httpasswd ccx
    在这里插入图片描述
    重启服务:systemctl restart httpd, 再次到网页访问ip/xx
    再次访问,便需要输入用户名和密码:
    在这里插入图片描述
    输入密码以后才能看到/var/www/html/xx目录中的内容
    在这里插入图片描述
    Require all granted(设置谁可以访问我,谁不可以访问我,granted 是全部允许),具体使用如下图(这是2.4及以上的版本使用,2.4以下自行百度规则):
    在这里插入图片描述

    重启服务:systemctl restart httpd ,在网页上输入ip/目录,这便是没有主页的展示
    在这里插入图片描述
    现在在/etc/www/html/xx中创建一个主页,echo this is my html > index.html
    在这里插入图片描述
    在网页中看到的内容便是主页,看不到其他html了,如果想看到,则在index中配置超链接
    在这里插入图片描述

  • 主页存放路径
    在这里插入图片描述
    上图中是web的存放路径,写的代码就可以放到该路径中。 其中index.html 是主页,不可或缺 否则就无法正常访问。

  • 默认主页名
    在这里插入图片描述

  • 权限设置
    在这里插入图片描述
    上图中,意思是 .ht*的所有文件,权限是不允许任何人访问的。

  • 错误日志存放目录
    在这里插入图片描述

  • Alias说明
    Alias别名和功能一样的意思,比如,我现在定义一个/zz ,但实际指定的是/11/22/33/44,
    在这里插入图片描述
    然后创建该文件:mkdir –p /11/22/33/44 , 并创建一个主页文件并任意写入内容:
    echo this my Alias html > /11/22/33/44/index.html
    修改上下文:chcon –R –-reference=/var/www/html /11/
    配置完毕后依然无法使用,因为要给/11/权限,vi /etc/httpd/conf/httpd.conf 找到别名处添加一下内容(和上面说的赋予文件权限一样的,只是多了个Alias定义的目录而已):
    在这里插入图片描述
    重启服务:systemctl restart httpd ,再次到网页访问ip/zz 成功
    在这里插入图片描述
    两者比较:虽然实现的功能都相同,但Alias多用于 安全性考虑,比如写网页的时候或者配置zabbix的时候,可以通过Alias设置一下别名,这样别人就不轻易看到源文件;
    在这里插入图片描述

配置并使用域名访问

我们知道 只要httpd服务是开启的,就可以用ip访问,所以ip访问并没有什么可说的。(如果http服务正常 ip无法访问,可能是防火墙的原因)
上面配置步骤都做完以后,下面说说如何利用域名访问(用ip能正常访问在进行下面步骤)

  • vi /etc/httpd/conf/httpd.conf 找到ServerName 后面是你的主机名(hostname查看),当然如果只有一个域名的话,这一步不是那么重要,可以做可以不做
    在这里插入图片描述

  • vi /etc/hosts ,添加解析,可以任意添加 你想要的格式
    在这里插入图片描述
    Linux就解析配置完后基本就完成了,测试linux解析是否正常:curl 域名 (如果都能获取到内容便是正常的) ,如果失败,关闭selinux:setenforce 0
    在这里插入图片描述

  • 然后在windows上打开命令版 ping 服务器ip是否能ping通
    在这里插入图片描述

  • 能ping通以后,打开我的电脑,依次打开C:\Windows\System32\drivers\etc 里面有一个hosts
    在这里插入图片描述

  • 双击打开hosts,添加解析 格式:服务器IP 域名 (因为自己配置的apache没有一个服务器把解析自动发送到每一台客户端,所以需要手动指定,否则网页无法使用域名访问)
    在这里插入图片描述
    然后打开浏览器(建议使用火狐,其他浏览器可能无法正常打开),网址栏中输入 windos中添加的解析域名,能正常访问即正常
    在这里插入图片描述

  • 注意:linux中的解析 和 windows中的解析 不互通 !!!!!! 也就是说 windows中的解析 不能在 linux服务端中使用 curl 获取, linux中的解析不能通过windows浏览器中访问。

配置动态页面:CGI,WSGI,SSI

在这里插入图片描述
注意:动态和静态并非是眼睛看到的网页中内容是静止不动就是静态,有图片飘来飘去就是动态!!!! 所谓的静态,动态指的是,内容会不会根据不同人,不同的时间。。。自动显示不同的内容
在这里插入图片描述

CGI

公共网关接口,实际上就用某种语言写的脚本
ScriptAlias /cgi-bin/ “/var/www/cgi-bin/”
当在地址栏里出现cgi-bin的时候,其实这个脚本是放在/var/www/cgi-bin这个目录里的。
编辑配置文件vi /etc/httpd/conf/httpd.conf

  • 重定向
    就是说当遇到/cgi-bin/ 实际上访问的目录是 /var/www/cgi-bin/
    在这里插入图片描述
  • 测试(使用pl脚本)
    cd /var/www/cgi-bin/
    编辑任意一个以pl结尾的脚本,在里面写入任意代码,写入之前,需要定义Content-Type,查看Content-Type的方法:curl --head 当前ip ,复制整行,然后vi aa.pl ,这里作为测试只写一个时间的代码
    在这里插入图片描述
    在这里插入图片描述
    然后给该脚本赋予权限并执行
    在这里插入图片描述
    然后打开浏览器网址栏输入:ip/cgi-bin/aa.pl 即可看到脚本内容
    在这里插入图片描述
    • 测试(使用bash脚本)
      使用详细参见pl脚本,这里只说bash脚本使用
      在这里插入图片描述
      在浏览器网址打开:ip/cgi-bin/aa.bash
      在这里插入图片描述

WSGI

全称:web server gateway interface
python 实现动态页面的一种功能,比如:openstack dashboard。

  • 先安装一个模版:yum install –y mod_wsgi
  • vi /etc/httpd/conf/httpd.conf
    添加一个 wsgi的重定向:WSGIScriptAlias 自定义名称 /var/www/自定义脚本名称
    如:WSGIScriptAlias /webapp /var/www/webapp.wsgi (意思就是 当我们Ip/webapp的时候,实际上访问的内容就是/var/www/webapp.wsgi
    在这里插入图片描述
    重启服务:systemctl restart httpd (如果启动报错,检查是不是mon_wsgi服务没有安装)
  • cd /var/www/ , vi webapp.wsgi (webapp是自定义名称以.wsgi结尾的脚本(python编写后上传到该目录即可))
    #!/usr/bin/env python
    import time

def application (environ, start_response):
response_body = ‘UNIX EPOCH time is now: %S\n’ % time.time()
status = ‘200 OK’
response_headers = [(‘Content-Type’ , ‘text/plain’),
(‘Content-Length’ , ‘1’),
(‘Content-Length’ , str(len(response_body)))]
start_response(status, response_headers)
return [response_body]

  • 网页上输入 ip/webapp即可
    在这里插入图片描述

SSI

推荐一个快速写网页的软件:Macronmedia Dreamweaver MX 2004
参考:https://blog.csdn.net/cuichongxin/article/details/103997962

php配置discuz

参考:https://blog.csdn.net/cuichongxin/article/details/103997962

发布了67 篇原创文章 · 获赞 32 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/cuichongxin/article/details/103997949