centos7.6设置LAMP(二)

一.设置虚拟主机:

虚拟主机,可以在一台机器上运行多个站点,标记多个域名。如果没有标记的域名也指向这台服务器,则指向默认虚拟主机。

[root@ligenkelong ~]# vim /usr/local/apache2.4/conf/httpd.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf  把行首#号去掉,打开虚拟主机功能

   <VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName abc.com
    ServerAlias www.abc.com www.123.com
    ErrorLog "logs/abc.com-error_log"
    CustomLog "logs/abc.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"   虚拟主机站点根目录
    ServerName 111.com    网站的域名
    ServerAlias www.example.com   网站的第二域名
    <Directory /data/wwwroot/111.com>         
        AllowOverride AuthConfig     
        AuthName "111.com user auth"
        AuthType Basic
        AuthUserFile /data/.htpasswd
        require valid-user
    </Directory>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" common

创建目录:

[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl -t  验证配置文件是否出错
[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl graceful  重新加载配置

[root@ligenkelong ~]# mkdir /data/wwwroot/abc.com/   
[root@ligenkelong ~]# mkdir /data/wwwroot/111.com/
 [root@ligenkelong ~]# vim /data/wwwroot/abc.com/index.php
<?php
echo "abc.com";
?>
[root@ligenkelong ~]# vim /data/wwwroot/111.com/index.php

二.用户认证:

[root@ligenkelong ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <Directory /data/wwwroot/111.com>
        AllowOverride AuthConfig  #打开认证的开关
        AuthName "111.com user auth"    #自定义认证的名字,作用不大
        AuthT  ype Basic    认证类型  basic
        AuthUserFile /data/.htpasswd   密码文件存放位置
        require valid-user   #需要认证的用户为全部可用用户
    </Directory>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" common

</VirtualHost>

创建密码文件:

[root@ligenkelong ~]# /usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd root  #第二次创建不用加-c否则文件会被清空
[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl gracefu

在windows上修改域名解析
hosts文件在c\windows\system32\drivers\etc\hosts增加一行:
IP地址 www.111.com
针对文件设置用户认证:
编辑配置文件:

  [root@ligenkelong ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl -t

三.配置域名跳转:

一个网站可能有多个域名,不同的域名跳转到同一个站点,这就是域名跳转。
例如abc.com域名跳转到www.abc.com,配置如下:

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName abc.com
    ServerAlias www.abc.com
    <IfModule mod_rewrite.c>    #需要支持mod_rewrite模块 
        RewriteEngine on       #开启rewrite模块
        RewriteCond %{HTTP_HOST} !^www.123.com$  #定义rewrite的条件
        RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L]  #满足上面条件,执行这条
    </IfModule>
    ErrorLog "logs/abc.com-error_log"
    CustomLog "logs/abc.com-access_log" common
</VirtualHost>

查看httpd是否加载rewrite模块:

    [root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl -M|grep -i rewrite  #如果没有输出,则要配置
[root@ligenkelong ~]# vim /usr/local/apache2.4/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so  #把#号去掉

[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl -M|grep -i rewrite
 rewrite_module (shared)

测试:

[root@ligenkelong ~]# curl -x127.0.0.1:80 -I 123.com
HTTP/1.1 301 Moved Permanently
Date: Fri, 10 May 2019 04:55:45 GMT
Server: Apache/2.4.38 (Unix) PHP/7.1.25
Location: http://www.abc.com/
Content-Type: text/html; charset=iso-8859-1

状态码类型说明:
https://blog.csdn.net/menggx1/article/details/81071569
200:正常请求已完成
301:永久重定向
403:禁止访问。
404:找不到服务器给定的资源,文件不存在
304 Not Modified:服务端的资源与客户端上一次请求的一致,不需要重新传输,客户端使用本地缓存的即可
[root@ligenkelong extra]# vim /usr/local/apache2.4/conf/httpd.conf
Require all granted #改成denied就会出现403

四.配置访问日志:

访问日志记录网站的访问情况。

[root@ligenkelong ~]# vim /usr/local/apache2.4/conf/httpd.conf
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

%h:访问网站的ip
%l:远程登入名
%u:用户名
%t:时间
%r:请求的动作方式(curl -I 显示HEADE)
%s:请求的状态码 %>s为最后的状态码
%b:传输的数据大小
%{Referer}i为referer信息(请求本地地址的上一次地址就是referer
%{User-Agent}i为浏览器标识
修改主机配置:

       [root@ligenkelong ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
       
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName www.abc.com
    ServerAlias abc.com
    <IfModule mod_rewrite.c>    #mod_rewrite mo kuai zhichi
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^www.abc.com$
        RewriteRule ^/(.*)$ http://www.abc.com/$1 [R=301,L]
    </IfModule>
    CustomLog "logs/abc.com-access_log" combined
</VirtualHost>

<VirtualHost *:80>

[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl graceful

测试:

[root@ligenkelong ~]# curl -x127.0.0.1:80 -I abc.com
HTTP/1.1 301 Moved Permanently
Date: Fri, 10 May 2019 05:36:13 GMT
Server: Apache/2.4.38 (Unix) PHP/7.1.25
Location: http://www.abc.com/
Content-Type: text/html; charset=iso-8859-1
**httpd日志位置:**
[root@ligenkelong ~]# tail /usr/local/apache2.4/logs/abc.com-access_log 

五.访问日志切割:

[root@ligenkelong ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName www.abc.com
    ServerAlias abc.com
    <IfModule mod_rewrite.c>    #mod_rewrite mo kuai zhichi
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^www.abc.com$
        RewriteRule ^/(.*)$ http://www.abc.com/$1 [R=301,L]
    </IfModule>
    SetEnvIf Request_URI ".*\.gif$" image-request
    SetEnvIf Request_URI ".*\.jpg$" image-request
    SetEnvIf Request_URI ".*\.png$" image-request
    SetEnvIf Request_URI ".*\.bmp$" image-request
    SetEnvIf Request_URI ".*\.swf$" image-request
    SetEnvIf Request_URI ".*\.js$" image-request
    SetEnvIf Request_URI ".*\.css$" image-request
    CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/abc.com-access_%Y%m%d.log 86400" combined env=!image-request
</VirtualHost>

[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl graceful

测试:

[root@ligenkelong ~]# curl -x127.0.0.1:80 123.com
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.abc.com/">here</a>.</p>
</body></html>
[root@ligenkelong ~]# ls /usr/local/apache2.4/logs/
111.com-access_log           abc.com-access_log  error_log
111.com-error_log            abc.com-error_log   httpd.pid
abc.com-access_20190510.log  access_log

问题:
中途因为少了个/导致httpd无法启动,httpd报错403
http://ask.apelearn.com/question/10261

六.配置静态元素过期时间

状态码304表示该文件已经缓存到用户的电脑上了,再次请求它的时候不用从服务器下载,二十直接访问用户电脑里面的缓存,这样做的目的降低服务器资源的消耗,提升网站访问速度。
控制缓存过期时间:
编辑虚拟主机配置:

[root@ligenkelong ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName www.abc.com
    ServerAlias abc.com
    <IfModule mod_rewrite.c>    #mod_rewrite mo kuai zhichi
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^www.abc.com$
        RewriteRule ^/(.*)$ http://www.abc.com/$1 [R=301,L]
    </IfModule>
    SetEnvIf Request_URI ".*\.gif$" image-request
    SetEnvIf Request_URI ".*\.jpg$" image-request
    SetEnvIf Request_URI ".*\.png$" image-request
    SetEnvIf Request_URI ".*\.bmp$" image-request
    SetEnvIf Request_URI ".*\.swf$" image-request
    SetEnvIf Request_URI ".*\.js$" image-request
    SetEnvIf Request_URI ".*\.css$" image-request
    CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/abc.com-access_%Y%m%d.log 86400" combined env=!image-request
    <IfModule mod_expires.c>
        ExpiresActive on
        ExpiresByType image/gif "access plus 1 days"
        ExpiresByType image/jpeg "access plus 24 hours"
        ExpiresByType image/png "access plus 24 hours"
        ExpiresByType text/css "now plus 2 hours"
        ExpiresByType application/x-javascript "now plus 2 hours"
        ExpiresByType application/javascript "now plus 2 hours"
        ExpiresByType application/x-shockwave-flash "now plus 2 hours"
        ExpiresDefault "now plus 0 min"
    </Ifmodule>

</VirtualHost>

[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl graceful

检查httpd是否加载expires模块:

[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl -M|grep -
i expires
[root@ligenkelong ~]# vim /usr/local/apache2.4/conf/httpd.conf
LoadModule expires_module modules/mod_expires.so

[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@ligenkelong ~]# /usr/local/apache2.4/bin/apachectl -M|grep -i expires
 expires_module (shared)

测试:
[root@ligenkelong ~]# curl -x127.0.0.1:80 -I www.abc.com/index.phpHTTP/1.1 200 OK
Date: Fri, 10 May 2019 08:34:37 GMT
Server: Apache/2.4.38 (Unix) PHP/7.1.25
X-Powered-By: PHP/7.1.25
Cache-Control: max-age=0 #说明没有缓存该类型的文件
Expires: Fri, 10 May 2019 08:34:37 GMT
Content-Type: text/html; charset=UTF-8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在CentOS 7.6上设置NTP服务器,您可以按照以下步骤进行操作: 1. 编辑NTP配置文件:使用命令`vim /etc/ntp.conf`打开NTP配置文件。 2. 添加以下内容到配置文件中: ``` restrict 172.25.10.6 nomodify notrap nopeer noquery restrict 172.25.10.1 mask 255.255.255.0 nomodify notrap server 127.127.1.0 fudge 127.127.1.0 stratum 10 ``` 其中,172.25.10.6是本机IP地址,172.25.10.1是网关地址。 3. 保存并关闭文件。 4. 重启NTP服务并开启相关端口:使用命令`systemctl restart ntpd`重启NTP服务。由于NTP服务使用UDP协议,需要开启123端口,可以使用以下命令添加防火墙规则: ``` firewall-cmd --permanent --zone=public --add-port=123/udp firewall-cmd --reload ``` 5. 设置NTP服务自启动:使用命令`systemctl enable ntpd`设置NTP服务在系统启动时自动启动。 6. 进行NTP服务器测试:可以使用命令`ntpq -p`检查NTP服务器是否正常工作。您应该会看到一些关于时间同步源的输出。 通过以上步骤,您就可以在CentOS 7.6上成功设置NTP服务器了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [CentOS7.6搭建NTP服务器](https://blog.csdn.net/weixin_38467835/article/details/106194413)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [如何在CentOS中设置NTP服务器](https://download.csdn.net/download/weixin_38619207/14065557)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值