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设计模式之代理模式,看我72变

java设计模式之模板模式,站在巨人的肩膀上成功

java设计模式之迭代器模式,顾客永远的上帝

java设计模式之适配器模式,大丈夫能屈能伸

java设计模式之构建模式,私人订制更具特色

java设计模式之组合模式,男女搭配干活不累

java设计模式之状态模式,策略模式孪生兄弟

java设计模式之责任链模式,一个也不能少,每个人都是主角

java设计模式之桥接模式,策略模式旗舰版,世界没有免费的午餐

java设计模式之原型模式,如有雷同,纯属巧合

设计模式之命令模式,各司其职提高效率

设计模式之装饰器模式,因为参与,所以认同

设计模式之策略模式,来源于生活,用之于生活

设计模式之单例模式,每个人都是唯一

监控系列文章:

程序员生存之道,谁开发谁运行谁监控

应用监控之调用链跟踪选型之Zipkin、Pinpoint、SkyWalking、CAT

java应用监控之CAT安装部署

java应用监控之CAT简介

java应用监控之Cat核心功能简介

java应用监控之Cat集成Dubbo、Mybatis、Logback、spring boot

java应用监控之利用cat接口性能优化,每一次都是血的教训

java应用监控之Prometheus简介

java应用监控之prometheus核心组件

(0)

相关推荐

  • 如何免费快速搭建一个仓库管理系统?

    库房进货.提货.备货混乱,想纸笔记录,发现工作量太大:改用Excel,发现数据难同步:想自己搭建系统,不会编程.更没有--作为没有的新手,到底该如何快速搭建一个实用的仓库管理系统? 操作方法 01 在 ...

  • 简单介绍搭建一个低成本的虚拟演播室

    随着自媒体的兴起和直播行业的火热,各个机构以及公司对自己录制视频节目用来分享有了很大的需求,今天在此写一篇小文简单的说说中小型机构或电视台如何搭建自己的演播室. 操作方法 01 虚拟演播室的原理 所谓 ...

  • 一个简单网站的开发流程

    做网站难,是因为你大脑没有一个清晰的流程.其实做网站一点也不难,只要你弄明白了一个网站的开发流程,你就会明白,原来做一个网站是如此的简单. 操作方法 01 一.  进行需求分析 知道分析什么,如何进行 ...

  • 如何用微信公众号搭建一个外卖平台

    微信做外卖平台现在是种趋势,那么今天小编就简单的给大家说一下怎么用微信公众号搭建一个外卖平台. 操作方法 01 注册微信公众号和三餐美食账号并登录.(这步就不多说最简单的大家都会) 02 在三餐美食里 ...

  • 怎么快速搭建一个免费的仓库管理系统?

    现代的仓库作业已十分复杂化多样化,仅靠手工录入,不但费时费力,而且容易出错,所以仓库管理系统在企业的整个供应链中起着至关重要的作用,如果不能保证正确的进货和库存控制及发货,将会导致管理费用的增加,服务 ...

  • 如何搭建一个个人的博客?

    个人博客相当于自己的一个小网站,它和搭建一个个人网站差不多.下面我就说一下个人博客的搭建流程. 操作方法 01 第一步:注册域名 首先你需要注册一个域名,建议直接去阿里云买一个就好了,一般域名尽量要短 ...

  • win10系统电脑中怎么搭建一个NTP时间服务器

    当我们在使用win10系统电脑的时候,如果想要在电脑中搭建一个NTP时间服务器的话,应如何操作呢?接下来就由小编来告诉大家.具体如下:1. 第一步,打开电脑后,使用快捷键win+r,打开运行窗口,然后 ...

  • 如何建立一个电商网站?如何建立电子商务网站?

    很多朋友都会问这个问题,今天小编就在这里给大家统一的回答下,希望能对大家有所帮助,当今互联网行业蓬勃发展,其影响力已经渗透到我们的工作学习和生活中来.同时越来越多的企业开始建立自己的网站,加入到了网络 ...

  • 怎么建立一个自己的网站

    现在很多人想给自己留下一些记忆,或者是想让更多人了解自己,了解自己的知识想建立一个属于介绍自己的网站,那么怎么才能建立一个自己的网站呢 操作方法 01 首先第一步如果想建立一个定制私人网站就要架构好自 ...

  • 创建一个简单的springboot项目

    最近学习公司在做项目迁移和拆分,把之前的EJB组播,改成springcloud微服务架构,然后就开始学习springcloud,而springboot又是springcloud的基础,所以学习spri ...