admin管理员组文章数量:1597898
文章目录
- 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 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
修改端口上下文(添新端口后不做这个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/.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设置一下别名,这样别人就不轻易看到源文件;
配置并使用域名访问(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的基本配置和动态页面配置 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1728299795a1152871.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论