Centos7 系统下怎么更改mac apache 更改目录默认网站目录

安装Apache服务器
rpm -qa | grep httpd & & & & & & & & & & & & & & & & & & & & & & & & & & & & & //查询系统是否安装了Apache
service httpd start 或者 /etc/init.d/httpd start & & & & & & & & &// & 启动Apache服务器, &apache2.4版本之后,用 systemctl start &httpd.service 代替
默认的配置文件信息
主配置文件:/etc/httpd/conf/http.conf&
服务器的根目录(ServerRoot):/etc/httpd
&根文档目录(DocumentRoot):/var/www/html & & &//修改这个目录可以改变默认发布网页的位置,即你自己指定的位置,不过还有修改相应的&Directory &/var/www/html&&
&访问日志文件:/etc/httpd/logs/access_log
&错误日志文件:/etc/httpd/logs/error_log
&模块存放路径:/etc/httpd/modules
httpd.conf配置文件主要由全局环境、主服务器配置和 虚拟主机3个部分组成
Web服务的基本配置
主目录的路径(DocumentRoot) &
默认位置:/var/www/html &&& & & & & & & & & & & & //可以将需要发布的网页放在这个目录下&
默认文档 &:(DirectoryIndex)& & & & & & & & & & & &&//在浏览器中,输入Web站点的IP地址或域名即显示出来的 Web页面
DirectoryIndex & & & & & & &index.html index.htm index.php index.html.var & & & & & & //常见的文档名
配置Apache监听的IP地址和端口号
&Listen 80& & & & & & & & & & & & & & & & & &// &默认监听所有客户端的请求,注释掉这行可以添加指定监听的IP和端口
&Listen 192.168.16.177 80&
设置相对根目录路径
ServerRoot & & “/etc/httpd” & & & & &//如果不是以“\”开头的路径都是相对路径;它一般包含conf和 logs子目录
设置日志文件&
&ErrorLog & & & & & & & & & logs/error_log & & & & & & & & & & & & & & & //错误日志,可以自定义
CustomLog & & & & & & &logs/access_log combined & & & //访问日志 ,可以自定义
ServerAdmin & & & & & &
& & & & & & & & & & & &//设置网络管理员的Email地址
ServerName 192.168.100.222:80 & & & & & & & & & & & & & & & //设置Apache服务器自身的主机名
AddDefaultCharset GB2312(避免出现中文乱码) //设置默认字符集
虚拟目录: 如果希望在主目录以外其他目录中进行网页发布,需要设置虚拟目录
&IfModule alias_module&
&Alias &/abc & & & &/home/abc& & & & & & & & & & & & &// & & /abc是别名 & &/home/abc是实际的物理路径,建议用绝对路径
设置目录权限
可以使用&Directory 目录路径&和&/Directory&为主目 录或虚拟目录设置权限,称这对标记为容器
&Directory “/var/www/icons”& & & & & & &//在标记里指定需要进行权限控制的绝对目录路径
Options Indexes MultiViews&
AllowOverride None
&Order allow,deny&
Allow from all
&&/Directory&
Options: & & & & & & & & & & & &//定义目录使用哪些特性
Indexes:允许目录浏览(通常应该禁用此功能)当用户仅指定要访问的目录,但没有指定要访问目录下的那个文件,而且目录下不存在默认文档时,Apache以超文本形式返回目录中的文件和子目录列表
&MultiViews:允许内容协商的多重视图 &它其实是Apache的一个智能特性。当用户访问目录中一个不存在的对象时,如访问“http://192.168.177/icons/a”,则Apache会查找这个目录下所有a.* 文件,由于icons目录下不存在a.gif文件,因此Apache会将a.gif文件返回给用户,而不是返回出错信息
&All:包含除了MultiViews之外的所有特性。如果没有Options语句,默认 为All&
&ExecCGI:允许执行CGI脚本
&FollowSymLinks:可以在该目录中使用符号链接
&includes &:允许服务器端包含功能
includesNoexec:允许服务器端包含功能,但禁用执行CGI脚本
注意:为了让主目录允许目录浏览,需要删除/etc/httpd/conf.d 目录下的welcome.conf文件,然后重启Apache
AllowOverride:定义位于每个目录下的.htaccess(访问控制)文 件中的指令类型
出于效率和安全的原因,通常应该避免使用.htaccess & &时常设置为AllowOverride None
httpd -t :检查语法的合法性 & & & &//用于检测Apache语法配置是否正确 & & & & & & & & & & httpd &-v :查看Apache版本
Apache-2.2 & & & & & & & & & & & & & & &与 & & & & & & & & & & & & & & & & & & & & & & & &Apache-2.4区别
&&Directory &/var/www/vhosts/wwwroot&& & & & & & & & & & & & &&Directory &/var/www/vhosts/wwwroot&&
&Options -Indexes & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &Options-Indexes
&AllowOverride All & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & AllowOverride &All & & & & & & & & & &
Order allow,deny & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & Require all granted
&Allow from all & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &/Directory& & &
&/Directory&
删除了 Order deny,allow 和 Order allow,deny
把 Deny from all 替换成了 Require all denied,
把Allow from all 替换成了 Require all granted & &
allow, deny:缺省禁止所有客户机的访问,且Allow语句在Deny语句之前被匹配;如果某条件既匹配Deny语句又匹配Allow语句,则Deny语句会起作用(因为Deny语句覆盖了Allow语句)
deny, allow:缺省允许所有客户机的访问,且Deny语句在Allow语句之前被匹配;如果某条件既匹配Deny语句又匹配Allow语句,则Allow语句会起作用(因为Allow语句覆盖了Deny语句)
以下参考:
Options FollowSymLinks &&
AllowOverride None &&
&Apache服务器可以针对目录进行文档的访问控制,然而访问控制可以通过两种方式来实现,一个是在设置文件 httpd.conf(或access.conf)中针对每个目录进行设置,另一个方法是在每个目录下设置访问控制文件,通常访问控制文件名字为.htaccess。虽然使用这两个方式都能用于控制浏览器的访问,然而使用配置文件的方法要求每次改动后重新启动httpd守护进程,比较不灵活,因此主要用于配置服务器系统的整体安全控制策略,而使用每个目录下的.htaccess文件设置具体目录的访问控制更为灵活方便
Directory语句就是用来定义目录的访问限制的,这里可以看出它的标准语法,为一个目录定义访问限制。上例的这个设置是针对系统的根目录进行的,设置了允许符号连接的选项FollowSymLinks ,以及使用AllowOverride None表示不允许这个目录下的访问控制文件来改变这里进行的配置,这也意味着不用查看这个目录下的相应访问控制文件
由于Apache对一个目录的访问控制设置是能够被下一级目录继承的,因此对根目录的设置将影响到它的下级目录。注意由于AllowOverride None的设置,使得Apache服务器不需要查看根目录下的访问控制文件,也不需要查看以下各级目录下的访问控制文件,直至httpd.conf(或access.conf )中为某个目录指定了
允许Alloworride,即允许查看访问控制文件。由于Apache对目录访问控制是采用的继承方式,如果从根目录就允许查看访问控制文件,那么Apache就必须一级一级的查看访问控制文件,对系统性能会造成影响。而缺省关闭了根目录的这个特性,就使得Apache从httpd.conf中具体指定的目录向下搜寻,减少了搜寻的级数,增加了系统性能。因此对于系统根目录设置AllowOverride None不但对于系统安全有帮助,也有益于系统性能
Options Indexes FollowSymLinks &&
&AllowOverride None & &
Order allow,deny &
& Allow from all
这里定义的是系统对外发布文档的目录的访问设置,设置不同的&
AllowOverride选项,以定义配置文件中的目录设置和用户目录下的安全控制文件的关系,而Options选项用于定义该目录的特性
配置文件和每个目录下的访问控制文件都可以设置访问限制,设置文件是由管理员设置的,而每个目录下的访问控制文件是由目录的属主设置的,因此管理员可以规定目录的属主是否能覆盖系统在设置文件中的设置,这就需要使用 啊AllowOverride参数进行设置,通常可以设置的值为:
AllowOverride的设置 对每个目录访问控制文件作用的影响
All 缺省值,使访问控制文件可以覆盖系统配置
None 服务器忽略访问控制文件的设置
Options 允许访问控制文件中可以使用Options参数定义目录的选项
FileInfo 允许访问控制文件中可以使用AddType等参数设置
AuthConfig 允许访问控制文件使用AuthName,AuthType等针对每个用户的认证机制,这使目录属主能用口令和用户名来保护目录 Limit 允许对访问目录的客户机的IP地址和名字进行限制每个目录具备一定属性,可以使用Options来控制这个目录下的一些访问特性设置,以下为常用的特性选项:
Options设置 服务器特性设置 &&
All 所有的目录特性都有效,这是缺省状态 &&
None 所有的目录特性都无效 &&
FollowSymLinks 允许使用符号连接,这将使浏览器有可能访问文档根目录 (DocumentRoot)之外的文档 SymLinksIfOwnerMatch 只有符号连接的目的与符号连接本身为同一用户所拥有时,才允许访问,这个设置将增加一些安全性 &&
ExecCGI 允许这个目录下可以执行CGI程序 Indexes 允许浏览器可以生成这个目录下所有文件的索引,使得在这个目录下没有index.html(或其他索引文件)时,能向浏览器发送这个目录下的文件列表
此外,上例中还使用了Order、Allow、Deny等参数,这是Limit语句中用来根据浏览器的域名和 IP地址来控制访问的一种方式。其中Order定义处理Allow和Deny的顺序,而Allow、Deny则针对名字或IP进行访问控制设置,上例使用allowfrom all,表示允许所有的客户机访问这个目录,而不进行任何限制
UserDir public_html &&
& 当在一台Linux上运行Apache服务器时,这台计算机上的所有用户都可以有自己的网页路径,形如
AllowOverride FileInfo AuthConfig Limit &&
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec & # &&
# Order allow,deny &&
# Allow from all & # & # &&
# Order deny,allow &&
# Deny from all
这里可以看到Directory的另一个用法,即可以通过简单的模式匹配方法,针对分布在不同目录下的子目录定义访问控制权限。这样设置就需要Apache服务器对每个路径进行额外的处理,因此就会降低服务器的性能,所以缺省情况并没有打开这种访问限制
用户认证 & & & & & & & & & & & & & & & & & & & & & & & & & (建立虚拟目录并配置用户认证)
#htpasswd -c /etc/httpd/conf/webpasswd &xuehen & & & & (-c:指定创建的文件名,这个文件存在后,就不在用-c)
#vim /etc/httpd/conf/httpd.conf
Alias &/abc &&/home/abc&
&Directory &/home/abc&& & & & & & & & & & & & (配置文件修改过之后都要重启服务)
& AuthType Basic
& AuthName &xuehen's webserver& & &
& AuthUserFile /etc/httpd/webpasswd
& Require valid-user
&/Directory&
创建虚拟主机(基于IP)( 这个需要多网卡)
在服务器里绑定多个IP地址,然后配置Apache,把多个网站绑定到不同的IP上
&VirtualHost *:80&
ServerAdmin
ServerName &192.168.1.100
DocumentRoot &/home/abc
DirectoryIndex index.html
ErrorLog & &logs/error_log
CustomLog logs/access_log combined
&/VirtualHost&
&Directory &/home/123/&
Require all granted
&/Directory&
虚拟主机基于域名
&VirtualHost *:80& & & & & &&
DocumentRoot /home/123/
ServerName &
ErrorLog &logs/hua_error
CustomLog logs/hua_access combined
&/VirtualHost&
&Directory /home/123/&
Require all granted
&/Directory&
&VirtualHost *:80&
DocumentRoot /home/abc/
ServerName &
ErrorLog &logs/meng_error
CustomLog logs/meng_access combined
&/VirtualHost&
&Directory /home/abc/&
Require all &granted
&/Directory&
注意:在hosts & /w/system32/driver/etc/hosts 文件夹中添加IP与域名对应
本文已收录于以下专栏:
相关文章推荐
CentOS7 初次安装记录(二)配置apache服务器网络正常了,那么就要来配服务器了。我的目标很简单,配置一个 apache+php+mysql 的服务器即可。首先,yum -y update 升...
直播关键字
采集、前处理、编码、传输、解码、渲染,
推流, 拉流、连麦、直播、互动、RTMP
为何一直推荐WebRTC?RTMP vs RTMFP大话直播android音视频点/直播模块开...
CentOS7 初次安装记录(三)配置PHP和MYSQL配置 php 环境跌跌撞撞,终于把apache环境给弄好了。下面我们来配置PHP环境。照旧,还是yum安装yum -y install php顺...
什么是WebRTC?
众所周知,浏览器本身不支持相互之间直接建立信道进行通信,都是通过服务器进行中转。比如现在有两个客户端,甲和乙,他们俩想要通信,首先需要甲和服务器、乙和服务器之间建立信道。甲...
Websocket知识,大家可以查看互联网上找到很多相关的介绍,这里不再累述。这里者介绍如何发服务端通过websocket发送的图片显示在浏览器上。
首先来写服务端代码(SendImage.java...
一、Apache简介
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性(尽管不断有...
在上篇文章中,已经对 Centos 7 FTP(vsftp)服务安装及配置进行了详细的介绍,如果你对于FTP有什么不懂的可以去看看这篇文章。在这里我就不重复了。本文给大家介绍下在Cen...
CentOS7 初次安装记录(五)配置 apache 虚拟主机数据库也挪好了。下面准备配置虚拟主机。不准备安装乱七八糟的管理软件,就是能够支持一台服务器多个网站即可。apache 配置虚拟主机学聪明了...
CentOS下使用yum安装Apache服务器httpd。
首先,我来整体介绍一下总体步骤,第一、JDK下载和安装。第二、JDK的环境变量配置。第三、tomcat下载和安装。第四、tomcat的环境配置。
第一、JDK下载和安装。
 JDK下载地址
他的最新文章
讲师:刘文志
讲师:陈伟
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 48, 距离下一级还需 152 积分
论坛徽章:0
如题,想查看一下已有的服务器上是否已经安装了Apache,如果已经安装了的话,想知道安装的目录。。。,
*(/usr/local/`下貌似没有Apache的目录)
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
论坛徽章:2
小富即安, 积分 3187, 距离下一级还需 1813 积分
论坛徽章:0
原帖由 victorxu21 于
10:02 发表
如题,想查看一下已有的服务器上是否已经安装了Apache,如果已经安装了的话,想知道安装的目录。。。,
*(/usr/local/`下貌似没有Apache的目录)
打印进程看
白手起家, 积分 10, 距离下一级还需 190 积分
论坛徽章:0
whereis httpd
富足长乐, 积分 6840, 距离下一级还需 1160 积分
论坛徽章:2
find / -name httpd -print
论坛徽章:0
updatedb && locate httpd
丰衣足食, 积分 506, 距离下一级还需 494 积分
论坛徽章:5
rpm -qa httpd
finde / -name httpd
小富即安, 积分 4855, 距离下一级还需 145 积分
论坛徽章:0
你是源码包编译的?还是其他诸如yum、apt安装的?
白手起家, 积分 48, 距离下一级还需 152 积分
论坛徽章:0
谢谢大家,解决了,嘿嘿
论坛徽章:1
坦率的说,这要看你是如何安装的啦!
1.rpm包形式(包括yum安装)可以
rpm -aq|grep http& && && && && && && && & #查看是否安装了apache的包
rpm -qi& &输入上一步获取的包名& && && &#了解一下这个apache包的信息
rpm -ql& &输入包名& && && && && && && && && &#此apache包中所有文件安装的位置
2,tarball等安装
whereis&&httpd& && && && && && && && && && & #http文件的位置
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处CentOS 7.2配置Apache服务httpd(上)
作者:shaonbean
字体:[ ] 类型:转载 时间:
这篇文章主要为大家详细介绍了CentOS 7.2配置Apache服务 httpd上篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
一、Apache简介
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性(尽管不断有新的漏洞被发现,但由于其开放源代码的特点,漏洞总能被很快修补。因此总合来说,其安全性还是相当高的。)。被广泛使用,是最流行的Web服务器软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
二、安装Apache httpd
安装httpd以配置Web服务器, HTTP使用80 / TCP
[1] 安装 httpd.
[root@linuxprobe ~]# yum -y install httpd
# 删除默认欢迎页面
[root@linuxprobe ~]# rm -f /etc/httpd/conf.d/welcome.conf
[2] 配置httpd,将服务器名称替换为您自己的环境
[root@linuxprobe ~]# vi /etc/httpd/conf/httpd.conf
# line 86: 改变管理员的邮箱地址
ServerAdmin root@linuxprobe.org
# line 95: 改变域名信息
ServerName www.linuxprobe.org:80
# line 151: none变成All
AllowOverride All
# line 164: 添加只能使用目录名称访问的文件名
DirectoryIndex index.html index.cgi index.php
# add follows to the end
# server's response header(安全性)
ServerTokens Prod
# keepalive is ON
KeepAlive On
[root@linuxprobe ~]# systemctl start httpd
[root@linuxprobe ~]# systemctl enable httpd
[3] 如果Firewalld正在运行,请允许HTTP服务。,HTTP使用80 / TCP
[root@linuxprobe ~]# firewall-cmd --add-service=http --permanent
[root@linuxprobe ~]# firewall-cmd --reload
[4] 创建一个HTML测试页,并使用Web浏览器从客户端PC访问它。如果显示以下页面,是正确的
[root@linuxprobe ~]# vi /var/www/html/index.html
&div style="width: 100%; font-size: 40 font-weight: text-align:"&
Welcome access LinuxProbe.org,This is Test Page!
三、支持Perl
启用CGI执行并使用Perl脚本
[1] 安装Perl.
[root@linuxprobe ~]# yum -y install perl perl-CGI
[2] 默认情况下,在“/var/www/cgi-bin”目录下允许CGI。
可以使用Perl Scripts放在目录下。然而,它下面的所有文件都被处理为CGI。
# 下面的设置是CGI的设置
[root@linuxprobe ~]# grep -n "^ *ScriptAlias" /etc/httpd/conf/httpd.conf
247: ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
[3] 如果你想允许在其他目录中的CGI,配置如下。
例如,在“/var/www/html/cgi-enabled”中允许。
[root@linuxprobe ~]# vi /etc/httpd/conf.d/cgi-enabled.conf
# create new
# processes .cgi and .pl as CGI scripts
&Directory "/var/www/html/cgi-enabled"&
Options +ExecCGI
AddHandler cgi-script .cgi .pl
&/Directory&
[root@linuxprobe ~]# systemctl restart httpd
[4] 如果SELinux被启用,并且允许CGI在不是像上面[3]的默认目录下,更改规则如下。
[root@linuxprobe ~]# chcon -R -t httpd_sys_script_exec_t /var/linuxprobe/html/cgi-enabled
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_script_exec_t /var/www/html/cgi-enabled
[5] 创建一个CGI测试页面,并使用Web浏览器从客户端PC访问它。如果显示以下页面,说明配置正确。
[root@linuxprobe ~]# vi /var/www/html/cgi-enabled/index.cgi
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "&html&\n&body&\n";
print "&div style=\"width: 100%; font-size: 40 font-weight: text-align:\"&\n";
print "CGI Test Page";
print "\n&/div&\n";
print "&/body&\n&/html&\n";
[root@linuxprobe ~]# chmod 705 /var/www/html/cgi-enabled/index.cgi
四、支持PHP
配置httpd以使用PHP脚本
[1] 安装PHP.
[root@linuxprobe ~]# yum -y install php php-mbstring php-pear
[root@linuxprobe ~]# vi /etc/php.ini
# line 878: 取消注释,设置时区
date.timezone = "Asia/Shanghai"
[root@linuxprobe ~]# systemctl restart httpd
[2] 创建一个PHP测试页面,并使用Web浏览器从客户端PC访问它。如果显示以下页面,它是确定。
[root@linuxprobe ~]# vi /var/www/html/index.php
&div style="width: 100%; font-size: 40 font-weight: text-align:"&
print Date("Y/m/d");
[3] 创建phpinfo测试页,确认是都开启php支持
[root@linuxprobe ~]# echo "&?php phpinfo(); ?&" & /var/www/html/phpinfo.php
五、支持Ruby
配置httpd以将Ruby脚本用作CGI
[1] 安装Ruby.
[root@linuxprobe ~]# yum -y install ruby
[2] 默认情况下,在“/var/www/cgi-bin”目录下允许CGI。&
可以使用Perl Scripts放在目录下。然而,它下面的所有文件都被处理为CGI。
# 下面的设置是CGI的设置
[root@linuxprobe ~]# grep -n "^ *ScriptAlias" /etc/httpd/conf/httpd.conf
247: ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
[3] 如果你想允许在其他目录中的CGI,配置如下。&
例如,在“/var/www/html/cgi-enabled”中允许。
[root@linuxprobe ~]# vi /etc/httpd/conf.d/cgi-enabled.conf
# create new
# processes .rb as CGI scripts
&Directory "/var/www/html/cgi-enabled"&
Options +ExecCGI
AddHandler cgi-script .rb
&/Directory&
[root@linuxprobe ~]# systemctl restart httpd
[4] 如果SELinux被启用,并且允许CGI在不是像上面[3]的默认目录下,更改规则如下。
[root@linuxprobe ~]# chcon -R -t httpd_sys_script_exec_t /var/www/html/cgi-enabled
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_script_exec_t /var/www/html/cgi-enabled
[5]&Create a CGI test page and access to it from client PC with web browser. It's OK if following page is shown.
[root@linuxprobe ~]# vi /var/www/html/cgi-enabled/index.rb
#!/usr/bin/ruby
print "Content-type: text/html\n\n"
print "&html&\n&body&\n"
print "&div style=\"width: 100%; font-size: 40 font-weight: text-align:\"&\n"
print "Ruby Script Test Page"
print "\n&/div&\n"
print "&/body&\n&/html&\n"
[root@linuxprobe ~]# chmod 705 /var/www/html/cgi-enabled/index.rb
六、支持Python
启用CGI执行并使用Python脚本
[1] 安装python.
[root@linuxprobe ~]# yum -y install python
[2] 默认情况下,在“/var/www/cgi-bin”目录下允许CGI。
可以使用Perl Scripts放在目录下。然而,它下面的所有文件都被处理为CGI。
# 下面的设置是CGI的设置
[root@linuxprobe ~]# grep -n "^ *ScriptAlias" /etc/httpd/conf/httpd.conf
247: ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
[3] 如果你想允许在其他目录中的CGI,配置如下。
例如,在“/var/www/html/cgi-enabled”中允许。
[root@linuxprobe ~]# vi /etc/httpd/conf.d/cgi-enabled.conf
# create new
# processes .py as CGI scripts
&Directory "/var/www/html/cgi-enabled"&
Options +ExecCGI
AddHandler cgi-script .py
&/Directory&
[root@linuxprobe ~]# systemctl restart httpd
[4] 如果SELinux被启用,并且允许CGI在不是像上面[3]的默认目录下,更改规则如下。
[root@linuxprobe ~]# chcon -R -t httpd_sys_script_exec_t /var/www/html/cgi-enabled
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_script_exec_t /var/www/html/cgi-enabled
Create a CGI test page and access to it from client PC with web browser. It's OK if following page is shown.
[root@linuxprobe ~]# vi /var/www/html/cgi-enabled/index.py
#!/usr/bin/env python
print "Content-type: text/html\n\n"
print "&html&\n&body&\n"
print "&div style=\"width: 100%; font-size: 40 font-weight: text-align:\"&\n"
print "Python Script Test Page"
print "\n&/div&\n"
print "&/body&\n&/html&\n"
[root@linuxprobe ~]# chmod 705 /var/www/html/cgi-enabled/index.py
七、支持Userdir
启用userdir,用户可以使用此设置创建网站
[1] 配置 httpd.
[root@linuxprobe ~]# vi /etc/httpd/conf.d/userdir.conf
# line 17: comment out
#UserDir disabled
# line 24: uncomment
UserDir public_html
# line 31 - 35
&Directory "/home/*/public_html"&
AllowOverride All
Options None
Require method GET POST OPTIONS
&/Directory&
[root@linuxprobe ~]# systemctl restart httpd
[2] 创建一个测试页,使用普通用户通过客户端PC与Web浏览器和访问它,如果显示以下页面,就是正确的
[cent@linuxprobe ~]$ mkdir public_html
[cent@linuxprobe ~]$ chmod 711 /home/cent
[cent@linuxprobe ~]$ chmod 755 /home/cent/public_html
[cent@linuxprobe ~]$ vi ./public_html/index.html
&div style="width: 100%; font-size: 40 font-weight: text-align:"&
UserDir Test Page
浏览器访问:http://linuxprobe.org/~wang/,出现如下界面
八、设置虚拟主机
配置虚拟主机以使用多个域名。
以下示例在域名为[linuxprobe.org],虚拟域名为[virtual.host(根目录[/home/wang/public_html]]的环境中设置。
必须为此示例设置Userdir的设置
[1] 配置虚拟主机
[root@linuxprobe ~]# vi /etc/httpd/conf.d/vhost.conf
# for original domain
&VirtualHost *:80&
DocumentRoot /var/www/html
ServerName www.linuxprobe.org
&/VirtualHost&
# for virtual domain
&VirtualHost *:80&
DocumentRoot /home/cent/public_html
ServerName www.virtual.host
ServerAdmin webmaster@virtual.host
ErrorLog logs/virtual.host-error_log
CustomLog logs/virtual.host-access_log combined
&/VirtualHost&
[root@linuxprobe ~]# systemctl restart httpd
[2]创建测试页并使用Web浏览器从客户端计算机访问它。如果显示以下页面,则是正确的:
[cent@linuxprobe ~]$ vi ~/public_html/virtual.php
&div style="width: 100%; font-size: 40 font-weight: text-align:"&
Virtual Host Test Page
[3]如果访问测试时看不到相应页面,可通过下面命令进行测试:
[root@linuxprobe ~]# yum -y install elinks^C
[root@linuxprobe ~]# elinks http://www.virtual.host/virtual.php
九、创建SSL证书
创建自己的SSL证书。但是,如果您使用您的服务器作为业务,最好购买和使用来自Verisigh的正式证书等。
[root@linuxprobe ~]# cd /etc/pki/tls/cert
cert.pem certs/
[root@linuxprobe ~]# cd /etc/pki/tls/certs/
[root@linuxprobe certs]# make server.key
umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 & server.key
Generating RSA private key, 2048 bit long modulus
...............................................................+++
....................................................................................................+++
Enter pass phrase:
Verifying - Enter pass phrase:
[root@linuxprobe certs]# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:
writing RSA key
[root@linuxprobe certs]# make server.csr
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Shanghai #省
Locality Name (eg, city) [Default City]:Shanghai #市
Organization Name (eg, company) [Default Company Ltd]:LinuxProbe #公司
Organizational Unit Name (eg, section) []:DevOps #部门
Common Name (eg, your name or your server's hostname) []:linuxprobe.org #主机名
Email Address []:root@linuxprobe.org #邮箱
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@linuxprobe certs]# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
Signature ok
subject=/C=CN/ST=Shanghai/L=Shanghai/O=LinuxProbe/OU=DevOps/CN=linuxprobe.org/emailAddress=root@linuxprobe.org
Getting Private key
十、配置SSL
[1] 配置SSL.
[root@linuxprobe ~]# yum -y install mod_ssl
[root@linuxprobe ~]# vi /etc/httpd/conf.d/ssl.conf
# line 59: 取消注释
DocumentRoot "/var/www/html"
# line 60: 取消注释,定义域名
ServerName linuxprobe.org:443
# line 75: 改变SSLProtocol
SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
# line 100: 改成刚刚创建的server.crt
SSLCertificateFile /etc/pki/tls/certs/server.crt
# line 107: 改成刚刚创建的server.key
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
[root@www ~]# systemctl restart httpd
[2] 如果Firewalld正在运行,请允许HTTPS服务。 HTTPS使用443 / TCP
[root@www ~]# firewall-cmd --add-service=https --permanent
[root@www ~]# firewall-cmd --reload
[3] 使用Web浏览器通过HTTPS从客户端计算机访问测试页。下面的示例是Fiorefix。显示以下屏幕,因为证书是自己创建的,但它没有ploblem,继续下一步。
十一、启用基本身份验证
启用基本身份验证以限制特定网页的访问
[1]例如,在目录[/var/www/html/auth-basic]下设置基本身份验证设置。
[root@linuxprobe ~]# vi /etc/httpd/conf.d/auth_basic.conf
# 创建新配置文件
&Directory /var/www/html/auth-basic&
AuthType Basic
AuthName "Basic Authentication"
AuthUserFile /etc/httpd/conf/.htpasswd
require valid-user
&/Directory&
# 添加用户:使用“-c”创建新文件(仅为初始注册添加“-c”选项)
[root@linuxprobe ~]# htpasswd -c /etc/httpd/conf/.htpasswd wang
New password: # set password
Re-type new password: # confirm
Adding password for user wang
[root@linuxprobe ~]# systemctl restart httpd
[root@linuxprobe ~]# mkdir /var/www/html/auth-basic
[root@linuxprobe ~]# vi /var/www/html/auth-basic/index.html
# create a test page
&div style="width: 100%; font-size: 40 font-weight: text-align:"&
Test Page for Basic Auth
[2] 使用Web浏览器从客户端计算机访问测试页。然后需要认证,如下所示作为设置,用在[1]中添加的用户回答
十二、基本Auth + PAM
限制特定网页上的访问,并使用OS用户通过SSL连接进行身份验证
[1] 创建证书,请参照上文所述。
[2] 例如,在[/var/www/html/auth-pam]目录下设置Basic Auth。
# install from EPEL
[root@linuxprobe ~]# yum --enablerepo=epel -y install mod_authnz_external pwauth
[root@linuxprobe ~]# vi /etc/httpd/conf.d/authnz_external.conf
# add to the end
&Directory /var/www/html/auth-pam&
SSLRequireSSL
AuthType Basic
AuthName "PAM Authentication"
AuthBasicProvider external
AuthExternal pwauth
require valid-user
&/Directory&
[root@linuxprobe ~]# mkdir /var/www/html/auth-pam
[root@linuxprobe ~]# vi /var/www/html/auth-pam/index.html
# create a test page
&div style="width: 100%; font-size: 40 font-weight: text-align:"&
Test Page for PAM Auth
[root@linuxprobe ~]# systemctl restart httpd
[3]& 在客户端上使用Web浏览器访问测试页面https://linuxprobe.org/auth-pam/,并与操作系统上的用户进行身份验证。
十三、使用WebDAV
下面是使用SSL连接配置WebDAV设置的示例
[1] 创建证书,请参照上文所述
[2] 例如,创建一个目录[webdav],它使得可以仅通过SSL连接到WebDAV目录。
[root@linuxprobe ~]# mkdir /home/webdav
[root@linuxprobe ~]# chown apache. /home/webdav
[root@linuxprobe ~]# chmod 770 /home/webdav
[root@linuxprobe ~]# vi /etc/httpd/conf.d/webdav.conf
# create new
DavLockDB "/tmp/DavLock"
Alias /webdav /home/webdav
&Location /webdav&
SSLRequireSSL
Options None
AuthType Basic
AuthName WebDAV
AuthUserFile /etc/httpd/conf/.htpasswd
&RequireAny&
Require method GET POST OPTIONS
Require valid-user
&/RequireAny&
&/Location&
# 添加用户:使用“-c”创建新文件(仅为初始注册添加“-c”选项)
[root@linuxprobe ~]# htpasswd -c /etc/httpd/conf/.htpasswd wang
New password:
# set password
Re-type new password:
Adding password for user wang
# **注意:用户wang的htpasswd已经创建过,不需要重复创建**
[root@linuxprobe ~]# systemctl restart httpd
[3]& 如果启用了SELinux,请更改以下规则。&
[root@linuxprobe ~]# chcon -R -t httpd_sys_rw_content_t /home/webdav
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_rw_content_t /home/webdav
[4]& 这是PC上的WebDAV客户端的设置(Windows 10)。
下载“CarotDAV”,这是一个免费的WebDAV客户端,从以下网站⇒
,下载后,安装并启动CarotDAV,然后显示以下屏幕,单击“文件”按钮并选择“WebDAV”。
[5]在“设置名称”字段中输入任何名称,并在“URI”字段中输入[服务器名称/ webdav目录],并输入用户名和密码
[7]配置添加如下,点击它连接到服务器。
[8] waring显示如下,它的SSL证书没有安装在您的电脑上,它没有ploblem,点击“忽略”,然后去下一步。
[9] 到webdav目录下创建测试目录和文件
[root@linuxprobe tmp]# cd /home/webdav/
[root@linuxprobe webdav]# mkdir linuxprobe
[root@linuxprobe webdav]# mkdir linuxcool
[root@linuxprobe webdav]# touch vdevops.txt
[root@linuxprobe webdav]# touch linuxcool.txt
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 apache 更改目录 的文章

 

随机推荐