tp3.2老旧项目的一些坑
搞了套小程序源码,后端是古老的tp3.2,用laradock部署环境,遇到了好几个问题哦~
一,在.env种配置项目地址和镜像内对应的地址#
vim .env
APP_CODE_PATH_HOST= 配置linux本机中的项目地址
APP_CODE_PATH_CONTAINER= 将本机中的项目地址自动映射到镜像中的/var/www 目录
二,tp3.2中的 path_info 与 nginx 相应的配置#
首先找到nginx的配置文件,找到对应的站点文件,我用的是laradock,文件在laradock/nginx/sites目录下
重定向,在 loacation / { } 里面添加一句话,实现重定向
if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; }
然后解析并添加PATH_INFO全局变量,这是为了给tp3.2获取PATH_INFO作的准备工作
在 location ~ \.php { } 中添加三行
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
注意默认的配置是 location ~ \.php$,这里 $ 的意思是以 ...为结尾,为了能够匹配到带后面字符串的url,去掉$
最后修改tp3.2的url的模式为2
这样我们输入 http://wechat.test/Admin/Login/index.html (不带index.php)就能访问相应的方法或者页面了
三、_STORAGE_WRITE_ERROR_问题#
遇到这种问题,一般是写入权限问题,修改Runtime文件夹权限为777
chmod 777 -R Runtime
Runtime文件夹在 主目录/App 下
四、如何在laradock的数据库中导入sql#
首先把sql文件放到指定文件夹里面
指定文件夹 laradock/mariadb/docker-entrypoint-initdb.d
然后进入容器内部,我用的是mariadb,执行命令
docker-compose up exec mariadb bash
然后登录mysql,密码自己知道
mysql -uroot -p
最后执行导入命令
source docker-entrypoint-initdb.d /***.sql
五、一些常见操作#
站点文件中配置域名,也要在hosts中绑定
vim /etc/hosts #举个例子 0.0.0.0 wechat.test
docker-compose命令
docker-compose up -d 某容器名字 #-d是后台启动 docker-compose up --build 某容器名字 #--build是重新创建某容器,类似编译 docker-compose down #停止所有容器,也可以单个停止 docker-compose restart # 重启所有容器,也可以单个启动
作者:BigBender
出处:https://www.cnblogs.com/BigBender/p/12384714.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!