使用docker搭建laravel记叙

Posted shaozm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用docker搭建laravel记叙相关的知识,希望对你有一定的参考价值。

 第一步,先从dockerhub上pull一个docker镜

 1 docker pull laraedit/laraedit 

 这个docker镜像已经安装了 nginx、laravel和mysql,所以不需要自己再去安装,先创建一个文件夹

 1 mkdir /usr/local/laravel 

 直接运行一个容器  

docker run -it --name laravel -p 8088:80 -p:3306:3306 -v /usr/local/laravel:/var/www/html/app laraedit/laraedit /bin/bash 

 --name  laravel容器名字,可以随便改

 -v 主机文件夹:docker文件夹 是将主机文件夹挂载到容器中,现在访问/usr/local/laravel就像访问容器中/var/www/html/app一样

 运行这个命令之后直接进入到了容器中

 按Ctrl+P 然后Ctrl+Q 退出容器 ,再次进入docker exec -it laravel /bin/bash 或者 docker exec -it 容器id  /bin/bash

 这个laraedit预先已经将 80, 443, 3306, 6379端口开放,但如果别的主机想要使用这个端口访问 ,还需要用-p 主机端口:docker端口 进行端口映射, 我暴露出了两个端口网站的和mysql的

 因为我想要在自己的电脑上用navicat连接docker的数据库,不过现在我连数据库密码都不知道,首先进入数据库

     

mysql

这里不需要用户名密码直接进入

  

1 use mysql;
2 
3 select host,user,authentication_string from user;

可以看到类似以下

+-----------+-----------+-------------------------------------------+
| host | user | authentication_string |
+-----------+-----------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| 0.0.0.0 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 0.0.0.0 | homestead | *14E65567ABDB5135D0CFD9A70B3032C179A49EE7 |
| % | homestead | *14E65567ABDB5135D0CFD9A70B3032C179A49EE7 |
+-----------+-----------+-------------------------------------------+

有可以远程访问的root账号,所以直接改

1 update user set authentication_string =password(你的密码) where user=root
1  GRANT ALL PRIVILEGES ON *.* TO 你的用户名@%IDENTIFIED BY 你的密码 WITH GRANT OPTION;
2 FLUSH PRIVILEGES;

上面就是添加了远程访问的权限

这时候就可以直接在自己的电脑上用navicat连接docker中的mysql了

 

接着去配置docker容器中的nginx

 1 vim /etc/nginx/nginx.conf 

配置参照官方文档

https://laravel-china.org/docs/laravel/5.5/deployment

具体配置还是根据自己实际环境配置

配置完成之后将自己的网站laravel根目录下的所有文件全部复制到容器中的app目录下,因为已经做了目录挂载,所以直接复制到主机上 /usr/local/laravel下即可

然后将laravel的数据库地址更改一下,修改为主机外网ip地址

最后修改容器中/var/www/html/app的属主

 1 chown -R www-data:www-data /var/www/html/app 

 

如果使用了Eloquent ORM框架的话

再在根目录下运行php artisan  migrate,查看数据库中表是不是都成生了。

现在就可以访问php网站了  

 









以上是关于使用docker搭建laravel记叙的主要内容,如果未能解决你的问题,请参考以下文章

使用docker lnmp镜像包部署搭建laravel项目

本地使用 docker 快速搭建一个 PHP7.4 学习环境 | Laravel China 社区

docker 搭建laravel开发环境

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

docker 从入门到自动化构建 PHP 环境 | Laravel China 社区

centos7,docker版本搭建lnmp环境,部署laravel项目,解决大坑,新手教学