教你半小时成功搭建LAMP及BIND域名服务

LAMP搭建

软件:centos7.5 apache2.4 MySQL5.6 php5.5  bind9.9

注意:为方便测试关闭防火墙(#service firewalld stop),关闭SElonux(# setenforce 0

任务1:配置虚拟机网络地址,使之与主机互相ping通。 

  设置虚拟机网卡为NAT模式,配置其网卡地址为静态地址,与虚拟机vmnet8在同一网段,

(1)编辑/etc/sysconfig/network-scripts/ifcfg-ens*配置地址,

TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.75.145
NETMASK=255.255.255.0
GATEWAY=192.168.75.2
DNS1=114.114.114.114

(2) /etc/hostname配置主机名。

hostname kongyicong (临时)

logout 

检查点:虚拟机与主机能够互相ping通,虚拟机能够访问互联网。

任务2:安装bind软件包,使之能够提供域名解析服务。 

使用yum方式安装bind软件包,

yum install bind bind-utils

编辑 /etc/named.conf文件,设立“姓名全拼.com”和“学号.com”两个正向区域,

options {
        listen-on port 53 { any; };
        allow-query     { any; }; #修改为any

4 yy 复制 4行代码  p粘贴两次

zone "kongyicong.com" IN {
        type master;
        file "kongyicong.com.zone";
};
zone "201622450618.com" IN {
        type master;
        file "201622450618.com.zone";
};

 复制 /var/named/named.localhost  为两个区域配置文件,改变所属组

cp named.localhost kongyicong.com.zone
cp named.localhost 201622450618.com.zone
chown root:named kongyicong.com.zone 201622450618.com.zone

编辑 /var/named/区域数据文件,并分别设置www主机A记录地址为虚拟机地址。

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
www     A       192.168.75.145

使用named-checkconf和named-checkzone进行检查,

#named-checkconf
#named-checkzone kongyicong.com kongyicong.com.zone
zone kongyicong.com/IN: loaded serial 0
OK

 编辑/etc/hosts 主机和域名的映射

192.168.75.145 www.kongyicong.com
192.168.75.145 www.201622450618.com

编辑/etc/resolv.conf文件,使得域名服务器指向本机 

nameserver 192.168.75.145

如果在这里配置的话,重启网络后,他又会恢复成原来的DNS地址,所以在网卡配置文件里面修改。

DNS1=192.168.75.145
DNS2=114.114.114.114

注意设置主机网卡和VMnet8网卡上的DNS服务器配置为虚拟机地址。 

启动named服务

service named start

 在虚拟机可以ping通,在主机ping时如果ping不通需要修改

C:\Windows\System32\drivers\etc\hosts 文件 内容和虚拟机中一样。

也可以使用nslookup检查

在虚拟机中 

#nslookup www.kongyicong.com
Server:       192.168.75.145
Address:      192.168.75.145#53

Name:   www.kongyicong.com
Address: 192.168.75.145

在主机中 先 ipconfig /flushdns  刷新一下缓存,然后nslookup 进入  就可以ping 测试

检查点:主机ping“www.姓名全拼.com”和“www.学号.com”可以与虚拟主机通信。

任务3:安装apache软件,配置基于名字的虚拟主机。 

注意我是yum安装的apache2.4   yum安装apache2.2 或者 源码安装 apache2.2和2.4  配置文件会有所不同。

稍后有时间我会出各个版本和安装方式的教程。

使用yum方式安装apache2.4 ( 默认)

yum install httpd

编辑/usr/local/apache/conf/httpd.conf文件配置虚拟主机,

ServerRoot "/etc/httpd"            #服务目录

Listen 80                          #监听的IP地址、端口号

User apache                        #运行服务的用户身份
Group apache                       #运行服务的组身份

ServerAdmin root@localhost         #管理员邮箱

ServerName www.example.com:80      #注释要去掉

<Directory />                      #网页文档根目录的权限
    AllowOverride none
    Require all denied
</Directory>


DocumentRoot "/var/wwwroot"        #自己的网站目录

<Directory "/var/wwwroot">         #目录权限
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

<IfModule dir_module>              #默认的索引页文件
    DirectoryIndex index.html
</IfModule>

配置两个基于名字的虚拟主机,“www.姓名全拼.com”和“www.学号.com”,注意配置虚拟主机目录的访问权限;

<Directory "/var/wwwroot">            #虚拟主机目录的权限
Options FollowSymLinks
AllowOverride none
Require all granted
</Directory>

NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot "/var/wwwroot/kongyicong"       #虚拟站点的目录
ServerName www.kongyicong.com                #虚拟站点的域名
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/var/wwwroot/201622450618"
ServerName www.201622450618.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

虚拟主机目录在/var/wwwroot下,目录名为域名,在/var/wwwroot建立虚拟主机目录,编辑index.html文件。

# mkdir /var/wwwroot
# cd /var/wwwroot
# mkdir kongyicong
# mkdir 201622450618
# cd kongyicong
# echo "this is kongyicong site" >> index.html
# cd 201622450618
# echo "this is 201622450618 site" >> index.html

 启动 httpd 

 service httpd start

可在虚拟机中用  curl  www.kongyicong.com 访问   显示  this is  kongyicong site 

注意如果在主机浏览器访问不了一定要检查  防火墙和selinux是否关闭,因为selinux 是不允许虚拟站点的。

检查点:从主机访问“www.姓名全拼.com”和“www.学号.com”站点的默认主页可以分别看到“this’s 姓名 site”和“this’s 学号 site”。

任务4:安装mysql,创建数据库和数据表并输入数据。 

设置mysql的repo源

cd /yum/repos.d
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

使用yum方式安装

yum install mysql mysql-server

改变root用户登录密码为123456,

 # mysqladmin –u root –p password 123456

注意mysql数据库的编码格式,

show variables like '%char%';       # 查看编码
set character_set_database=utf8;    #修改为utf8
set character_set_server=utf8;

创建数据库project,
创建表
插入测试数据


mysql> create database project;
mysql> use project;

mysql> create table news(id int unsigned auto_increment primary key ,title varchar(60) not null,content text not null, addtime timestamp default current_timestamp not null );

mysql> insert into news (title, content) values('新闻标题1', '新闻内容1'),('新闻标题2','新闻内容2');  

如果插入中文出现以下错误,那就删掉创建的数据库,按上面的步骤修改一下数据库编码,再创建。

ERROR 1366 (HY000): Incorrect string value: '\xE6\x96\xB0\xE9\x97\xBB...' for column 'title' at row 1

检查点:select * from news;显示全部记录,

任务5:安装PHP环境,编写运行php脚本。 

使用yum方式安装PHP和php扩展  

yum install -y php php-common php-mysql php-gd php-mbstring php-pdo php-cli

提示:要安装php-mysql,php-pdo,php-cli 等软件包。否则会缺少和apache相连的文件.  源码安装的apache 会有所不同。

在httpd.conf 里面有如下两句 包含了php文件。是apache 和php 相连的关键

Include conf.modules.d/*.conf
Include conf.d/*.conf

 查看目录下,发现有两个php文件

 

编辑db.php文件放到“学号”虚拟主机,使之能够连接mysql数据库,读取显示数据表的内容。

<?php
$mysql_conf = array(
    'host'  => 'localhost:3306', 'db' =>'project', 'db_user' => 'root', 'db_pwd' => '123456' );
$mysql_conn = mysql_connect($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
if (!$mysql_conn) {  die("could not connect to the database" . mysql_error()); }  //诊断连接错误
mysql_query("set names 'utf8'"); //编码转化
$select_db = mysql_select_db($mysql_conf['db']);
if (!$select_db) {    die("could not connect to the db" .  mysql_error());  }
$sql = "select * from news;";
$res = mysql_query($sql);
if (!$res) {    die("could get the res:\n" . mysql_error()); }
while ($row = mysql_fetch_assoc($res)) {
    print_r($row);
}
mysql_close($mysql_conn);
?>

 service httpd restart

检查点:在主机浏览器访问http://www.学号.com/db.php,显示数据表news的内容。

任务6:安装vsftp软件包,配置虚拟主机的ftp环境。 

使用yum方式安装vsftpd

建立用户“姓名全拼”和“学号”,设定用户主目录为/var/wwwroot/姓名全拼.com和/var/wwwroot/学号.com,密码都为123。

yum install vsftpd
useradd -d /var/wwwroot/kongyicong kongyicong   
useradd -d /var/wwwroot/201622450618 201622450618
passwd kongyicong  
passwd 201622450618
chown kongyicong kongyicong/      #改变所属主,获得上传权限
chown 201622450618 201622450618/

编辑  /etc/vsftpd/vsftpd.conf

# grep -v ^# /etc/vsftpd/vsftpd.conf 
anonymous_enable=NO     #禁止匿名用户
local_enable=YES        #启用本地用户
write_enable=YES        #使能写权限
local_umask=022         #写权限掩码
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES                #开启ipv4
listen_ipv6=NO            #ipv6不能同时用
pam_service_name=vsftpd   #设置认证方式
userlist_enable=YES
tcp_wrappers=YES

检查点:从主机可以访问ftp站点,并上传网站内容。

任务7:使用ab性能测试软件,优化虚拟主机性能。 

使用apache自带的ab软件测试虚拟主机性能,并记录最优结果。

ab -c 80 -n 100000 http://www.201622450618.com/db.php

    提示:/usr/local/apache/bin/ab –c 并发数 –n 访问次数 http://www.学号.com/index.php

这是我们的linux课程的一次测试,我用了不到半小时的时间搭建完了,感觉真的好简单啊,希望可以帮助到你们。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值