做网站模板用什么软件/网站优化排名查询

动手搭建lnmp环境
今天我们来运用之前的知识手动安装下lnmp环境。
根据一个服务一个容器的原则,一共需要3个容器,分别是nginx容器,php容器和mysql容器。
另外,为了让容器之间能够互相通信,我们还需要自己建立一个网络。
创建一个自定义的网络
创建自定义网络的目的是让容器在自定义的网络内可以互相通信,通过容器名或者别名就可以找到对应的容器,而不用去关心对方容器的ip等信息。
(1)先查看下docker的网络,执行docker network ls

(2)创建自己的网络 ,命名为my-test-net

安装nginx
(1)找到nginx标签为1.19.0-alpine的镜像,并执行docker pull:

说明:
alpine版本的系统比我们熟悉的centos体积小,因此一般都用alpine版本。
(2)查看下本地的镜像:

说明:这个nginx镜像一共21.3m,体积够小。
(3)运行这个nginx容器
命令如下:
docker run -itd -p 8080:80 --name nginx --network my-test-net -v /tmp/lnmp/html:/usr/shar/nginx/html nginx:1.19.0-alpine

说明:
-d代表后台运行该容器,
-name设置容器的名字为nginx,
-p将宿主机的8080端口映射给容器的80端口,
-v将宿主机下的/tmp/lnmp/html目录和容器里面的/usr/shar/nginx/html进行绑定,
--network将nginx容器加入到名为my-test-net的网络中去
(4)访问nginx容器是否安装完成

至此,nginx的安装便完成了。
安装php-fpm
(1)找到标签名为7.2-prod-0.106的镜像,并执行docker pull
docker pull devilbox/php-fpm:7.2-prod-0.106

(2)运行php-fpm容器
docker run -d --name my-php --network my-test-net -v /tmp/lnmp/www:/www devilbox/php-fpm:7.2-prod-0.106

-v设置宿主机的/tmp/lnmp/www目录和容器里面的/www目录绑定
--network 将容器加入到my-test-net网络中去
配置nginx和php-fpm
(1)进入nginx容器中,执行docker exec -it 01f /bin/sh

(2)修改/etc/nginx/conf.d/default.conf,共修改两处,见下图:

(3)修改完成后重启nginx容器

(4)在宿主机的/tmp/lnmp/www目录下新建test.php文件,并写上phpinfo()代码,此刻也就意味着容器内的/www目录下也有了test.php文件
(5)访问test.php文件,发现访问成功,此时说明我们的php安装完成。

安装mysql
(1)拉取最新的mysql镜像,docker pull mysql

(2)启动mysql容器,执行命令:
docker run --name my-mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --network my-test-net mysql

--name为容器的名字为my-mysql
-p为将宿主机的3306端口绑定到容器的3306端口
-e MYSQL_ROOT_PASSWORD=123456为设置密码为123456
--network 为将mysql容器加入到my-test-net网络
(3)在宿主机的/tmp/lnmp/www目录下新建mysql.php文件,并写上如下的代码
<?php
//这里的重点就是这个host是容器my-mysql,因为my-php和my-mysql在一个网络下,所以可以直接用容器的名字去访问这个容器$con = new mysqli("my-mysql","root","123456");
if (!$con) { die('Could not connect: ' . mysql_error());
}echo "连接成功";
?>
(4)访问mysql.php,效果如下:

看到连接成功,说明我们php连接mysql也成功了。
至此,我们的lnmp环境也就搭建完成了。
尽管上述的操作很简单,但是还是要一个一个的分别配置,先nginx再PHP然后再mysql,还是稍微有点麻烦的。
下一篇,我们将介绍用docker compose更简单快捷的构建lnmp。
好啦,这就是今天的全部内容,如果您有疑问,可以在下方留言哦~
公众号:老何漫话
id:laohemanhua