DNMP一键部署PHP8.2和Laravel10的Docker环境

本文详细指导如何在Ubuntu22.04的VMware环境中,使用DNMP工具一键部署PHP8.2和Laravel10的Docker容器化开发环境,包括gitclone项目、配置环境变量、docker-compose设置和启动服务等步骤。
摘要由CSDN通过智能技术生成

DNMP一键部署PHP8.2和Laravel10的Docker环境

在这里插入图片描述

服务器环境

所有命令皆在root用户下运行

VMware虚拟机下的ubuntu22.04

docker24.0.7

docker-compose 2.6.1

yeszao/dnmp开源仓库仓库地址:https://gitee.com/yeszao/dnmp

本文章只提供整个部署的过程,对docker、dockerFile以及docker-compse的知识最好有初步的认识,才能更好的理解

流程

① 首先在/www文件夹拉取dnmp项目,代码如下:

root$ mkdir /www  #根目录下创建www文件夹
root$ cd /www #切换到www目录
root$ git clone https://gitee.com/yeszao/dnmp.git #克隆dnmp项目
root$ cd dnmp #切换到dnmp文件夹
root$ cp env.sample .env # 复制环境变量文件
root$ cp docker-compose.sample.yml docker-compose.yml # 复制 docker-compose 配置文件。默认启动3个服务:
                                                   	  # Nginx、PHP7和MySQL8。要开启更多其他服务,如Redis、
                                                      # PHP5.6、PHP5.4、MongoDB,ElasticSearch等,请删
                                                      # 除服务块前的注释

② 创建Laravel项目(在dnmp的www文件夹下) 请忽略第二步,在这里创建项目不是我们的目的,等容器启动完在进入PHP容器创建较为稳妥,除非你是要将已有的项目clone到这里

root$ cd www  #进入dnmp的www文件夹
root$ composer create-project laravel/laravel Laravel10 #创建Laravel项目,并命名为Laravel10
root$ cd .. #回到dnmp文件夹进行下一步操作

③ 修改dnmp的.env文件使用php8.2版本

root$ vim .env #编辑 .env文件

在.env文件中找到以下内容

PHP80_VERSION=8.0.30
PHP80_PHP_CONF_FILE=./services/php80/php.ini
PHP80_FPM_CONF_FILE=./services/php80/php-fpm.conf
PHP80_LOG_DIR=./logs/php80
PHP80_EXTENSIONS=pdo_mysql,mysqli,mbstring,gd,curl,opcache

将 8.0.30 改为8.2并保存退出

PHP80_VERSION=8.2

④ 修改nginx容器的配置文件

root$ vim services/nginx/conf.d/localhost.conf

改动如下图(四处改动,root的第二个是你laravel项目的主目录名,这里只为快速启动,想要将laravel项目配置到其他端口可以新建配置文件,再到docker-compose.yml进行端口映射即可)

改动内容
在这里插入图片描述
⑤ 修改docker-compose文件,找到php80的位置

root$ vim docker-compose.yml

在这里插入图片描述
⑥ 启动各个容器(这里启动mysql5、nginx、php80;ps:若为mysql8则将mysql5改为mysql即可)

root$ docker-compose up mysql5 nginx php80

等待docker对各个镜像的下载和编排启动,一般不会出什么问题,若出错请百度其他文章解决, 有个小坑,如果你也和我一样使用VMware的话,请不要在共享文件夹进行这些操作,否则编排容器时会报错,我找不到解决办法 ┭┮﹏┭┮
出现以下界面即为启动成功,或者查看docker容器,是否存在你启动的容器
在这里插入图片描述
⑦别急,最后一步,按照docker的理念,我们应该进入php80容器执行php以及composer命令,创建laravel10项目

root$ docker ps #查看运行中的容器,主要是为了查看php80容器的id
root$ docker exec -it 19faa598ed76 sh #19faa598ed76 请改为你直接的php80容器id
/www$ composer create-project laravel/laravel Laravel10 #创建laravel10项目
#建议将更改composer为国内镜像源,https://learnku.com/articles/15977/composer-accelerate-and-modify-mirror-source-in-china
/www$ chown -R www-data:www-data /www/Laravel10/storage #若你使用mysql5进入容器后请运行此条命令
/www$ chmod -R 775 /www/Laravel10/storage	#若你使用mysql5进入容器后请运行此条命令,否则无法写入日志文件报错
									  #进入容器后就是简单的Laravel初始化操作了,即安装依赖以及生成appkey
									  #composer install
									  #php artisan key:generate
		 							  #初始化完成后exit退出容器控制台

在这里插入图片描述

最后

  • 给个赞?
  • 项目端口为80,请访问服务器or虚拟机的ip地址即可
  • 对于dnmp的更多详细内容请阅读仓库的yeszao/dnmp 的 Readme.md
  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值