您现在的位置是:首页 > 技术教程 正文

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

admin 阅读: 2024-03-17
后台-插件-广告管理-内容页头部广告(手机)

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等,请删 # 除服务块前的注释
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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

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

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

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

在.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
  • 1

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

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

root$ vim docker-compose.yml
  • 1

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

root$ docker-compose up mysql5 nginx php80
  • 1

等待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退出容器控制台
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

最后

  • 给个赞?
  • 项目端口为80,请访问服务器or虚拟机的ip地址即可
  • 对于dnmp的更多详细内容请阅读仓库的yeszao/dnmp 的 Readme.md
标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜