admin管理员组

文章数量:1598079

文章目录

  • Apache
    • 了解Apache的基本配置
      • 配置文件的功能介绍
        • 编辑http的配置文件:`vi /etc/httpd/conf/httpd.conf`
        • 查看监听的默认端口:`netstat –ntulp | grep http`
        • http根目录
        • user apache
        • 通知
        • ServerName解析
        • 文件/路径权限设置
        • 设置文件属性
        • 参数详细说明(上图)
          • Options Indexes FollowSymLinks
          • AllowOverride None (网页加密)
          • Require all granted
        • 主页存放路径
        • 默认主页名
        • 权限设置
        • 错误日志存放目录
        • Alias说明
      • 配置并使用域名访问(win和linux均需解析)
    • 配置动态页面:CGI,WSGI,SSI
      • CGI
        • 重定向
        • 测试(使用pl脚本)
        • 测试(使用bash脚本)
      • WSGI
      • SSI
      • php配置discuz

Apache

下面是常规方法,另外一种简介方法搭建网站看这:linux搭建web服务器(网站)(不同场景中最简单的搭建方法),windows和linux域名解析方式说明

了解Apache的基本配置

  • 安装Apache :yum groupinstall web* -y

  • 启动服务并设置开机自启:systemctl restart httpd , systemctl enablehttpd

  • 防火墙中开放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

修改端口上下文(添新端口后不做这个http服务起不来):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
	</Directory>
设置文件属性
	<Files /path1 /file>
		Xxxxx
		Yyyyy
	</File>

记住:当我们新添加一个目录的时候,要记得为这个目录配置相关的属性否则可能会无法访问。
如:现在在 /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这个目录的时候需要输入用户名和密码(可以自定义更多功能,详细参见:.htaccess详解及.htaccess参数说明)。

/var/www/html/xx/Vi .htacces ,编辑一下内容

AuthName "xxxx"
AuthType Basic
Require user ccx
AuthUserFile "/etc/httpd/conf/.htpasswd"

密码文件是不存在的,所以需要需要号创建密码文件 touch /etc/httpd/conf/.htpasswdhtpasswd –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设置一下别名,这样别人就不轻易看到源文件;

配置并使用域名访问(win和linux均需解析)

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

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

  • vi /etc/hosts ,添加解析,格式为: ip 域名(没设置域名就用主机名)

    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
参考:php配置discuz和动态页面SSI配置——apache

php配置discuz

参考:php配置discuz和动态页面SSI配置——apache

本文标签: 基本配置页面动态Apache