PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

使用Docker部署Fastadmin项目

管理员 2024-12-14
Fastadmin
26

这个问题之前我提问过,后来没找到合适的,就自己弄了,我只是前端开发,所以仅仅把我部署成功的流程给大家分享一下,欢迎批评指正。

❤️ ,这几天用Fa开发项目上线测试,用的docker部署,遇到一堆问题,下面把遇到的问题记录下来帮助其它小伙伴免入坑。

说说基本思路:

Ubuntu服务器 + Nginx + Docker

Docker内部运行一个PHP-FPM容器,由外部的Nginx转发到内部。

1.前排提醒:一定要把Fa的debug:False,不然加载异常缓慢,还有就是,如果你更改了css文件,记得打包压缩,因为关闭调试就是正式了。(如果你使用了主机映射,可以直接修改css文件后,安装nodejs和phpcli,使用压缩命令)

2.首先我们看一下项目目录:dev测试使用

image.png

然后使用scp或者FTP把项目上传到服务器,过程我就省略啦,如果你压缩了,可以使用apt-get install unzip来解压。

这里为了隐私:我们假设项目目录在 /fadev/phpdev/www/fa项目文件

这里之所以把项目放到主机上,为了将容器内部与主机外部映射,这样就可以直接修改外部文件实时更新了。

创建容器先下载一个php镜像:

docker pull php7.2-fpm

然后创建容器:-d 后台运行容器,--name 起个名字 -p 主机端口映射容器内部端口 -v 主机目录映射容器目录 --link 关联另一个容器,可以直接访问Mysql,最后是使用的镜像。

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=模块/这种可以访问,我们解决一下:

server {        listen 80;        server_name dev.test.cn;       location / {    //这里注意是指向主机目录,用容器的也行        root   /fadev/phpdev/www/public;        index  index.html index.htm index.php;        if (!-e $request_filename) {          rewrite ^/index.php(.*)$ /index.php?s=$1 last;          rewrite ^(.*)$ /index.php?s=$1 last;          break;        }    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {   //这是容器目录,哪个目录都可以        root   /var/www/html/public;    }     location ~ .php(.*)$ {    //重点来了,这里是PHP容器的内网地址:docker inspect 容器名去看看,将PHP转发到容器        fastcgi_pass   172.17.0.6:9000;        fastcgi_index  index.php;    //重写url        fastcgi_param SCRIPT_FILENAME /var/www/html/public$fastcgi_script_name;        fastcgi_param PATH_INFO $1;        include        fastcgi_params;    }        location /assets {                //如果你遇到资源文件404,用这个,感谢前公司大佬帮忙,我之前用的正则匹配后缀去了,效果不好。                alias /fadev/phpdev/www/public/assets;        }}

然后

Nginx -t //检查配置语法Nginx -s reload //重启配置

下面处理MySQL:你需要进入Mysql容器里先创建一个fa的数据库

docker cp ./xx.SQL  mysql:/xx  //复制到容器里面 docker exec -it mysql bash    mysql -u root -p    use xx database;    source xx.SQL;    exit;

导入数据库后,最后一个就是连接数据库:你需要到fa的数据库配置文件修改配置:

连接默认应该是:localhost或者127.0.0.1吧,换成mysql的内网地址:172.0.x 使用 docker insect mysql查看内网地址就好了。

然后输入 dev.test.cn 就行了。

docker ps

image.png

本文我在自己的独立博客也记录了。

http://blog.borebooks.top


希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部