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
- 测试(使用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