rpm –aq | grep httpd #查询是否安装了apache,本系统还没有安装
yum install httpd –y #使用yump安装,安装过程省略
-a 查询所有套件
-q 使用询问模式,当遇到任何问题时,rpm指令会先询问用户
-v 显示指令执行过程
-h或–hash 套件安装时列出标记
-i 显示套件的相关信息
-l 显示套件的文件列表
-R 显示套件的关联性信息
-vv 详细显示指令执行过程,便于排错
ps aux | grep httpd
netstat -utnlp
yum install –y net-tools
systemctl start httpd #启动httpd
systemctl restart httpd #重启httpd
systemctl stop httpd #关闭httpd
systemctl enable httpd #使httpd开机启动
systemctl disable httpd #取消httpd开机启动
温馨提示:为避免防火墙对网站访问的影响,学习网络软件其它,建议关闭系统防火墙。
1、systemctl stop firewalld #关闭防火墙
2、systemctl disable firewalld #取消防火墙开机启动
3、修改/etc/selinux/config文件,将SELINUX=enforcing修改为SELINUX=disabled,重启系统使生效
ip a
一、配置文件放在 /etc下面 /etc/httpd
配置文件根目录
yum install –y tree
安装温馨提示:
1、/var/www
是apache默认的网站目录,你可以将网站代码文件放在这里,当然也可以放你喜欢的目录
2、上述提关于apache安装后的6个目录结构,是针对yum安装后的,如果是源码编译安装,则视你安装时的配置
3、初学者,在没有搞透文件权限之前,建议将网站代码文件放在/var/www/html
vi /etc/httpd/conf/httpd.conf
输入/DocumentRoot
回车,搜索到该位置
可见默认的网站目录是/var/www/html
/var/www/html
目录下,网站即可被正常访问用XFTP向Linux上传文件时出现Permission is not allowed
解决方案:
传输的文件夹权限不够。
添加权限:
sudo chmod 777 文件夹名称
sudo chmod -R 777 文件夹名称 #文件夹里的文件也赋权
sudo chmod 777 /var/www/html
让纯静态网站可以运行不是最终目的,学好apache这个web服务器才是王道。我将网站代码重新上传一份至/home/myfirstweb目录下。则重复上页的命令vi /etc/httpd/conf/httpd.conf打开配置文件,输入/DocumentRoot回车,定位到该位置,将/var/ww/html修改为/home/myfirstweb,保存退出并重启apache。
再次在访问实验机器的IP地址,会出现如下情况:
这是神马情况?!
Forbidden,禁止的意思,错误代码是403。
是的,你没有访问该网站的权限。这是网站代码目录的权限问题。
Apache配置文件中使用下面的语句组合来设置网站目录的权限
……
</Directory>
必须同时出现
中间……部分为权限声明语句
我们知道默认的目录是/var/www/html
,我们来看看默认配置是如何为默认目录声明权限的。如下:
"/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted #允许访问
#注意:
#此处语句旧版为Deny / Allow
#新版使用require
</Directory>
要实现为我的新目录/home/myfirstweb
配置权限,将上面的/var/www/html
修改为/home/myfirstweb
即可,或者将上面的内容复制一份,并修改目录然后全部添加到配置文件中(即保留原内容)。修改完成后,保存配置并重启apache,再次访问网站发现可正常访问。
"/home/myfirstweb">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Options FollowSymLinks
AllowOverride All
Require all granted
"/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
关于web服务器的权限配置,除了在apache内的权限声明外,还要注意系统用户的权限。
Apache配置文件中User是定义运行该程序的用户,通过grep搜索可知,默认的用户是“apache”(还有用户组的,组名都是apache)。通过ps查看进程可以确认这一点。
因此,我们要确保网站代码目录的系统权限允许“apache”这个用户及组可读/可写(有需要的话)
通过 ls –l确认网站目录的系统权限,如果不符合请使用chown或chmod命令修改为正确的权限。
修改默认文档同样是在
"/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
DirectoryIndex index.html index.php index.jsp default.aspx
</Directory>
ServerName www.test.com
ServerName
,下图为apache配置文件中关于主机名配置说明:ServerName 192.168.190.128 #指定服务器IP为主机名,端口为默认80
ServerName 192.168.190.128:8080 #指定服务器IP为主机名,端口为8080
ServerName www.test.com #指定域名www.text.com为主机名,端口为默认80
ServerName www.test.com:9090 #指定域名www.text.com为主机名,端口为9090
grep ServerName httpd.conf
以添加www.test.com
域名为例。
由于我并没有test.com这个域名的所有权,再加上目前的实验环境是内网,无法使用域名注册商上的域名解释功能。因此,对于做实验的,我们可以通过在操作系统中对hosts
文件进行声明。
C:\Windows\System32\drivers\etc\hosts
/etc/hosts
IP地址 域名
Web服务器的日志对检查web服务器的故障,以及网页的被访问情况极其重要。我们来看一下默认安装的apache,将日志保存在哪里。只要知道保存在哪里,想要修改为我希望的保存路径就只是修改目录而已。
Apache日志有两种:apache程序自身的运行日志、用户访问日志。
ErrorLog "logs/error_log" LogLevel warn
定义日志保存路径,logs的完整路径是/etc/httpd/logs/error_log
定义日志记录的级别,有8种,warn为告警级别。欲了解更多请搜索“apache 日志级别”
CustomLog "logs/access_log" combined
声明日志路径及日志格式。日志格式的意思是:日志记录的内容包含哪些内容,内容的顺序如何。内容有:日期、用户类型、文档大小、url
等等。 这些内容的排序方式,就是格式问题。Combined为标准的日志格式
。
上面显示的是默认的日志保存路径,可以修改为自己喜欢的路径,但要注意两点:
要让一个纯静态网站跑起来是比较简单的事,但我们的目标是学好apache,所以除了前面介绍的配置,还有加密配置
(俗称的https
)、访问权限、压缩、缓存
等等,这些配置不再一一演示,请自行搜索练习。
本文介绍web服务器的基本概念及各平台常用的web服务端程序,另外以apache为例对配置网站根目录
、配置网站代码目录的权限
、配置默认文档
、配置访问地址
、配置web服务器的日志
、配置网站端口
分别进行了演示,其它的配置请自行搜索学习。