L:Linux操作系统,提供了项目部署时所需要的操作系统环境
A:Apache服务器:WEB应用程序的服务器,提供软件源文件的存放地,提供了程序访问时所需要的端口(接口)
M:MySQL数据库,提供项目或者程序在使用时数据的存储与解析的工作
P:PHP/Python开发语言,提供软件或者项目程序部署时所需要的开发环境的支持
概述:LAMP环境,主要给WEB端应用程序(各种类型的网站项目),提供了一个部署安装和使用的平台。
解释:可以理解为:只要把这四个软件安装完成,就形成了LAMP环境,环境有了之后,只需要把WEB应用程序对应的源文件,部署在apache服务器上即可,这样用户就可以直接访问该网站。
因为是软件的在线安装,需要借助yum命令来完成,最低版本的使用:centos7,所以在部署之前,先查看当前系统是否满足于环境的需求
2.2.1安装apache服务器--->在Linux系统中映射名字:httpd
不仅安装apache,还把相关的开发工具包(devel)一并做安装
2.2.4查看apache状态(有没有被运行) ---->可选可写
firewall-cmd --permanent --zone=public --add-service=http
--permanent:永久的 --zone=public 公开的
firewall-cmd --permanent --zone=public --add-service=https
2.2.8通过浏览器来访问apache服务器(ip地址)--->可选可写
第七步和第八步是为了验证安装apache完成之后,对应的服务以及端口是否设置完善。
yum install mariadb mariadb-server mariadb-libs mariadb-devel
.3.5修改一下数据库登录密码(MySQL:用户:root)
执行完上述命令,第一次的提示,直接按下"Enter",继续执行
2.3.6验证数据库是否安装成功,并能进行登录 ---->可选可写
2.4.3安装PHP相关的组件,以便适配不同的WEB项目应用程序
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath
b.apache服务器在系统中,提供WEB端应用程序的存放目录:
phpinfo()方法--->作用:显示php相关的属性信息
注意:如果访问不到,重启服务器:systemctl restart httpd
前提:因为虚拟机中的操作系统,默认和物理机的操作系统之间,是没有任何关系的,两者互不影响,独立运行。如果想要实现虚拟机中的操作系统,和物理机的操作系统之间的交互(文件资源的共享,相互之间的访问操作等),那么就可以借助于VMWare TOOLS工具。
三.AMP环境---->WEB端应用程序提供安装和部署的整体使用环境
需求:把biaodan.html网页,部署在apache服务器上,通过浏览器来进行访问
1.把biaodan.html 复制到 /var/www/html/目录中
2.有时候直接访问时,会受到访问权限的影响,所以在访问之前可以更改一下biaodan.html文件的权限 777
chmod 777 biaodan.html ------>可选可写
docker,被称为虚拟化容器技术,它的前身是dotcloud公司--->平台即服务,dotcloud最初采用的是Linux的容器技术--->用来封装程序以及程序相关的环境,后来为了方便管理这些容器,就开发了一套内部的工具---->docker。
docker技术,可以看成是logo的货轮(鲸鱼),相当于给提供了一个平台,在平台上有很多的集装箱---->容器,可以在容器中封装各种项目环境,集装箱与集装箱之间没有任何联系,互不影响,容器之间的环境是相互独立的。
相同点:都是基于硬件平台,放在操作系统中来使用(都是安装在主机的操作系统中)
不同点:虚拟机的使用,是需要借助于第三方软件,比如VM,如果想要部署程序项目,安装完VM之后,需要再来进行操作系统的安装(centos7),相对来说,比较消耗资源--->安装centos,内存建议大小20G,系统安装完成之后再来进行环境的搭建(LAMP环境),最后才能进行项目部署,整个过程对于资源的消耗较为严重,也比较笨重。
docker的使用,只需要直接进行安装---->docker平台---->利用容器---->封装各种程序以及程序相关的资源环境
2.部署一次,可以在任意具有docker平台上来使用对应的环境(跨平台操作)
3.更高的资源利用率(例:docker要部署10个项目,只需要10个容器即可,而虚拟机有可能需要部署10个操作系统来完成)
可移植性---->指的就是跨平台性,docker既可以在win系统中使用,也可以在Linux系统中使用
1.云服务器:相当于是一台没有显示器的电脑,只有主机,然后在主机中安装不同的操作系统来做事情,所以,云服务器的第一层扩充,还是操作系统。
然后,来到配置信息模块,选择"更多"---->"更换操作系统"
b.如何重置实例密码(root/administrator用户密码)
借助于第三方软件:finalshell,xshell....
安装finalshell软件,下一步即可,如果电脑中有杀毒软件提示禁止,全部改成允许
[root@iZ8vbht59d65pa7b2769jlZ /]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
4.2为了避免docker安装过程出现问题,建议把系统的软件包做一次更新(可选可写)
[root@iZ8vbht59d65pa7b2769jlZ /]# yum -y update
[root@iZ8vbht59d65pa7b2769jlZ ~]# docker version
[root@iZ8vbht59d65pa7b2769jlZ ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
5.docker平台有了之后,就可以借助于平台提供的容器,来封装程序以及相关的环境
5.1容器中LAMP环境的搭建方式:找到一个镜像文件--->包含了LAMP环境,直接来使用
[root@iZ8vbht59d65pa7b2769jlZ ~]# docker search -s 10 lamp
Flag --stars has been deprecated, use --filter=stars=3 instead
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/mattrayner/lamp A simple LAMP docker image running the pre... 289 [OK]
docker.io docker.io/linode/lamp LAMP on Ubuntu 14.04.1 LTS Container 181
docker.io docker.io/tutum/lamp Out-of-the-box LAMP image (PHP+MySQL) 148
docker.io docker.io/fauria/lamp Modern, developer friendly LAMP stack. Inc... 111 [OK]
docker.io docker.io/greyltc/lamp a super secure, up-to-date and lightweight... 103 [OK]
docker.io docker.io/lioshi/lamp Docker image for LAMP under debian 14 [OK]
docker.io docker.io/dgraziotin/lamp 11 [OK]
docker pull docker.io/tutum/lamp
[root@iZ8vbht59d65pa7b2769jlZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/tutum/lamp latest 3d49e175ec00 5 years ago 427 MB
5.4lamp镜像文件下载完成后,就可以把该文件封装的lamp环境,放入到容器中
5.4.1在本地先创建一个目录,目的是为了和容器做交互,分摊容器的使用压力
docker run -d --name=lamp -p 8080:80 -p 3306:3306 -v /mysql_data:/var/lib/mysql docker.io/tutum/lamp
把下载的镜像文件( docker.io/tutum/lamp)中包含的lamp环境,运行在名字为lamp的容器中,并设置服务器的端口8080和80,以及mysql数据库的端口3306
[root@iZ8vbht59d65pa7b2769jlZ ~]# docker run -d --name=lamp -p 8080:80 -p 3306:3306 -v /mysql_data:/var/lib/mysql docker.io/tutum/lamp
99813e3c1a5636689fa45ca289749d322110d553590c73201cae2ea9fb16ef76
5.4.3lamp环境放入容器之后,接下来,就可以进入该容器中进行一系列的设置
进入lamp容器:docker exec -it lamp /bin/bash
[root@iZ8vbht59d65pa7b2769jlZ ~]# docker exec -it lamp /bin/bash
5.4.4进入容器之后,初始化数据库设置(设置root用户密码)
Password updated successfully!
以上步骤的完成,代表着容器中已封装好lamp环境,接下来只需要把相对应的程序项目部署进来即可
5.5在容器中,进入/var/www/html目录中,进行程序源文件存放
root@99813e3c1a56:/# cd /var/www/html
root@99813e3c1a56:/var/www/html# ls
LICENSE README.md index.php logo.png phpinfo.php
程序文件:win系统---->云服务器操作系统(centos)---->转移到容器里面
安装WinSCP,下一步即可,如果有杀毒软件禁止,全部改成允许
文件放入centos系统中,接下来就可以把文件转移到容器里面
docker cp /biaodan.html lamp:/var/www/html/
root@99813e3c1a56:/var/www/html# ls
LICENSE README.md biaodan.html index.php logo.png phpinfo.php
如果ls能在容器中查看到复制过来的文件,就代表着文件放入成功
5.7在正式访问之前,需要在云服务器端,开放两个端口:80,8080
http://8.142.162.236:8080/biaodan.html
=================================================
练习:在容器的lamp环境中,部署chanzhi的博客论坛WEB项目
1.4上传完成之后,在正式放入容器之前,修改www文件夹权限,把所有的权限都添加上
docker cp /www lamp:/var/www/html/
root@99813e3c1a56:/var/www/html# ls
LICENSE README.md biaodan.html index.php logo.png phpinfo.php www
1.6上传成功就表示项目程序部署完成,接下来通过浏览器进行访问
8.142.162.236:80/www/install.php