DNS域名管理系统与LAMP编译安装

  • 一、DNS域名管理系统
    • 1、DNS两种解析
    • 2、DNS的反向解析
    • 3、VMware与CentOS7网络的小bug
    • 4、多域DNS服务器搭建
    • 5、ntp服务器搭建
    • 6、DNS主从部署
  • 二、LAMP源码构建
    • 1、项目背景
    • 2、任务要求
    • 3、环境准备
    • 4、系统环境
    • 5、依赖软件安装
    • 6、AMP软件安装注意事项
  • 三、编译安装MySQL软件
    • 1、安装需求
    • 2、MySQL安装详解
  • 四、编译安装Apache软件
    • 1、源码安装依赖软件apr
    • 2、编译安装Apache软件(重点)
  • 五、源码安装PHP软件
    • 1、安装说明
    • 2、配置Apache与PHP
    • 3、编写php测试脚本
  • 六、使用LAMP部署Web项目
    • 1、下载wordpress博客系统
    • 2、解压
    • 3、创建一个项目目录
    • 4、配置虚拟主机(一台服务器多个项目)
    • 5、在数据库中创建一个blog数据库
    • 6、在Windows中配置本地DNS
    • 7、使用Google浏览器或Firefox浏览器安装博客

一、DNS域名管理系统

1、DNS两种解析

正向解析:把域名解析为对应的IP地址

反向解析:把IP地址解析为对应的域名

2、DNS的反向解析

目标:把10.1.1.13这个IP地址通过DNS服务器指向www.itcast.cluster域名

第一步:开启网络的访问权限控制

# vim /etc/named.conf
12 options {13         listen-on port 53 { 127.0.0.1;any; };
14         listen-on-v6 port 53 { ::1; };
15         directory       "/var/named";
16         dump-file       "/var/named/data/cache_dump.db";
17         statistics-file "/var/named/data/named_stats.txt";
18         memstatistics-file "/var/named/data/named_mem_stats.txt";
19         recursing-file  "/var/named/data/named.recursing";
20         secroots-file   "/var/named/data/named.secroots";
21         allow-query     { localhost;any;};

第二步:在zones文件中定义zone文件

# vim /etc/named.rfc1912.zones
49 zone "1.1.10.in-addr.arpa" IN {50         type master;
51         file "10.1.1.zone";
52         allow-update { none; };
53 };

第三步:cd /var/named进入到DNS zone配置文件目录,复制named.loopback文件

# cd /var/named
# cp -p named.loopback 10.1.1.zone

第四步:编辑10.1.1.zone文件,把IP地址=>10.1.1.13指向www.itcast.cluster域名

$TTL 1D
@       IN SOA  @ rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      @A       127.0.0.1AAAA    ::1PTR     localhost.
#增加一条反向解析,把10.1.1.13 => PTR => www.itcast.cluster
13      PTR     www.itcast.cluster

第五步:检查与客户端测试

DNS服务器:

# named-checkconf /etc/named.conf
# named-checkconf /etc/named.rfc1912.zones# cd /var/named
# named-checkzone 10.1.1.zone 10.1.1.zone# systemctl restart named

客户端检测:

# echo 'nameserver 10.1.1.12' > /etc/resolv.conf
# nslookup 10.1.1.13
www.itcast.cluster.1.1.10.in-addr.arpa.

3、VMware与CentOS7网络的小bug

DNS的临时配置方式 => echo ‘nameserver 10.1.1.12’ > /etc/resolv.conf

注:当VMware关闭或者挂起时,临时设置的DNS会被重置

CentOS7版本中,有的时候,在网络配置时,明明设置了静态IP,但是无论重启网络、重启网卡,其设置的IP地址都没有生效。

# ifconfig ens33# ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:68:d8:bb brd ff:ff:ff:ff:ff:ffinet 10.1.1.29/24 brd 10.1.1.255 scope global noprefixroute dynamic ens33valid_lft 1656sec preferred_lft 1656secinet 10.1.1.11/24 brd 10.1.1.255 scope global secondary ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe68:d8bb/64 scope link valid_lft forever preferred_lft forever

出现以上问题的主要原因在于图形化界面中的NetworkManager服务没有关闭!

解决方案:

# systemctl stop NetworkManager
# systemctl disable NetworkManager

4、多域DNS服务器搭建

需求:搭建一个DNS服务器,可以同时解析test.net和heima.cc域

编号 域名 IP地址
1 www.test.net 10.1.1.13
2 bbs.heima.cc 10.1.1.13

第一步:更改named.conf文件,设置网络访问权限

# vim /etc/named.rfc1912.zones
49 zone "1.1.10.in-addr.arpa" IN {50         type master;
51         file "10.1.1.zone";
52         allow-update { none; };
53 };

第二步:更改named.rfc1912.zones,添加test以及heima域

# vim /etc/named.rfc1912.zones
...
zone "test.net" IN {type master;file "test.net.zone";allow-update { none; };
};zone "heima.cc" IN {type master;file "heima.cc.zone";allow-update { none; };
};

第三步:进入/var/named目录,复制named.localhost

# cd /var/named
# cp -p named.localhost test.net.zone
# cp -p named.localhost heima.cc.zone

第四步:编辑test.net.zone与heima.cc.zone文件

# vim test.net.zone
...
www     A    10.1.1.13# vim heima.cc.zone
...
bbs     A    10.1.1.13

第五步:检测配置文件,然后启动named服务(重启)

# named-checkconf /etc/named.conf
# named-checkconf /etc/named.rfc1912.zones# cd /var/named
# named-checkzone test.net.zone test.net.zone
# named-checkzone heima.cc.zone heima.cc.zone# systemctl restart named

5、ntp服务器搭建

基础班ntp回顾:

# ntpdate cn.ntp.org.cn

虽然以上方式,可以实现对时间的校对!但是由于需要连接外网,其同步需要消耗一定的时间,那有没有更好的解决办法呢?

第一步:准备一台NTP时间服务器

编号 主机名称 IP地址 备注信息
1 ntp.itcast.cn 10.1.1.100 NTP内网时间服务器

扩展:在原有基础上,记住要关闭NetworkManager服务

第二步:安装ntp服务软件

# yum install ntp -y

第三步:更改配置文件,开启ntp服务

# vim /etc/ntp.conf
13 restrict 127.0.0.1
14 restrict ::1
# 手工添加10.1.1.0网段,范围10.1.1.1 ~ 10.1.1.254
15 restrict 10.1.1.0 mask 255.255.255.0

第四步:启动ntpd服务

# ntpdate cn.ntp.org.cn
# systemctl restart ntpd

到此NTP时间服务器配置完毕,以后所有的计算机都可以直接使用ntpdate同步此NTP服务器

DNS-MASTER、DNS-SLAVE

# ntpdate 10.1.1.100

10.1.1.100是内网NTP时间服务器的IP地址

除此以外,我们还可以使用计划任务,定期进行时间的同步(针对所有的客户端)

# crontab -e
*/2 * * * * /usr/sbin/ntpdate 10.1.1.100 &>/dev/null

6、DNS主从部署

主从部署的核心思路:

1. master和slave的系统时间保持一致
2. slave服务器上安装相应的软件(系统版本、软件版本保持一致)
3. 根据需求修改相应的配置文件(master和slave都应该去修改)
4. 主从同步的核心是slave同步master上的区域文件(zone文件)

master:主 slave:从

第一步:准备一台slave从服务器(略)

① 克隆 ② 更改主机名称以及IP地址(更改UUID编号、关闭NetworkManager)③ 关闭防火墙与SELinux ④ 配置YUM源

编号 主机名称 IP地址 备注信息
1 slave.itcast.cn 10.1.1.14 dns slave从服务器

第二步:更改主dns服务器,允许其他的从服务器下载同步资源

# vim /etc/named.conf
12 options {13         listen-on port 53 { 127.0.0.1;any; };
14         listen-on-v6 port 53 { ::1; };
15         allow-transfer {10.1.1.14; };    =>  允许从服务器的IP地址过来同步资源
16         directory       "/var/named";
17         dump-file       "/var/named/data/cache_dump.db";
18         statistics-file "/var/named/data/named_stats.txt";
19         memstatistics-file "/var/named/data/named_mem_stats.txt";
20         recursing-file  "/var/named/data/named.recursing";
21         secroots-file   "/var/named/data/named.secroots";
22         allow-query     { localhost;any;};# systemctl restart named

第三步:SLAVE从服务器配置

# yum install bind -y# vim /etc/named.conf
12 options {13         listen-on port 53 { 127.0.0.1;any; };
14         listen-on-v6 port 53 { ::1; };
15         directory       "/var/named";
16         dump-file       "/var/named/data/cache_dump.db";
17         statistics-file "/var/named/data/named_stats.txt";
18         memstatistics-file "/var/named/data/named_mem_stats.txt";
19         recursing-file  "/var/named/data/named.recursing";
20         secroots-file   "/var/named/data/named.secroots";
21         allow-query     { localhost;any; };# vim /etc/named.rfc1912.zones
zone "test.net" IN {type slave;file "slaves/test.net";masters { 10.1.1.12; };
};zone "heima.cc" IN {type slave;file "slaves/heima.cc";masters { 10.1.1.12; };
};# 检测配置文件是否有错(略)
# named-checkconf ...# systemctl restart named

第四步:在Client客户端,把Slave从服务器的IP设置为DNS

# echo 'nameserver 10.1.1.14' > /etc/resolv.conf
# nslookup www.test.net

二、LAMP源码构建

1、项目背景

为企业内部的开发人员,部署一套“预发布系统”,要求其环境与线上环境一模一样。

由于项目是基于PHP + MySQL进行开发设计的,所以我们需要选配环境。

LAMP = Linux + Apache + MySQL + PHP

LNMP = Linux + Nginx + MySQL + PHP

经过开发人员的沟通确认 => LAMP作为预发布环境!

2、任务要求

  • 源码部署LAMP环境,和生产保持一致
  • 静态资源文件同步生产环境(生产发生改变立马同步到预发布平台)

3、环境准备

系统环境:CentOS7.6

软件环境:AMP(Apache、MySQL以及PHP)

Apache——>2.4.37(2.2与2.4)
MySQL——>5.6.31(5.5、5.6与5.7)
PHP——>7.2.17(5.2、5.4、5.6、7.0、7.1、7.2)

4、系统环境

编号 主机名称 IP地址 备注信息
1 web.itcast.cn 10.1.1.13 LAMP预发布环境

① 更改主机名称、配置IP地址(静态IP、更改UUID编号、关闭NetworkManager)

② 关闭防火墙、SELinux

③ 配置YUM源(有网配公网,没网配光盘或自建YUM源)

5、依赖软件安装

# yum install cmake pcre-devel ncurses-devel openssl-devel libcurl-devel

6、AMP软件安装注意事项

编译安装顺序:

Linux+Apache(2.4)+MySQL(5.6.31)+PHP(7.2.17)Apache——>MySQL——>PHP 或者  MySQL——>Apache——>PHP

三、编译安装MySQL软件

1、安装需求

软件版本 安装目录 数据目录 端口
mysql-5.6.31 /usr/local/mysql /usr/local/mysql/data 3306

2、MySQL安装详解

第一步:创建一个mysql系统账号(没有这个账号mysql无法运行)

# useradd -r -s /sbin/nologin mysql

第二步:对软件进行解压

# tar xf mysql-5.6.31.tar.gz
# cd mysql-5.6.31

第三步:使用cmake配置MySQL的安装向导

# vim cmake.sh
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_USER=mysql# chmod +x cmake.sh
# ./cmake.sh

第四步:make && make install

# make && make install

第五步:更改目录权限以及初始化数据库

# chown -R mysql.mysql /usr/local/mysql# cd /usr/local/mysql
删除/etc/my.cnf文件,如果不删除此文件,会导致初始化失败
# rm -f /etc/my.cnf
初始化就是给mysql数据库一些初始化的数据(如账号、密码、数据文件,ll data)
# ./scripts/mysql_install_db --user=mysql
# ll data
这个目录如果产生了一个mysql的文件夹就代表初始化成功了

第六步:把mysql的启动脚本copy到/etc/init.d目录下,起一个名称叫做mysql

# cp support-files/mysql.server /etc/init.d/mysql
# service mysql start

第七步:设置密码与环境变量

# cd /usr/local/mysql
# bin/mysqladmin -u root password '123'

生产环境下,密码一定要越复杂越好

第八步:把/usr/local/mysql/bin目录添加到环境变量

# echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
# source /etc/profile# mysql -uroot -p
Enter password:123
mysql> exit;

四、编译安装Apache软件

1、源码安装依赖软件apr

安装apr软件:
# tar xf apr-1.5.2.tar.bz2
# cd apr-1.5.2
# ./configure && make && make install安装apr-util软件:
# tar xf apr-util-1.5.4.tar.bz2
# cd apr-util-1.5.4/
# ./configure --with-apr=/usr/local/apr/bin/apr-1-config    指定软件apr的路径
# make && make install

2、编译安装Apache软件(重点)

第一步:解压软件

# yum remove httpd -y# tar xf httpd-2.4.37.tar.bz2
# cd httpd-2.4.37

第二步:编写apache.sh脚本进行软件安装

# vim apache.sh
./configure \
--enable-modules=all \
--enable-mods-shared=all \
--enable-so \
--enable-rewrite \
--with-pcre \
--enable-ssl \
--with-mpm=prefork \
--with-apr=/usr/local/apr/bin/apr-1-config \
--with-apr-util=/usr/local/apr/bin/apu-1-config

第三步:给予x权限,然后make && make install

# chmod +x apache.sh
# ./apache.sh# make && make install

第四步:运行Apache软件

# cd /usr/local/apache2/
# bin/apachectl

五、源码安装PHP软件

1、安装说明

第一步:对软件进行解压缩

# tar xf php-7.2.17.tar.xz
# cd php-7.2.17

第二步:对php源码进行一个配置

# vim php.sh
./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysqli \
--with-pdo-mysql \
--with-zlib \
--with-curl \
--enable-zip \
--with-gd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-opcache \
--enable-mbstring \
--enable-mbregex \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-calendar \
--enable-bcmath# chmod +x php.sh
# ./php.sh

第三步:解决PHP依赖关系

configure: error: libxml2 not found. Please check your libxml2 installation.

出现以上提示,代表php与其他软件存在依赖关系:

# yum install libxml2-devel -y

除了以上这个依赖以外,还存在其他依赖:

# yum install libjpeg-devel libpng-devel freetype-devel -y

第四步:编译+安装

# make && make install

第五步:检查php有没有安装成功

# ls /usr/local/apache2/modules/libphp7.so

2、配置Apache与PHP

第一步:打开Apache的配置文件

# vim /usr/local/apache2/conf/httpd.conf
209行 ServerName localhost:80

第二步:配置Apache语言支持(支持中文)

159行 LoadModule negotiation_module modules/mod_negotiation.so 此模块打开注释
483行 Include conf/extra/httpd-languages.conf  打开此选项,扩展配置文件就生效了
...

第三步:开启对PHP的支持

166行 LoadModule php7_module modules/libphp7.so
AddHandler php7-script .php
AddType text/html .php

第四步:添加index.php默认首页

//默认主页加上index.php,并放在index.html前,支持php的首页文件
<IfModule dir_module>
270行    DirectoryIndex index.php index.html
</IfModule>

第五步:让Apache优先支持中文

# vim /usr/local/apache2/conf/extra/httpd-languages.conf
19行 DefaultLanguage zh-CN     打开注释,默认语言集改为中文
78行 LanguagePriority zh-CN en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-TW     语言集优先集,把zh-CN 写到前面

设置完成后,重启Apache软件

# cd /usr/local/apache2
# bin/apachectl -k restart
# bin/apachectl -k restart备注:如果还不行,直接pkill httpd,然后bin/apachectl启动

3、编写php测试脚本

# cd /usr/local/apache2/htdocs                  htdocs就是apache的默认项目目录
# rm -f index.html
# vim index.php
<?phpphpinfo();
?>

到此,LAMP源码编译安装就结束了!

六、使用LAMP部署Web项目

1、下载wordpress博客系统

wordpress-4.7.3-zh_CN.tar.gz

2、解压

# tar xf wordpress-4.7.3-zh_CN.tar.gz

3、创建一个项目目录

# mkdir /www
# mv wordpress /www/blog# chown -R daemon.daemon /www/blog/

4、配置虚拟主机(一台服务器多个项目)

正常情况下:/usr/local/apache2/htdocs目录下(相当于/var/www/html)

一台服务器多个项目:使用虚拟主机

第一步:在httpd.conf配置文件中开启虚拟主机的配置文件

# vim /usr/local/apache2/conf/httpd.conf
# Virtual hosts
494行 Include conf/extra/httpd-vhosts.conf       //打开加载虚拟主机配置文件

第二步:在/usr/local/apache2/conf/extra/httpd-vhosts.conf定义项目

# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

第三步:重启Apache

# cd /usr/local/apache2
# bin/apachectl -k stop
# bin/apachectl

5、在数据库中创建一个blog数据库

# mysql -uroot -p
Enter password:123
mysql> create database blog default charset utf8;

6、在Windows中配置本地DNS

运行(Windows + R) => drivers + 回车:C:\Windows\System32\drivers\etc\hosts

Windows的DNS文件 => 可以劫持域名,自定义域名指向:

10.1.1.13 www.blog.com

7、使用Google浏览器或Firefox浏览器安装博客

第一次访问:报403 Forbidden

原因:默认情况下,httpd不允许其他主机访问项目目录

解决方案:

# vim /usr/local/apache2/conf/httpd.conf

配置数据库:

运行结果:

第三步:重启Apache

# cd /usr/local/apache2
# bin/apachectl -k stop
# bin/apachectl

DNS域名管理系统与LAMP编译安装相关推荐

  1. LAMP编译安装之———httpd

    LAMP(Linux- Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据 库,Perl.PHP或者Pytho ...

  2. LAMP编译安装(一)——安装Apache2.4

    背景介绍 LAMP是LNMP结构提出之前风靡了很久的结构,本系列就从无到有一点点介绍LAMP的编译安装.首先,介绍下本系列的拓扑结构图 此时服务器响应客户端访问可以分为几种应答方式: 1.客户端向服务 ...

  3. LAMP编译安装,并搭建discuz

    一.Mysql安装 http://mirrors.sohu.com/mysql/MySQL-5.1/ Mysql下载网站 cd /usr/local/mysql/ wget http://mirror ...

  4. 编译安装LAMP及分离式LAMP平台构建

    前言 LAMP网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网站服务器,MySQL数据库,Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上 ...

  5. lamp mysql5.5 LAMP平台全新编译安装

     LAMP编译安装全过程    PHP 下载 : http://www.php.net/downloads.php/ HTTPD下载: http://httpd.apache.org/download ...

  6. LAMP架构之编译安装httpd+(php-fpm)+mariadb

    php-fpm: CentOS 6: PHP-5.3.2-:默认不支持fpm机制:需要自行打补丁并编译安装: httpd-2.2:默认不支持fcgi协议,需要自行编译此模块: 解决方案:编译安装htt ...

  7. LAMP(linux下apache+mysql+php)平台编译安装的实现

    实现LAMP编译安装 httpd 2.4.1 + mysql-5.5.19 + php-5.3.10编译安装过程: 一.编译安装apache 1.解决依赖关系 httpd-2.4.1需要较新版本的ap ...

  8. 源码编译安装LAMP

    源码编译安装LAMP 前言 一.LAMP概述 (1)各组件的作用 (2)各组件安装顺序 (3)数据流向 二.编译安装apache httpd服务 (1)关闭防火墙,将安装apache的所需软件包上传到 ...

  9. 盘古开天辟地之源码编译安装LAMP

    盘古开天辟地之源码编译安装LAMP Apache简介 Apache起源 源于APatchy Server,著名的开源Web服务软件 1995年时,发布Apache服务程序的1.0版本 由Apache软 ...

  10. LAMP源码编译安装及一键部署LAMP架构

    文章目录 一.什么是LAMP? 1.LAMP平台概述 2.构建LAMP平台顺序 3.编译安装的优点 4.各组件的主要作用 二.LAMP架构流向 三.编译安装Apache服务 1.先关闭防火墙 2.将软 ...

最新文章

  1. java怎么定义字符长度_java – 当字符串长度超过列长度定义时,如何以静默方式截断字符串?...
  2. TEASOFT辅助服务程序UDPCopy 功能介绍
  3. easyui placeholder 解决方案
  4. 程序员法律考试笔记(2)-依法治国
  5. task2:opencv的python接口图像储存、色彩空间、
  6. C# 委托:把方法组合到一个数组中使用
  7. RxSwift 系列(一)
  8. pc个人微型计算机ppt,《IBMPC微型计算机》PPT课件.ppt
  9. Dev-C++下载与安装教程
  10. oracle数据库三大日志,Oracle 数据库日志和用户日志位置
  11. Linux脚本定时开关机,2020-09-06shell脚本开机自动启动与定时任务
  12. Chromium DevTools-frontend 源码构建流程-Windows系统
  13. 为什么那么多人执着于写博客
  14. verilog呼吸灯
  15. 服务器ssd硬盘接笔记本,M.2固态硬盘怎么安装 台式机与笔记本电脑安装M.2 SSD方法图解...
  16. Java里氏转换_里氏代换原则、依赖倒转原则 | 学步园
  17. 华为手机信息不弹屏了为什么_华为微信不弹出新消息提醒 怎么办
  18. 新款macbook pro发布了,但为什么不推荐购买
  19. 广电时评 | 中央主流媒体盛赞爱奇艺短剧新气象
  20. alsa与PulseAudio

热门文章

  1. 大手笔!舒印彪对核电发展表态,华能抢到了核电开发入场券!
  2. mysql analyze_MySQL数据库执行analyze采集信息
  3. Unterminated regular expression 和正则表达式
  4. 模电——电源与地之间串联电容的作用
  5. iphone或者ipad上安装自己打包的ipa文件
  6. discuz模板机制解析
  7. 魔客吧php登录界面模板,精仿魔客吧网站模板discuz模板_带VIP购买等多个插件
  8. 仿花瓣网html模板,仿花瓣网瀑布流实例最流行瀑布流图片无限加载展示
  9. 2021年2月3日 星期三 农历立春 霾 天津
  10. Udacity DNN