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课程的一次测试,我用了不到半小时的时间搭建完了,感觉真的好简单啊,希望可以帮助到你们。