apache服务的配置

一、apache服务的基本配置

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器

执行如下命令进行apache服务的配置

.[root@localhost ~]# yum install httpd -y   #安装apache服务
 [root@localhost ~]# systemctl start httpd   #打开apache服务
 [root@localhost ~]# netstat -antuple | grep httpd #查看apache的网络端口信息
tcp6       0      0 :::80                   :::*                    LISTEN      0          26089      1199/httpd        
[root@localhost ~]# cd /var/www/html #切换到apache服务的目录下,为默认发布目录
[root@localhost html]# vim index.html #在http目录下编辑文件,并在网页进行验证,此文件为默认发布文件。
<h1>hello,world!</h1> #编辑的文件内容,此时在网页网文时字体偏大并且加粗
                      #如果编辑的内容,hello,world!此时在网页访问字体偏小,不加粗          
[root@localhost html]# systemctl stop firewalld #关闭防火墙
最后一步:进行网页验证:http://id/

实例
安装http服务
安装http服务
…………….此处省略
开启服务,没有任何报错信息,所以重启服务成功
这里写图片描述
查看http服务的网络端口信息,由下图可以看出http服务的网络端口为80
这里写图片描述
切换到/var/www/html目录下,其实web服务器访问的就是这个目录下的内容
这里写图片描述
编辑文件内容:vim index.html
这里写图片描述

hello,world!

关闭防火墙,如果不关闭防火墙,那么通过网页访问不到。
这里写图片描述
验证1
这里写图片描述
如果将index.html的内容稍稍做一些改变呢
这里写图片描述

<h1>hello,world!</h1>

验证2
这里写图片描述
由上面两个图片可以明显看出,验证1的图片字体偏小,不加粗,验证2的图片字体偏大加粗,同时最重要的一点是apache服务配置成功。

验证apache服务的配置是否与网络端口有关

查看apache服务的监听端口
这里写图片描述
41 #Listen 12.34.56.78:80
42 Listen 80
如果我们将端口改为8080,是否可以访问;
这里写图片描述
41 #Listen 12.34.56.78:80
42 Listen 8080
重启服务,这里特别要注意的是第一次重启服务时,采用的是start ,后面重启服务时采用的都是restart ,不然服务启动不了;
这里写图片描述
此时网页访问不到,出现下面的报错信息
这里写图片描述

apache服务配置不好的原因:
(1)服务没重启
(2)防火墙没有关
(3)http服务的网络端口不对
(4)SELINUX的状态
二、更改默认发布目录和默认发布文件
在我们没有进行任何更改之前,apache服务默认的发布目录是在/var/www/html下,当我们通过网页进行网页进行访问时,http://id/可以查看到以.html结尾的文件的内容。

[root@localhost ~]# mkdir  /westos/html  -p #建立目录westos并在westos目录下建立html目录
[root@localhost ~]# cd  /westos/html/   #切换到/westos/html目录下
[root@localhost html]# vim  index.html  #在上面的那个目录下建立文件,并进行编辑内容
<h1>westos html</h1>

[root@localhost html]# mkdir  linux  #在/westos/html目录下新建一个目录
[root@localhost html]# cd linux/ #切换到/westos/html/linux目录下
[root@localhost linux]# vim  red.html #在linux目录下创建文件,并进行编辑
<h1>欢迎光临</h1>

[root@localhost ~]# vim  /etc/httpd/conf/httpd.conf #编辑http服务的配置文件
119 #DocumentRoot "/var/www/html" #注释掉原有的默认发布目录
120 DocumentRoot "/westos/html"   #修改apache服务的默认发布目录为/westos/html目录
121 <Directory "/westos/html/linux"> #默认发布目录为/westos/html/linux,我们在网页访问时需要输入http://ip/linux
122            DirectoryIndex red.html #默认发布文件为red.html文件
123 </Directory>
124 <Directory "/westos">  #默认发布目录为/westos
125           require all granted #允许所有人都可以进行访问
126           DirectoryIndex index.html #默认发布文件为index.html
127 </Directory>
128 

[root@localhost ~]# systemctl restart  httpd  #重启服务
[root@localhost ~]# systemctl status firewalld #查看防火器墙的状态,如果此时的防火墙是打开的,那么需要执行"systemctl stop fiewalld"这个命令来关闭防火墙
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled)
   Active: inactive (dead)

528 20:48:51 localhost systemd[1]: Stopped firewalld - dynamic firewall...n.
Hint: Some lines were ellipsized, use -l to show in full.

实例
创建目录
这里写图片描述

切换到创建的目录下
这里写图片描述
在/westos/html目录下创建index.html文件并进行编辑
这里写图片描述

<h1>westos html</h1>

在/westos/html/下创建目录linux
这里写图片描述
在linux目录下创建文件red.html,并编辑文件内容
这里写图片描述

<h1>欢迎光临</h1>

编辑http服务的配置文件进行修改默认发布目录
这里写图片描述

119 #DocumentRoot "/var/www/html"  #注释掉原有的默认发布目录
124 <Directory "/westos">  #默认发布目录修改为/westos,在访问时实际访问的是/westos/html下的文件内容
125           require all granted #允许所有人都可以进行此目录下的文件内容
126           DirectoryIndex index.html #默认的发布文件为index.html文件
127 </Directory>
128 

重新启动服务
这里写图片描述
查看防火墙的状态,此时的防火墙是关闭的
这里写图片描述
验证过程如下
访问/westos/html/index.html文件
这里写图片描述
访问/westos/html/linux目录下的red.html文件
这里写图片描述

重新配置http的主配置文件
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

119 #DocumentRoot "/var/www/html"
120 DocumentRoot "/westos/html"
121 <Directory "/westos/html/linux"> #默认发布目录为/westos/html/linux目录
122            DirectoryIndex red.html #默认发布文件为red.html
123 </Directory>
124 <Directory "/westos">
125           require all granted  #所有人进行访问
126           DirectoryIndex index.html #修改默认发布文件
127 </Directory>
128 

验证过程如下
这里写图片描述
这里写图片描述

三、黑白名单的设定

[root@localhost ~]# mkdir /var/www/html/admin #创建目录http的默认发布目录下创建admin目录
[root@localhost ~]# vim  /var/www/html/admin/westos.html #并在admin的目录下建立westos.html文件,并编辑文件内容
[root@localhost ~]# vim  /etc/httpd/conf/httpd.conf #编辑httpd的主配置文件
119 DocumentRoot "/var/www/html" #打开默认发布目录
121 <Directory "/var/www/html/admin"> #打开默认的发布目录admin
122            Order Deny,Allow #设置黑白名单的顺序,先Deny后Allow黑白名单的顺序会有冲突,此时以后一个为主。
123            Deny from All #所有人都不能访问
124            Allow from 172.25.254.118 #允许172.25.254.118的这台主机访问。
125 </Directory>
[root@localhost ~]# systemctl restart  httpd #重启服务

实例1
在/var/www/html下创建admin目录
这里写图片描述
在admin目录下创建文件westos.html,并进行编辑内容
这里写图片描述
编辑主配置文件
这里写图片描述
重新启动服务
这里写图片描述
验证
在172.25.254.60这台主机上进行测试
这里写图片描述
在172.25.254.118这台主机测试
这里写图片描述

实例2

[root@localhost ~]# vim  /etc/httpd/conf/httpd.conf #编辑主配置文件
DocumentRoot "/var/www/html"
 <Directory "/var/www/html/admin">
           Order Allow,Deny
           Allow from All
           Deny from 172.25.254.118
</Directory>

[root@localhost ~]# systemctl restart  httpd #重启服务

在172.25.254.118这台主机上进行测试
这里写图片描述
在172.25.254.60这台主机上进行测试
这里写图片描述
三、设置用户通过认证方式访问
htpasswd 是apache的一个工具,该工具主要用于建立和更新存储用户名,密码的文本文件,主要用于对基于httpd用户的认证

[root@localhost ~]# cd  /etc/httpd  #切换到/etc/httpd目录下
[root@localhost httpd]# htpasswd -cm apacheuser admin #创建apache服务的访问用户  -c 创建新的文件 -m 用md5的方式加密密码
New password:  #输入新的密码
Re-type new password: #请再次输入密码
Adding password for user admin #为用户admin已经添加密码
[root@localhost httpd]# htpasswd -cm apacheuser tom #添加apache服务的tom用户 
New password: #输入的新的密码
Re-type new password: #请再次输入密码
Adding password for user tom #为tom用户添加密码已经成功
[root@localhost httpd]# cat apacheuser #查看apache下的用户
tom:$apr1$IeHqu2H2$1LdCjyDlaI.ZhxIuY0xkT1
admin:$apr1$J9nBUA7q$wRXaIWp9v8myNCevof.aQ.
[root@localhost httpd]# vim  /etc/httpd/conf/httpd.conf #编辑apache服务的主配置文件
 119 DocumentRoot "/var/www/html"  #开启apache服务的默认发布目录
121 <Directory "/var/www/html/admin"> #开启默认目录下的admin目录
122            AuthUserFile etc/httpd/apacheuser #加密密码的文件
123            AuthName  "please input user and password !!" #提示输入用户和密码
124            AuthType basic  #基础认证类型
125            Require user admin #允许admin用户进行访问
127 </Directory>
[root@localhost httpd]# systemctl restart httpd #重新开启服务

实例
切换到/etc/httpd目录下
这里写图片描述
设置apache用户并设置密码
这里写图片描述
这里写图片描述
查看apache服务下的用户
这里写图片描述
编辑apache服务的主配置文件
这里写图片描述

119 DocumentRoot "/var/www/html"
121 <Directory "/var/www/html/admin">
122            AuthUserFile /etc/httpd/apacheuser
123            AuthName  "please input user and password !!"
124            AuthType basic
125            Require admin
126            Require  valid-user
127 </Directory>

重新启动服务

这里写图片描述

在网页进行访问:http://172.25.254/118/admin,此时会通过用户认证的方式进行访问,如下图所示,
这里写图片描述
然后我们就可以看到文件信息
这里写图片描述

四、通过域名认证访问

[root@localhost ~]# cd  /etc/httpd/conf.d #切换到/etc/httpd/conf.d的目录下
[root@localhost conf.d]# vim default.conf #编辑default.conf的文件
 1 <VirtualHost _default_:80> #虚拟主机的端口为80
  2      DocumentRoot /var/www/html #修改主机的默认发布目录/var/www/html
  3      CustomLog "logs/default.log"  combined  #虚拟主机指定设置日志文件
  4 </VirtualHost>

[root@localhost conf.d]# mkdir /var/www/virtual /westos.com/news  -p   #创建默认发布news目录
[root@localhost conf.d]# mkdir /var/www/virtual/westos.com/music  -p  #创建默认music目录
[root@localhost conf.d]# vim  /var/www/virtual/westos.com /news/index.html  #创建默认news目录下的index.html文件
<h1>news page</h1>
[root@localhost conf.d]# vim  /var/www/virtual/westos.com/music/index.html #创建默认music目录下index.html文件
<h1>music page</h1>

[root@localhost conf.d]# vim news.conf #指定域名news.westos.com的访问默认目录
<VirtualHost  *:80>    #虚拟主机开启的端口
        ServerName news.westos.com #指定站点的名称
        DocumentRoot "/var/www/virtual/westos.com/news/" #更改默认发布目录,即网页文件存在的位置
        CustomLog "logs/news.log" combined #指定设置日志文件
</VirtualHost>
<Directory "/var/www/virtual/westos.com/news/"> #默认发布目录
        Require all granted #允许所有人都可以访问
</Directory>

[root@localhost conf.d]# vim music.conf #编辑域名music.westos.com的访问默认目录
<VirtualHost *:80>  #虚拟主机开启的端口
      ServerName music.westos.com #站点名称
      DocumentRoot "/var/www/virtual/westos.com/music/" #修改默认发布目录
      CustomLog "logs/music.log" combined #设置日志文件
</VirtualHost>
<Directory "/var/www/virtual/westos.com/music/"> #默认发布目录
       Require all granted #允许所有人都可以访问
</Directory>

[root@localhost conf.d]# systemctl restart httpd #重启服务

真机里进行解析

主机解析
[root@foundation60 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.254.250  content.example.com
172.25.254.118  www.westos.com  news.westos.com music.westos.com  login.westos.com

实例
切换到/etc/httpd/conf.d文件
这里写图片描述
编辑default.conf文件
这里写图片描述
创建目录news
这里写图片描述
创建目录music
这里写图片描述
在news目录下创建index.html文件,并进行编辑
这里写图片描述
在music目录下创建index.html文件,并进行编辑
这里写图片描述
编辑news的配置文件

这里写图片描述
编辑music的配置文件
这里写图片描述
重新启动服务
这里写图片描述
在真理编辑解析文件:vim /etc/hosts

这里写图片描述
验证1:www.westos.com
这里写图片描述

验证2:news.westos.com

这里写图片描述
验证3:music.westos.com
这里写图片描述
五、网页加密

[root@localhost ~]# yum install mod_ssl -y #安装mod_ssl安装包
[root@localhost ~]# ls  /etc/httpd/conf.d/ #查看目录下的内容
autoindex.conf  music.conf  php.conf  ssl.conf      welcome.conf
default.conf    news.conf   README    userdir.conf
[root@localhost ~]# yum install crypto-utils -y #下载加密软件
[root@localhost ~]# genkey news.westos.com  #加密网页news.westos.com

此时就会出现以下的界面,选择next

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
此时选择N0
这里写图片描述

这里写图片描述
修改证书的地址及其需要认证的文件
这里写图片描述

此时genkey news.westos.com下就会出现下面的信息,以脚本的形式显现出来
/usr/bin/keyutil -c makecert -g 2048 -s "CN=news.westos.com, OU=linux, O=westos, L=xi'an, ST=Shannxi, C=CN" -v 1 -a -z /etc/pki/tls/.rand.7412 -o /etc/pki/tls/certs/news.westos.com.crt -k /etc/pki/tls/private/news.westos.com.key
cmdstr: makecert

cmd_CreateNewCert
command:  makecert
keysize = 2048 bits
subject = CN=news.westos.com, OU=linux, O=westos, L=xi'an, ST=Shannxi, C=CN
valid for 1 months
random seed from /etc/pki/tls/.rand.7412
output will be written to /etc/pki/tls/certs/news.westos.com.crt
output key written to /etc/pki/tls/private/news.westos.com.key


Generating key. This may take a few moments...

Made a key
Opened tmprequest for writing
/usr/bin/keyutil Copying the cert pointer
Created a certificate
Wrote 1682 bytes of encoded data to /etc/pki/tls/private/news.westos.com.key 
Wrote the key to:
/etc/pki/tls/private/news.westos.com.key
[root@localhost ~]# vim /etc/httpd/conf.d/ssl.conf  #修改ssl的配置文件
101 SSLCertificateFile  /etc/pki/tls/certs/news.westos.com.crt
110 SSLCertificateKeyFile /etc/pki/tls/private/news.westos.com.key
[root@localhost ~]# systemctl restart httpd #重新启动服务

此时需要进行获得证书的许可
这里写图片描述
查看证书的信息
这里写图片描述
在网页进行访问:https://news.westos.com
这里写图片描述
六、http自动传到https

[root@localhost ~]# cd /etc/httpd/conf.d/ #切换到/etc/httpd/conf.d的目录下
[root@localhost conf.d]# vim login.conf #编辑login的配置文件
<VirtualHost *:443> #虚拟主机的默认端口
            ServerName login.westos.com #站点的名称
            DocumentRoot  "/var/www/virtual/westos.com/login/" #更改默认的发布目录
            CustomLog  "logs/login.log"  combined #设置日志文件
            SSLEngine on  
            SSLCertificateFile  /etc/pki/tls/certs/news.westos.com.crt  #证书加密文件
            SSLCertificateKeyFile  /etc/pki/tls/private/news.westos.com.key  #证书文件的钥匙
</VirtualHost>
<Directory "/var/www/virtual/westos.com/login/"> #更改默认发布目录
            Require  all granted #允许所有人访问
</Directory>
<VirtualHost  *:80> #虚拟主机的默认端口
            ServerName  login.westos.com #站点名称
            RewriteEngine on
            RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>
############
^(/.*)$         ##客户在浏览器地址栏输入的所有字符
https://        ##强制客户加密访问
%{HTTP_HOST}    ##客户强求主机
$1              ##表示^(/.*)$ 的值
[redirect=301]  ##临时重写,302表示永久重写
[root@localhost conf.d]# mkdir /var/www/virtual/westos.com/login/ #创建默认发布目录
[root@localhost conf.d]# vim /var/www/virtual/westos.com/login/index.html #创建默认发布文件,并编辑文件内容
<h1>login page</h1>
~                   
[root@localhost conf.d]# systemctl restart httpd #重新启动服务

验证

获取证书
这里写图片描述

这里写图片描述

这里写图片描述
这里写图片描述
这里写图片描述
七、apache支持语言
apache支持的语言是html

添加apache语言:php和ccgi

[root@localhost ~]# yum install php -y #安装php服务 -y直接安装,不需要任何提示
Loaded plugins: langpacks
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.4.16-21.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================
 Package    Arch          Version                Repository       Size
=======================================================================
Installing:
 php        x86_64        5.4.16-21.el7          rhel_dvd        1.3 M

Transaction Summary
=======================================================================
Install  1 Package

Total download size: 1.3 M
Installed size: 4.4 M
Downloading packages:
php-5.4.16-21.el7.x86_64.rpm                      | 1.3 MB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : php-5.4.16-21.el7.x86_64                            1/1
  Verifying  : php-5.4.16-21.el7.x86_64                            1/1

Installed:
 php.x86_64 0:5.4.16-21.el7                                           

Complete!  #显示安装完成

[root@localhost ~]# cd /var/www/html/ #切换到apache服务的默认目录下

[root@localhost html]# vim  index.html #在默认目录下建立index.html文件,并编辑文件内容

[root@localhost html]# cat index.html #查看文件里的内容
hello,qq
[root@localhost html]# vim index.php #编辑index.php文件内容
[root@localhost html]# cat index.php  #查看index.php的内容
<?php
        phpinfo();
?>
[root@localhost html]# mkdir cgi #创建cgi的目录
[root@localhost html]# ls #查看是否成功创建cgi目录
cgi  index.html  index.php  test.html  westos
[root@localhost html]# vim cgi/index.cgi #在cgi目录下编辑index.cgi文件及其内容

[root@localhost html]# cat cgi/index.cgi #查看文件内容
#!/usr/bin/per1 
print "Content-type: text/html\n\n";     ##输出Content-type: text/html并执行两次换行
print "Hello, world."; ###优先执行反单引号内的内容,并将执行结果作为外部的输入信息
[root@localhost html]# vim /etc/httpd/conf/httpd.conf #编辑apache服务的主配置文件

173 <IfModule dir_module>
174     DirectoryIndex index.php  index.html #在主配置文件中添加新建的默认发布文件index.php
175 </IfModule>
[root@localhost html]# systemctl restart httpd #开启httpd服务

在网页进行访问验证
这里写图片描述
这里写图片描述
这里写图片描述
八、论坛的搭建

[root@localhost html]# lftp 172.25.254.250  #在250这台主机上下载软件
lftp 172.25.254.250:~> cd pub    #切换到pub目录下      
cd ok, cwd=/pub
lftp 172.25.254.250:/pub> get Discuz_X3.2_SC_UTF8.zip #下载需要搭建的软件
12486177 bytes transferred             
lftp 172.25.254.250:/pub> quit
[root@localhost html]# ls #查看是否已经下载Discuz安装包
cgi                      index.html  test.html
Discuz_X3.2_SC_UTF8.zip  index.php   westos
[root@localhost html]# unzip Discuz_X3.2_SC_UTF8.zip #解压Discuz安装包
[root@localhost html]# ls #查看是否已经解压
cgi                      index.php  upload
Discuz_X3.2_SC_UTF8.zip  readme     utility
index.html               test.html  westos
[root@localhost html]# chmod 777 /var/www/html/upload/ -R #将upload目录及其目录下所有内容修改权限
[root@localhost html]# mysql -uroot -plee #查看数据库的密码是什么
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.35-MariaDB MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> Ctrl-C -- exit!
[root@localhost html]# yum install php-mysql -y #安装php-mysql的数据库
Loaded plugins: langpacks
Resolving Dependencies
--> Running transaction check
---> Package php-mysql.x86_64 0:5.4.16-21.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================
 Package     Arch     Version         Repository  Size
=======================================================
Installing:
 php-mysql   x86_64   5.4.16-21.el7   rhel_dvd    96 k

Transaction Summary
=======================================================
Install  1 Package

Total download size: 96 k
Installed size: 232 k
Downloading packages:
php-mysql-5.4.16-21.el7.x86_64.rp |  96 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : php-mysql-5.4.16-21.el7.x86_64      1/1
  Verifying  : php-mysql-5.4.16-21.el7.x86_64      1/1

Installed:
  php-mysql.x86_64 0:5.4.16-21.el7                     

Complete! #由complete可以看出已经安装成功
[root@localhost html]# systemctl restart mariadb.service #重启数据库
[root@localhost html]# systemctl restart httpd #重启httpd服务

网页进行论坛的搭建
同意授权协议
这里写图片描述

这里写图片描述
输入数据库的用户名和密码及其管理员两次密码,此时就会出现以下的界面
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/dhjibk/article/details/80507622