美文网首页
Laradock踩坑记录

Laradock踩坑记录

作者: Tauruse | 来源:发表于2023-03-12 20:05 被阅读0次

开发环境是Win10企业版 + Wsl2 + Laradock,测试时间是2023.03.13
参考文档:
使用 Laradock 搭建基于 Docker 的 PHP 开发环境 | 快速入门 | Laravel 5.5 中文文档 (laravelacademy.org)
(踩坑)WSL2+docker+laradock 配置并安装 Laravel 框架 | Laravel China 社区 (learnku.com)
Windows 10 Docker 安装并搭建 PHP 开发环境 - 简书 (jianshu.com)

网络问题

在build的时候,会涉及到很多外网资源的下载,由于众所周知的原因,在国内的速度简直令人发指。可以修改.env文件中的部分选项来提速;

  1. 将下载源更换为国内镜像源(修改.env文件);
# 将comoser更换为阿里镜像源(更改为其他国内镜像源也可以,否则速度不稳定)
WORKSPACE_COMPOSER_REPO_PACKAGIST=https://mirrors.aliyun.com/composer/
# 设置NVM安装node的淘宝镜像源
WORKSPACE_NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
# 设置node的淘宝的registry
WORKSPACE_NPM_REGISTRY=https://registry.npm.taobao.org/

apt切换为国内镜像源:

# 更换中国镜像源,改为true
CHANGE_SOURCE=true

  1. 安装Node
    如果不需要使用node,可以把一些配置项设置为false,同时上面的淘宝镜像源需要留空;
WORKSPACE_INSTALL_NODE=false
WORKSPACE_INSTALL_YARN=false
WORKSPACE_INSTALL_NPM_GULP=false
WORKSPACE_INSTALL_NPM_BOWER=false
WORKSPACE_INSTALL_NPM_VUE_CLI=false
WORKSPACE_INSTALL_NPM_ANGULAR_CLI=false

如果需要装node,那么一般情况下会卡在安装“nvm”时,因为里面会涉及到访问https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh 这个网络文件,也就是github上面的 creationix/nvm 仓库的install.sh文件,会网络超时;

解决办法以下三种任选其一:

  1. 手动修改host文件,让网址直接对应IP;
  2. 手动下载 install.sh 文件,然后修改配置文件(相对目录 laradock/workspace/Dockerfile),将涉及到该文件的网络请求改为读取本地文件;
  3. 将上面提到的Node配置项设置为false;

如果没有特别的需求,建议不要在docker里面装Node,直接本地环境装就可以了;


  1. PHP 8.0
    因为最新的Laravel版本都到9,10了,最低要求PHP需要8.0以上;目前下载laradock里面的PHP版本默认还是7.4,所以后来只能手动修改.env文件里面的PHP版本,然后重新编译了
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM).
# Accepted values: 8.2 - 8.1 - 8.0 - 7.4 - 7.3 - 7.2 - 7.1 - 7.0 - 5.6
PHP_VERSION=8.1

涉及到一些常用的docker-composer命令

# 启动容器,如果软件没有编译会先编译
docker-compose up -d nginx mysql redis workspace

# 重新构建容器
docker-compose build php-fpm

# 关闭容器服务
docker-compose stop

# 进入laradock虚拟机的命令行
docker-compose exec workspace bash

# 进入mysql命令行
docker-compose exec mysql bash

修改PHP版本,可以参考 Laradock 切换 PHP 版本 - 麻辣讲 (malajiang.com)


遇到的一些坑

  1. mysql问题
    在mysql命令行中,通过命令 mysql -u root -p进行登录,账号密码都是对的,但是就是提示错误,但是直接执行命令 mysql 却可以连上数据库。

解决方法:将mysql中的数据库删除:

# 如果没有修改.env文件,win10的mysql数据也是存在这个目录
rm -rf ~/.laradock/data

然后重新编译mysql:

docker-compose build 

此时再次进入mysql命令行,直接执行mysql就连不上数据库了,通过账号密码可以登录;同时,laravel项目的.env文件中,DB_HOST 需要填mysql,这里如果填错会导致项目可以跑起来但是涉及到数据库的时候就会报错;

  1. laravel项目启动问题
    报错信息:
The stream or file(...)  could not be opened in append mode

说明权限不够,需要在workspace命令行(docker-compose exec workspace bash)中修改权限

chown -R laradock:laradock /var/www

其他一些问题,比如没有生成项目的key会报错,直接在workspace命令行中执行php artisan key:generate 即可

其它Laravel项目问题可以参考 使用 Laradock 配置并运行一个 Laravel 站点 - 麻辣讲 (malajiang.com)

相关文章

  • laradock安装blog踩坑记录

    闲来无事顺手把家里台式机从win7升级到win10 为了不折腾那一套lnmp的环境直接来个docker+larad...

  • 2020-10-19随笔 踩坑0传值

    踩坑:当值传入0时,if条件判断时候会自己转换,记录踩坑。

  • Weex入门踩坑记录

    Weex入门踩坑记录

  • Flutter 开发记录

    Flutter 开发踩坑记录(干货总结)

  • 日常bug记录

    想记录日常碰到的bug,坑踩多了,以后应该碰到坑就比较容易处理或者会少踩坑,后面会慢慢记录bug,截图bug以及最...

  • 没事请多踩踩坑!

    人生事不尽意,别人挖坑我踩坑。 请在这里留下你的踩坑记录,让别人少入坑。

  • Windows下GithubPages博客快速搭建

    Windows下开发坑总是比较多的,但是本人没Mac,只好踩一遍坑记录下。本文主要是安装过程&踩坑记录,故不对细节...

  • Retrofit Https踩坑记录

    Retrofit Https踩坑记录 前言 新司机上路,坑多,本文重点是踩坑,不详细讲retrofit用法,本文不...

  • 个人博客标签分类

    【小结】零碎的小结 【踩坑记录】报错等记录,防止再度踩坑 【总结】比较完整的总结 【想法】自己的一些想法和推论 【...

  • 踩坑记录

    如果当前页面是push出的页面,切换根视图控制器没问题;如果当前页面是present出的页面,切换跟视图控制器之前...

网友评论

      本文标题:Laradock踩坑记录

      本文链接:https://www.haomeiwen.com/subject/omrqrdtx.html