docker容器中php开发环境的搭建实战

docker容器中php开发环境的搭建实战

本人在上篇文章中讲述了mac中php开发环境相应软件的安装与配置,在结尾也确定了常用开发环境“即插即用”的必要性。本人开发目前后端以laraval5.8为主,使用nginx服务器来转发配置分离后的前后端访问,所以我所需要的常用开发环境,必须要具备nginx,php(php-fpm),composer(安装laraval及其他php应用依赖包) 这三个软件,而mysql本身在架构逻辑上就与应用层分离,且docker中mysql镜像的安装和配置都较为傻瓜,所以,在开发环境的定制过程中,不考虑mysql。

注意:可能有很多人会说,docker就是要做到镜像的最细化,应该做到最绝对的功能模块分离,应该把nginx和php分开。从概念上说是没有什么问题的,但是实际应用过程中,nginx和php(php-fpm)不管是在逻辑上还是配置上都是不能分开的,将两者综合在一个docker容器中,不仅增加了可用性,还增加了便捷性,提高了开发效率。(反正就是一千个读者就有一千个哈姆雷特吧)

闲话少说,接下来我们分步骤进行环境搭建的实战讲解。

第一步 安装docker

在windows和mac中,推荐下载docker桌面版客户端进行使用,可视化,窗口化,操作起来省时省力。官网地址为:docker桌面版下载地址
unbuntu上没有桌面版,只能在终端上进行安装。教程如下:ubuntu中docker安装教程
docker经典实战文档链接如下:https://legacy.gitbook.com/book/yeasy/docker_practice/details

第二步 在docker中下载ubuntu镜像,并创建容器

注意:在设计创建docker镜像时候,docker镜像的设计理念应该是分层的构架,即镜像中的应用应该是一种堆叠的结构,应用在功能上要分层视之,很明显,nginx和php是同一级的应用,而它们都应附着在ubuntu操作系统上才能发挥后端的稳定作用。所以,第一层,我们要先创建ubuntu镜像的容器。

输入命令:docker pull ubuntu,默认安装的是ubuntu最新版18.04。
安装结束后,输入docker images,查看本地镜像库,如图:
在这里插入图片描述
而后创建ubuntu镜像容器,输入命令:docker run -itd --name "nginx-php" -p 8081:80 ubuntu。指定容器与宿主机的端口映射关系,用于下一步访问容器中的nginx的服务器。
输入命令:docker exec -it nginx-php /bin/bash进入该ubuntu容器的终端,进行操作。

第三步 在ubuntu镜像中安装nginx(接下来的步骤可以直接在宿主机ubuntu系统下也可以直接使用)

1.apt-get update #更新安装源软件库
2.apt-get install vim #安装文本编辑软件
3.apt-get install nginx #安装nginx
4.service nginx start #启动nginx服务
此时,nginx已经安装完毕,打开浏览器,输入http:127.0.0.1:8081即可检验。

注意:ubuntu中nginx服务器文件存放路径为:/var/www/html,nginx配置文件的路径为:/etc/nginx/sites-enabled/default

第四步 在ubuntu镜像中安装php以及php-fpm

1.apt-cache search php #首先搜索软件库中的php版本,选择合适的
2.apt-get install php7.2 #安装选取的php版本
3.apt-get install php7.2-fpm #安装选取php版本对应的fpm
4.service php7.2-fpm start #启动php-fpm服务
5.修改nginx配置文件,启动nginx,php-fpm模块,修改部分如下:

 location ~ \.php$ {
                root           /var/www/html;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
                fastcgi_pass   unix:/var/run/php/php7.2-fpm.sock;
        }`

6.更新nginx配置:nginx -s reload

ubuntu镜像中composer的安装

1.`curl -sS https://getcomposer.org/installer | php #使用该命令时候,必须将路径设置到根路径

注意:如果这一步提示错误,
1.很可能使用为curl没有安装,可以先进性curl的安装:sudo apt-get install curl
2.需要更改php配置文件中的参数zlib stream,参考链接:https://github.com/composer/composer/issues/4619
3.也有可能是被墙的问题,需要多试几次

成功后显示:
在这里插入图片描述
2.将composer.phar文件移动至/usr/local/bin/composer中,将composer命令全局化,命令:mv composer.phar /usr/local/bin/composer。如图:
在这里插入图片描述
3.改变composer下载依赖包的源路径,以加快依赖包的下载速度。镜像源链接:https://beltxman.com/2554.html(根据不同的服务器环境进行镜像源的设置)
composer镜像源更改命令为:
在这里插入图片描述
打入composer命令验证安装是否成功,成功后显示如图:
在这里插入图片描述

结尾

至此,自定义开发环境的三大要素软件已在镜像第一层ubuntu容器里安装搭建完毕。
而现在我们就会在想,既然我们要做可以“即插即用”的光盘,现在本篇文章已经把光盘的内容设置好了,而怎么把这些内容压缩在一个“光盘”上,也成为一个镜像(image),随时都可以pull下来使用,已经成为了现在所需要考虑的问题。下一篇我们将讲解如何将自己本地的特定容器打包成镜像,并上传之运营商的云镜像库中以待使用。

猜你喜欢

转载自blog.csdn.net/caozhennan824/article/details/105621208