📝理论讲解:
LAMP架构
LAMP平台是协同工作的一整套系统和相关软件,能够提供动态Wen站点服务以及应用开发环境,是目前最为成熟也是比较传统的一种企业网站应用模式
构成组件:
Linux系统: LAMP架构的基础,提供用于支撑Web站点的操作系统
Apache网站服务: LAMP架构的前端,向用户提供网站服务、发送网页、图片等文件内容
MySQL数据库服务: LAMP架构的后端,存储各种账号信息、产品信息、客户资料、业务数据等,其他程序可以通过SQL语句进行查询、更改
PHP/Perl/Python编程语言: 负责解释动态网页文件,提供Web应用程序开发和运行环境
LAMP服务平台的优势:
成本低廉: 开源,可快速获得免费使用
可定制: 拥有大量的额外组件和扩展功能模块,可以根据需要定制或者自行开发添加新功能
易于开发: 代码简洁,与HTML语言结合度高,容易修改网页代码
方便易用: PHP、Perl属于解释性语言,开发的程序不需要编译,可以直接移植使用
安全和稳定: 开源优势,发现问题能够很快解决
📖实验配置与实现:
一、安装依赖程序
1)挂载系统光盘
[root@centos01 ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 [root@centos01 ~]# ls /mnt/ CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7 EFI images Packages RPM-GPG-KEY-CentOS-Testing-7 EULA isolinux repodata TRANS.TBL
2)删除系统自带的yum仓库
[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-* //删除系统自带的yum仓库 [root@centos01 ~]# ls /etc/yum.repos.d/ //查看是否删除成功 local.repo
3)安装依赖程序
yum -y install cmake ncurses-devel zlib-devel libxml2-devel
4)创建管理Mysql组和账户
[root@centos01 ~]# groupadd mysql [root@centos01 ~]# useradd -M -s /sbin/nologin -g mysql mysql
二、安装Apache
1)挂载LAMP光盘
[root@centos01 ~]# umount /mnt/ //卸载系统光盘 [root@centos01 ~]# ls /mnt/ //查看是否卸载成功 [root@centos01 ~]# mount /dev/cdrom /mnt/ //挂载LAMP光盘 mount: /dev/sr0 写保护,将以只读方式挂载 [root@centos01 ~]# ls /mnt/ //查看是否挂载成功 cmake-2.8.6.tar.gz mysql-5.5.22.tar.gz httpd-2.2.17.tar.gz php-5.3.28.tar.gz libmcrypt-2.5.8.tar.gz phpmyadmin-3.3.10-all-languages.tar.gz mcrypt-2.6.8.tar.gz zendguardloader-php-5.3-linux-glibc23-i386.tar.gz mhash-0.9.9.9.tar.gz
2)解压Apache
[root@centos01 ~]# tar zxf /mnt/httpd-2.2.17.tar.gz -C /usr/src/ //解压httpd程序到/usr/src/ [root@centos01 ~]# cd /usr/src/httpd-2.2.17/ //切换到httpd目录 [root@centos01 httpd-2.2.17]#
3)配置Apache
[root@centos01 httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-chrset-lite --enable-cgi --enable-rewrite
4)安装Apache
[root@centos01 httpd-2.2.17]# make && make install
5)优化命令
[root@centos01 httpd-2.2.17]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
6)生成服务控制文件
[root@centos01 httpd-2.2.17]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd [root@centos01 httpd-2.2.17]# chmod +x /etc/init.d/httpd //添加权限 [root@centos01 httpd-2.2.17]# ls -ld /etc/init.d/httpd //查看 -rwxr-xr-x 1 root root 3422 12月 5 23:14 /etc/init.d/httpd
7)修改服务控制文件
[root@centos01 httpd-2.2.17]# vim /etc/init.d/httpd --- #!/bin/sh #chkconfig:35 80 21 #description:Apache Server
8)添加系统服务设置开机自动启动
[root@centos01 httpd-2.2.17]# chkconfig --add httpd [root@centos01 httpd-2.2.17]# chkconfig --level 35 httpd on
9)检查服务配置文件
[root@centos01 ~]# httpd -t httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe25:91b5 for ServerName Syntax OK
三、安装配置Mysql
1)解压mysql
[root@centos01 ~]# tar zxf /mnt/mysql-5.5.22.tar.gz -C /usr/src/ [root@centos01 ~]# cd /usr/src/mysql-5.5.22/ [root@centos01 mysql-5.5.22]#
2)配置MySQL
[root@centos01 mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DSYSCONFDIR=/etc -DWITH_EXTRA_CHARSETS=all
3)编译安装MySQL
[root@centos01 mysql-5.5.22]# make && make install
4)修改目录所有者
[root@centos01 mysql-5.5.22]# chown -R mysql:mysql /usr/local/mysql/
5)生成服务配置文件
[root@centos01 mysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf cp:是否覆盖"/etc/my.cnf"? y
6)生成服务控制文件添加执行权限
[root@centos01 mysql-5.5.22]# cp support-files/mysql.server /etc/init.d/mysqld [root@centos01 mysql-5.5.22]# chmod +x /etc/init.d/mysqld //添加执行权限
7)添加系统服务设置开机自动启动
[root@centos01 mysql-5.5.22]# chkconfig --add mysqld [root@centos01 mysql-5.5.22]# chkconfig --level 35 mysqld on
8)优化MySQL命令
[root@centos01 mysql-5.5.22]# echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile [root@centos01 mysql-5.5.22]# source /etc/profile
9)初始化MySQL命令
[root@centos01 mysql-5.5.22]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
10)启动MySQL服务
[root@centos01 mysql-5.5.22]# systemctl restart mysqld [root@centos01 mysql-5.5.22]# netstat -anptu | grep mysqld tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 64732/mysqld
11)MySQL系统设置密码
[root@centos01 mysql-5.5.22]# mysqladmin -uroot password New password: Confirm new password:
12)登录MySQL
[root@centos01 ~]# mysql -uroot -ppwd@123 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.5.22-log Source distribution Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> exit Bye
四、安装php
1)安装php依赖libmcrypt
[root@centos01 ~]# tar zxf /mnt/libmcrypt-2.5.8.tar.gz -C /usr/src/ //解压 [root@centos01 ~]# cd /usr/src/libmcrypt-2.5.8/ //切换目录 [root@centos01 libmcrypt-2.5.8]# ./configure && make && make install //编译安装 [root@centos01 libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/ //优化命令 [root@centos01 libmcrypt-2.5.8]# cd
2)安装php依赖mhash
[root@centos01 ~]# tar zxf /mnt/mhash-0.9.9.9.tar.gz -C /usr/src/ [root@centos01 ~]# cd /usr/src/mhash-0.9.9.9/ [root@centos01 mhash-0.9.9.9]# ./configure && make && make install [root@centos01 mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash.* /usr/lib [root@centos01 mhash-0.9.9.9]# cd
3)安装php依赖mcrypt
[root@centos01 ~]# tar zxf /mnt/mcrypt-2.6.8.tar.gz -C /usr/src/ [root@centos01 ~]# cd /usr/src/mcrypt-2.6.8/ [root@centos01 mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib [root@centos01 mcrypt-2.6.8]# ./configure && make && make install
4)配置php
[root@centos01 ~]# tar zxf /mnt/php-5.3.28.tar.gz -C /usr/src/ cd[root@centos01 ~]# cd /usr/src/php-5.3.28/ [root@centos01 php-5.3.28]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring
5)编译安装php
[root@centos01 php-5.3.28]# make && make install
6)生成php配置文件
[root@centos01 php-5.3.28]# cp php.ini-production /usr/local/php/php.ini [root@centos01 php-5.3.28]# cd
7)修改php主配置文件
[root@centos01 ~]# vim /usr/local/php/php.ini --- 227 short_open_tag = On //支持php 786 default_charset = "utf-8" //支持中文和英文
五、配置php使用Zend加速
1)解压
[root@centos01 ~]# tar zxf /mnt/zendguardloader-php-5.3-linux-glibc23-i386.tar.gz -C /usr/src/ //解压到/usr/src目录 [root@centos01 ~]# cd /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x/ //切换到php-5.3.x目录 [root@centos01 php-5.3.x]#
2)移动zend到php配置文件中
[root@centos01 php-5.3.x]# cp ZendGuardLoader.so /usr/local/php/lib/php/ [root@centos01 php-5.3.x]# cd
3)配置php加载zend加速
[root@centos01 ~]# vim /usr/local/php/php.ini --- [PHP] zend_extension= /usr/local/php/lib/php/ZendGuardLoader.so zend_loader.enable=1
六、php和Apache协同工作
1)修改Apache配置文件
[root@centos01 ~]# vim /usr/local/httpd/conf/httpd.conf --- 53 LoadModule php5_module modules/libphp5.so 166 <IfModule dir_module> 167 DirectoryIndex index.html index.php 168 </IfModule> 310 AddType application/x-httpd-php .php
2)写php测试文件
[root@centos01 ~]# vim /usr/local/httpd/htdocs/index.php --- <?php phpinfo(); ?>
3)重启Apache服务
[root@centos01 ~]# systemctl restart httpd
七、安装phpMyadmin系统
1)清除Apache跟目录数据
[root@centos01 ~]# rm -rf /usr/local/httpd/htdocs/*
2)解压安装phpMyadmin
[root@centos01 ~]# tar zxf /mnt/phpmyadmin-3.3.10-all-languages.tar.gz -C /usr/src/ [root@centos01 ~]# mv /usr/src/phpMyAdmin-3.3.10-all-languages/* /usr/local/httpd/htdocs/
3)生成配置文件3)生成配置文件
cp /usr/local/httpd/htdocs/config.sample.inc.php /usr/local/httpd/htdocs/config.inc.php
八、安装DNS
1)挂载系统光盘
[root@centos02 ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 [root@centos02 ~]# ls /mnt/ CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7 EFI images Packages RPM-GPG-KEY-CentOS-Testing-7 EULA isolinux repodata TRANS.TBL
2)安装DNS服务
[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm [root@centos02 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm
3)设置开机自启
[root@centos02 ~]# systemctl enable named
4)备份主配置文件避免修改错误源文件丢失
[root@centos02 ~]# cp /etc/named.conf /etc/named.conf.bak [root@centos02 ~]# echo "" > /etc/named.conf [root@centos02 ~]# cat /etc/named.conf [root@centos02 ~]#
5)修改主配置
vim /etc/named.conf --- options { listen-on port 53 { 192.168.100.20; }; directory "/var/named"; }; zone "ljm.com" IN { type master; file "/var/named/ljm.com.zone"; };
6)修改区域配置文件
[root@centos02 ~]# vim /var/named/ljm.com.zone --- $TTL 86400 @ SOA ljm.com. root.ljm.com. ( 2022120510 1H 15M 1W 1D ) @ NS centos02.ljm.com. centos02 A 192.168.100.20 www A 192.168.100.10
7)为Centos01、02、03配置DNS
Centos01:(DNS指向DNS服务器的IP地址)
[root@centos01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32 --- TYPE=Ethernet BOOTPROTO=static NAME=ens32 DEVICE=ens32 ONBOOT=yes IPADDR=192.168.100.10 NETMASK=255.255.255.0 DNS1=192.168.100.20 [root@centos01 ~]# systemctl restart network //重新启动网卡服务
Centos02:(因为Centos02是DNS服务器所有DNS指向自己的IP地址)
[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32 --- TYPE=Ethernet BOOTPROTO=static NAME=ens32 DEVICE=ens32 ONBOOT=yes IPADDR=192.168.100.20 NETMASK=255.255.255.0 DNS1=192.168.100.20 [root@centos01 ~]# systemctl restart network //重新启动网卡服务
Centos03:(Centos03作为客户端验证使用,如果使用win10验证就在win10客户端配置IP地址,DNS指向DNS服务器的IP地址)
[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32 --- TYPE=Ethernet BOOTPROTO=static NAME=ens32 DEVICE=ens32 ONBOOT=yes IPADDR=192.168.100.30 NETMASK=255.255.255.0 DNS1=192.168.100.20
8)启动DNS服务器
[root@centos02 ~]# systemctl restart named
9)测试DNS是否能够正常解析
[root@centos02 ~]# nslookup www.ljm.com Server: 192.168.100.20 Address: 192.168.100.20#53 Name: www.ljm.com Address: 192.168.100.10
10)验证(开一台Linux或着win10都行)
注:默认为数据库的账户名密码(如果MySQL没有设置密码就为空)