使用docker部署fastadmin基于ThinkPHP5.0后端框架
使用docker部署fastadmin基于ThinkPHP5.0后端框架
❄️2winter❤️ ,这几天用Fa开发项目上线测试,用的docker部署,遇到一堆问题,下面把遇到的问题记录下来帮助其它小伙伴免入坑。
说说基本思路:
Ubuntu服务器 + Nginx + Docker
Docker内部运行一个PHP-FPM容器,由外部的Nginx转发到内部。
1.前排提醒:一定要把Fa的debug:False,不然加载异常缓慢,还有就是,如果你更改了css文件,记得打包压缩,因为关闭调试就是正式了。(如果你使用了主机映射,可以直接修改css文件后,安装nodejs和phpcli,使用压缩命令)
2.首先我们看一下项目目录:dev测试使用
然后使用scp或者FTP把项目上传到服务器,过程我就省略啦,如果你压缩了,可以使用apt-get install unzip来解压。
这里为了隐私:我们假设项目目录在 /fadev/phpdev/www/fa项目文件
这里之所以把项目放到主机上,为了将容器内部与主机外部映射,这样就可以直接修改外部文件实时更新了。
创建容器先下载一个php镜像:
1 | docker pull php7.2-fpm |
然后创建容器:-d 后台运行容器,–name 起个名字 -p 主机端口映射容器内部端口 -v 主机目录映射容器目录 –link 关联另一个容器,可以直接访问Mysql,最后是使用的镜像。
1 | docker run -d --name fa-php-dev -p 9527:80 -v /fadev/phpdev/etc/:/usr/local/etc/php -v /fadev/phpdev/www/:/var/www/html --link mysql php:7.2-fpm |
如果没有报错,说明成功运行了。下面配置Nginx,最后会说SQL导入。
下面有几个重点:nginx不支持url重写,会发生模块不可访问,使用/xxx/public/index.php?s=模块/这种可以访问,我们解决一下:
1 | server { |
然后
1 | Nginx -t //检查配置语法 |
下面处理MySQL:你需要进入Mysql容器里先创建一个fa的数据库
1 | docker cp ./xx.SQL mysql:/xx //复制到容器里面 |
导入数据库后,最后一个就是连接数据库:你需要到fa的数据库配置文件修改配置:
连接默认应该是:localhost或者127.0.0.1吧,换成mysql的内网地址:172.0.x 使用 docker insect mysql查看内网地址就好了。
然后输入 dev.test.cn 就行了。
docker ps