一次粗心,让我学会了如何搭建php环境,坑越多越有成就感

线上php程序出现了问题,商品页面无法正常访问,对于java开发工程师来说有一些困难,因为之前没有相关经验,一开始自己内心也是挺排斥的,然而问题摆在那里,只能去硬着头皮去解决。首先是查看错误日志,定位问题,看究竟那里出现了错误。然后根据nginx配置,看页面是如何转发,真正的请求地址是什么,我的粗心就在nginx配置上,因为括号没有对齐,导致我忽略了下面的配置,其实最终的问题出现在nginx配置上,不过如果没有看代码,也不能很快的发现nginx配置有问题。

第一天查看了php的代码,大致了解了代码逻辑,知道一次请求经过了哪些文件,所有的文件都是通过index.php来处理,根据参数的拼接,找到对应的controller,再到model层去查询数据,先查缓存,如果缓存没有命中,回源查数据库,数据拼接好之后,返回视图层,对应的页面文件,mvc的模型,和java是相通的。

因为一开始以为是代码有问题,所以想通过本地调试,找到代码问题出现在哪里?决定搭建php本地环境,上网查资料,开始了采坑之旅。

第一步ide工具,因为喜欢idea,搜了一下idea for php,发现phpstorm就是我要找的。

第二步安装wamp,第一次安装了一个32位的,后面因为要安装xdebug,然后去官网下载了一个64位的。wamp我感觉就像一个工具箱,集成了apache服务器,php,mysql等常用工具,能方便快速开发。

公司同事找到了以前开发php应用的同事,拉了一个微信群,在群中请教了前同事一些问题,如果本地调试,要修改一些参数,php版本建议使用5.5.18,我看php最新版本都已经7.3,我下载的wamp,只有以下版本的php

只好去下载php5.5.18的版本,现在方式:

下载之后解压到wamp中的bin/php目录之下。还需要做一些修改,默认安装的php,会多出两个文件,如下图。

从默认安装的php中把wampserver.conf文件复制到新下载的PHP5.5.18文件夹中。复制目录下的php.ini-development并重命名为phpForApache.ini。完成以上步骤之后,左键wamp图标,php->version->5.5.18,让5.5.18作为默认php版本。

测试步骤:访问wamp首页

接下来要配置phpstorm环境,首先从git下载代码,需要将代码下载到wamp的www目录下,我的目录是D:wamp64www。修改代码之后,不需要重启服务器,这个比java要好很多,当然java也能够完成热部署,可以安装jrebel插件,可以达到同样的效果。

下一步需要配置php,就好比设置java的jdk。

下一步设置访问php的路径,有点类似于nginx的location。设置方法如下

测试:

接下来要debug代码,需要安装插件。

网上的说法是将phpinfo的信息,拷贝到如下文本框中

结果说5.5不支持,只好点看download,碰碰运气,还真的被找到了

切记不要下载第一个,我一开始下载了第一个,各种安装不成功,然后我就去看默认安装的php,xdebug是什么样的文件。

第一个下载的地址是:

第三个下载地址是:

好像这两个地址搞反了,这是一个大坑。

需要在D:wamp64inapacheapache2.4.39in目录下的php.ini文件下添加下面的配置,配置含义是配置xdebug的路径,是否打开debug,debug端口,默认9000,因为我的被占用了,我改成了9001。

[Xdebug]
zend_extension="D:wamp64inphpphp5.5.18zend_extphp_xdebug-2.5.5-5.5-vc11-x86_64.dll"
xdebug.remote_enable=1
xdebug.remote_port=9001
xdebug.remote__handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost

点击validate进行测试

如果全部ok说明安装成功,或者通过phpinfo,查看。

第三步开启listening,第四步安装浏览器xdebug插件。

火狐安装完xdebug插件如下图:

可以正常debug调试了,花了挺长时间,开到成功了,很开心,别急,还有坑在后面,开始debug代码,一步一步的跟踪,结果发现查询数据库的时候,就不动了,也不报错,又是各种找资料,然后自己从网上找了一个简单的连接数据库的代码,一运行,发现没有加载mysql的库。一开始把mysql的扩展打开,结果后面又缺少其他的扩展,最后把扩展都打开了,如下图,要修改的文件是:D:wamp64inapacheapache2.4.39inphp.ini

最后发现页面能正常访问,又去重新查找nginx,发现是nginx配置的不对,然后把nginx配置修改,重新加载配置,问题ok了。

一次粗心大意,让我体验了一把php本地环境,虽然踩了一些坑,但是收获还是挺多的,假如将来出现问题,就更有信心了,因为知道该如何调试了。过程中,有很多时候都想过放弃,后面还是咬着牙逼着自己去克服,很多时候我们都会遇到各种各样的困难,需要鼓励自己,相信自己能行。最后以一句尼采的话和大家一起共勉,“知道为什么而活的人,便能生存”。

END

原文发布于微信公众号 - java程序员思维(java_python_go)

原文发表时间:2019-06-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券