php搭建一个简单的网站(如何搭建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:\wamp64\www。修改代码之后,不需要重启服务器,这个比java要好很多,当然java也能够完成热部署,可以安装jrebel插件,可以达到同样的效果。
下一步需要配置php,就好比设置java的jdk。
下一步设置访问php的路径,有点类似于nginx的location。设置方法如下
测试:
接下来要debug代码,需要安装插件。
网上的说法是将phpinfo的信息,拷贝到如下文本框中
结果说5.5不支持,只好点看download,碰碰运气,还真的被找到了
切记不要下载第一个,我一开始下载了第一个,各种安装不成功,然后我就去看默认安装的php,xdebug是什么样的文件。
第一个下载的地址是:
第三个下载地址是:
好像这两个地址搞反了,这是一个大坑。
需要在D:\wamp64\bin\apache\apache2.4.39\bin目录下的php.ini文件下添加下面的配置,配置含义是配置xdebug的路径,是否打开debug,debug端口,默认9000,因为我的被占用了,我改成了9001。
[Xdebug] zend_extension="D:\wamp64\bin\php\php5.5.18\zend_ext\php_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:\wamp64\bin\apache\apache2.4.39\bin\php.ini
最后发现页面能正常访问,又去重新查找nginx,发现是nginx配置的不对,然后把nginx配置修改,重新加载配置,问题ok了。
一次粗心大意,让我体验了一把php本地环境,虽然踩了一些坑,但是收获还是挺多的,假如将来出现问题,就更有信心了,因为知道该如何调试了。过程中,有很多时候都想过放弃,后面还是咬着牙逼着自己去克服,很多时候我们都会遇到各种各样的困难,需要鼓励自己,相信自己能行。最后以一句尼采的话和大家一起共勉,“知道为什么而活的人,便能生存”。
java设计模式系列文章:
java设计模式之桥接模式,策略模式旗舰版,世界没有免费的午餐
监控系列文章:
应用监控之调用链跟踪选型之Zipkin、Pinpoint、SkyWalking、CAT
java应用监控之Cat集成Dubbo、Mybatis、Logback、spring boot