一、什么是Apache:
Apache(或httpd)服务,是Internet上使用最多的Web服务器技术之一,通俗来讲就是一个用于搭建网站的服务。
有两个版本:
http:超文本传输协议,通过线路以明文形式发送,默认使用80端口/TCP
https:经TLS/SSL安全加密的超文本传输协议,默认使用443端口/TCP
二、安装服务器相关软件包
启动Httpd服务:systemctl start httpd.service
systemctl enable httpd.ervice //设置开机自启动
三、配置个人Web站点
1、
useradd jack
mkdir /home/jack/public_html
chmod 711 /home/jack
chmod 755 /home/jack/public_html/
//建立用户jack,修改其默认主目录的权限,并在主目录下创建public_html目录
2、在public_html目录下建立网页文件index.html并添加内容:
vim /home/jack/public_html/index.html
'this is jack website'
3、配置/etc/httpd/conf.d/userdir.conf文件:
将编辑好的配置文件保存后重启httpd服务器,同时关闭防火前,并将Selinux设置成permissive。
systemctl restart httpd
systemctl stop firewalld
setenforce 0
getenforce
(http://192.168.110.110/~jack/) //使用浏览器进行测试网站
四、配置虚拟目录
虚拟目录是一个位于Apache服务器主目录之外的目录。每一个虚拟目录都有一个别名(隐藏服务器的真实路径或缩短访问路径),客户端可以通过此别名来访问虚拟目录。
例:在ip地址为192.168.121.130的Apache服务器中,创建名为/myweb的虚拟目录,它对应的物理路径是/user/web目录。
1、创建/user/web目录
2、在/user/web目录下创建主页文件
vim /user/web/index.html
'Virtual Directory sample'
3、修改httpd.conf文件,在http.conf文件中配置段添加下列语句:
vim /etc/httpd/conf/httpd.conf
重启http服务器,关闭防火墙设置允许permissive。
五、配置虚拟主机
利用虚拟主机技术,一个Apache服务器能够同时支持多个网站。虚拟主机的实现方式有三种:一基于IP地址的虚拟主机;二是基于主机名的虚拟主机;三是基于端口的虚拟主机。
当利用多个IP地址实现多个网站时,需要在Apache服务器上配置基于IP地址的虚拟主机,服务器要求配有多个网络接口卡,或采用虚拟网络接口,在同一个卡上设置多个不同的IP地址,每个虚拟主机对应一个IP地址。
假设:Apache服务器有俩个网络接口分别为 192.168.100.254和192.168.100.253,要求访问每个ip地址,都可以看到不同的网站。
1、创建 /var/www/web1 和 /var/www/web2 目录,并在俩个目录下创建主页文件index.html
mkdir /var/www/web1
mkdir /var/www/web2
echo ' 192.168.100.254 Website ' >> /var/www/web1/index.html
echo ' 192.168.100.253 website ' >> /var/www/web2/index.html
2、修改/etc/httpd/conf目录下http.conf文件,在文件中添加以下内容:
< VirtualHost 192.168.100.254 >
ServerAdmin rootxxx@hbliti.com
//设置管理员的邮件地址
DocumentRoot /var/www/web1
//设置虚拟主机的主目录
DirectoryIndex index.html
//设置默认主页文件
ErrorLog /var/log/httpd/web1_error_log
//设置错误日志
</ VirtualHost >
<VirtualHost 192.168.100.253 >
ServerAdmin rootxxx@hbliti.com
DocumentRoot /var/www/web2
DirectoryIndex index.html
ErrorLog /var/log/httpd/web2_error_log
</ VirtualHost >
systemctl restart httpd
systemctl stop firewalld
setenforce 0
getenforce