【杂记】关于ThinkPHP V5项目上线的若干反思

本文从localhost环境开发和项目上线VPS两个方面反思ThinkPHP V5的使用经验,包括PHP版本和拓展配置、Apache的rewrite模块、open_basedir设置、接口返回值查看方法以及错误排查技巧,特别提到了500错误可能由运行时文件夹权限引起。

localhost环境开发反思

1.TP5完全开发手册是学习TP5框架的最快捷最高效的工具

 

项目上线VPS反思

1、注意根据TP5安装环境要求对VPS上的linux主机进行相应配置。

据完全按开发手册,TP5安装环境要求:

  • PHP >= 5.4.0
  • 开启PDO(用于提升数据库操作安全性)、MBString(用于多字节字符串处理)、CURL拓展

可以通过yum安装php56w包和yum list | grep php56w并安装相应拓展实现需求

关于mysqlnd拓展和mysql拓展:两种拓展均提供php与数据库的交互服务,但是基于不同驱动,同时安装会冲突(请注意),鉴于mysqlnd驱动的一些优点(笔者还未了解),php 5.3以上的版本均以mysqlnd为默认驱动了(但似乎linux上yum安装php56w时不会被检索为依赖拓展,仍需要手动安装)

 

2、注意localhost环境与vps环境的apache配置差异

据完全开发手册,TP5的路由url可以省去index.php的填写是因为apache服务器启用了mod_rewrite.so并在httpd.conf和.htaccess文件中进行了相应的配置。我的localhost是默认的Load了rewrite模块,httpd.conf中网站根目录下的AllowOverride也改为了All,于是TP5中public目录下的.htaccess文件可以生效(该文件定义了省去index.php的重写规则)。于是localhost环境开发比较顺利。

而vps上apache服务器的模块虽然启用了(可到  /etc/httpd/conf/httpd.conf  文件中或  /etc/httpd/conf.d/  目录下相应文件中查看),但网站根目录的AllowOverride None未修改,或修改后未重启服务,均会导致404

 

3、关于open_basedir

据完全开发手册“部署”部分给出的服务器报错解决方案,设置open_basedir可以解决问题。

但我的apache配置文件中似乎看不见它的踪影,这个选项是用来设置外部可访问的服务器主机文件系统范围的,我现在还是不要乱搞比较好。

 

4、关于查看用TP5写成的接口的返回值

不要直接在url中输入接口地址,譬如返回的是json格式数据(事实上,这是TP5的默认数据返回格式),浏览器是无法直接显示json对象的,于是会报错(框架文件Response.php中返回数据格式格式不对)。同时如果直接用url访问post方式访问的接口地址而忘记用PATH_INFO形式带参数,也会导致报错,对我这种小白的debug比较不利。

所以,关于接口返回值,可以通过chrome开发者工具(F12)的Network选项中相应地址的Response栏查看,如果看到了期望的返回值,则证明后端代码没问题(事实上,如果有问题,在postman调试时应该就能发现)

 

5、关于500

对于API模式开发的项目上线,前后端代码都没问题(postman基本测试通过,Response栏有期望数据),却有500报错,最直接的方法应该就是查看apache错误日志了

错误日志在 /var/log/httpd/  目录下,主要在error_log文件中。

我这次的500原因是TP5的runtime文件夹访问权限问题,同时需要注意linux环境下的大小写敏感。

(Kriging_NSGA2)克里金模型结合多目标遗传算法求最优因变量及对应的最佳自变量组合研究(Matlab代码实现)内容概要:本文介绍了克里金模型(Kriging)与多目标遗传算法NSGA-II相结合的方法,用于求解最优因变量及其对应的最佳自变量组合,并提供了完整的Matlab代码实现。该方法首先利用克里金模型构建高精度的代理模型,逼近复杂的非线性系统响应,减少计算成本;随后结合NSGA-II算法进行多目标优化,搜索帕累托前沿解集,从而获得多个最优折衷方案。文中详细阐述了代理模型构建、算法集成流程及参数设置,适用于工程设计、参数反演等复杂优化问题。此外,文档还展示了该方法在SCI一区论文中的复现应用,体现了其科学性与实用性。; 适合人群:具备一定Matlab编程基础,熟悉优化算法和数值建模的研究生、科研人员及工程技术人员,尤其适合从事仿真优化、实验设计、代理模型研究的相关领域工作者。; 使用场景及目标:①解决高计算成本的多目标优化问题,通过代理模型降低仿真次数;②在无法解析求导或函数高度非线性的情况下寻找最优变量组合;③复现SCI高水平论文中的优化方法,提升科研可信度与效率;④应用于工程设计、能源系统调度、智能制造等需参数优化的实际场景。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现过程,重点关注克里金模型的构建步骤与NSGA-II的集成方式,建议自行调整测试函数或实际案例验证算法性能,并配合YALMIP等工具包扩展优化求解能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值