欢迎光临
我们一直在努力

php-Laravel与连接MySQL的Docker问题

本站教程收集整理的这篇文章主要介绍了php-Laravel与连接MySQL的Docker问题,本站教程本站觉得挺不错的,现在分享给大家,也给大家做个参考。

我遵循的使用Docker设置Laravel的步骤:在我的本地系统中,我没有安装php,Composer,Apache,MysqL,phpR_804_11845@y@R_800_6739@.在我的系统中仅安装了Git和Docker.

> 香港vps git克隆https://github.com/laravel/laravel.git
>在项目根目录下创建docker-composer.yml文件.

version: "3"
services:
  db:
  image: MysqL:5.7
  environment:
    MysqL_ROOT_password: pass
    MysqL_DATABASE: db
    MysqL_USER: root
    MysqL_password: pass
  ports:
    - "3306:3306"

web:
  image: php:7.2.2-apache
  container_name: web_laravel
  depends_on:
    - db
  volumes:
    - ./:/var/www/html/
  ports:
    - "4000:80"
  stdin_open: true
  tty: true

phpR_804_11845@yadmin:
  image: phpR_804_11845@yadmin/phpR_804_11845@yadmin
  depends_on:
    - db
  external_links:
    - db:MysqL
  ports:
    - "9191:80"
  environment:
    MysqL_USER: root
    MysqL_password: pass
    MysqL_ROOT_password: pass
    PMA_HOST: db

>从项目根目录运行命令.

docker-compose up

该命令将从本地缓存或Docker Hub中获取所有映像(php:7.2.2-apache,phpR_804_11845@yadmin / phpR_804_11845@yadmin,MysqL:5.7),并为这些映像启动三个容器.

现在,我需要与名为web_laravel的php:7.2.2-apache图像容器进行交互(请参见yml文件),以便添加php扩展和Composer来运行Laravel项目.
>运行此命令.

docker exec -it web_laravel /bin/bash

现在我可以在运行web_laravel容器中运行任何命令,因此我已经安装了Composer和php扩展,例如mbStrings,pdo,pdo_MysqL等.

然后使用COR_804_11845@poser install安装Laravel依赖项,设置存储和bootstrap / cache文件夹的权限,并运行php artisan key:generate.

打开localhost:4000,我可以看到Laravel主页:

至此一切都很好.现在,当我连接到数据库时,问题开始了.

下一条要运行的命令(我仍在容器中):

  php artisan migrate

错误是:

 Illuminate\Database\QueryException  : sqlSTATE[HY000] [2002] No such file or directory (sql: SELEct * from @R_88_4036@ion_scheR_804_11845@a.tables where table_scheR_804_11845@a = blog and table_name = migrations)

 Illuminate\Database\QueryException  : Could not find driver (sql: SELEct * from @R_88_4036@ion_scheR_804_11845@a.tables where table_scheR_804_11845@a = blog and table_name = migrations)

我能够打开phpR_804_11845@yAdmin(http://localhost:9191)并可以创建数据库,表和与操作相关的数据库.我有DB叫做Blog.

@H_527_0@mysqL环境变量:

DB_CONNECTION=MysqL
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_password=pass

解决方法:

我认为您有几个问题,首先是laravel .env配置应指向MysqL容器,而不是本地主机

DB_HOST = 127.0.0.1

应该

DB_HOST = db

您谈论的另一个错误与Docker不相关

它可能与缺少依赖项有关,应该运行

作曲家要求教义/ dbal

另外,您说:

您应该在php 7 / Apache映像之上构建映像,并将其添加到构建dockerfile中,因为您的更改(php扩展,配置…等)不是持久性的.我建议您使用Laradock或任何其他现有的Laravel / docker环境.

本站总结

以上是本站教程为你收集整理的php-Laravel与连接MySQL的Docker问题全部内容,希望文章能够帮你解决php-Laravel与连接MySQL的Docker问题所遇到的程序开发问题。

如果觉得本站教程网站内容还不错,欢迎将本站教程推荐给好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。