0x00 前言
本篇文章包含以下元素:
- 随缘的环境配置过程
- 虽然不知道为什么,但是又不是不能用
- 简单记录(隔天的回忆,如果有问题,可私)
0x01 环境的配置
PHP版本
首先用phpstudy下载一个尽可能高的版本,菜狗选的是php7.3.4
下载Composer
官网: Composer (getcomposer.org) ,Composer是一个PHP依赖包管理工具,使用它可以轻松的拉取到PHP应用所需的依赖。
安装的时候,PHP解释器的路径,就选择phpstudy中的php所在位置,比如菜狗的是D:\Phpstudy\phpstudy_pro\Extensions\php\php7.3.4nts
,自己参照着找找吧。
下载Laravel源代码
到GitHub上下载Tags · laravel/laravel (github.com)源码,这里我下载的是5.7.0版本
搭建网站
把下载的Laravel源码放在phpstudy的WWW目录下,然后用phpstudy来搭建网站,但是要注意要把根目录选到Laravel中的public文件夹,这里才是网站入口。
下载依赖
上面创建了一个网站,但是依赖还不完善,在Laravel根目录打开控制台,输入composer install
,将会自动下载依赖,如果下载的慢,可以换源(cmd下无输出):
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
此时可以看到自动新建了之前不存在的vendor文件夹。
生成KEY
将根目录下的.env.example
复制一份,或者直接把他改名为.env
,然后再在根目录下打开控制台,输入:
php artisan key:generate
打开网站进行确认
如果搭建成功,打开网站后将是如下界面:
0x02 开发/调试环境配置
安装xdebug
这里我偷懒,直接用phpstudy下载的,只要在特定版本进行拓展勾选即可(点击网站的管理按钮,然后下拉列表中有一个PHP拓展选项,里面有xdebug)
xdebug配置
打开你之前所用的php版本的php.ini(可以在phpstudy的“设置->配置文件”快速打开),打开后,找到xdebug的配置位置(一般在末尾),修改/添加如下配置:
;xdebug.remote_enable=Off
xdebug.remote_enable = On
xdebug.remote_autostart = On
vscode配置
首先打开首选项设置,搜索PHP,然后点击在setting.json中设置,填入自己的php解释器路径,比如菜狗的如下所示:
"php.validate.executablePath": "D:\\Phpstudy\\phpstudy_pro\\Extensions\\php\\php7.3.4nts\\php.exe"
配置好后,按F5选择PHP,或者直接点击左侧栏的小虫子图案,此时会自动生成launch.json,如果没有,你也可以自己在.vscode文件夹中新建一个:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9000
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
此时设置断点后,再按F5应该就有调试栏出现了,但是还不能点击单步调试,是因为你没刷新网站。
刷新网站进行调试
如下图所示,已经可以进行调试了
phpstorm配置
随便在插件商店(在设置里),下载了几个高评分的插件,因为不知道会不会有影响,这里就展示一下吧:
然后项目的php解释器路径,记得自己配置好,在设置的PHP相关设置中
要注意的点
其实经过上面的配置,好像也不需要额外设置什么了,但是我当时还是在phpstorm里浪费挺多时间的,原因就是我设置断点后,点击的是工具栏的浏览器打开,如图:
然后我再点上面的小电话,进行监听的时候,给我报了如下错误:
一开始我以为这是我phpstorm哪里没配置好(实际上也可能是),但是我最后误打误撞的又可以调试了:我用phpstudy打开网站(我设置的网站url为laravel.com),此时phpstorm居然可以开始调试了。所以我怀疑这里可能是我phpstorm的xdebug中的url设置什么的问题,不过也懒得改了,毕竟我是懒狗,又不是不能用…
0x03 配置伪静态URL
伪静态
静态网站URL一般为a/xxx.html
,而一个动态URL则形如a/xxx.php?id=xxx
,但是动态URL因为有过多的参数,可能会影响到网站的SEO,所以我们可以设置伪静态;伪静态其实就是动态的一种,只是表现形式为静态。一个伪静态看上去就像这样/index
,你也可以自己随便写个什么后缀。
Laravel路由
在routes文件夹下的web.php中,我们可以添加路由
Route::get("/poc", "\App\Http\Controllers\RceTest@index");
第二个参数为控制器,这样当访问/poc
时,就会调用控制器中的index
函数
Apache配置
上面虽然绑定了一个路由,但是还需要再Apache中开启,phpstudy中的操作,可以看文档:Apache伪静态的配置 - phpStudy V8 使用手册 (xp.cn);我成功使用的配置,是这篇文章中的:phpstudy+laravel的伪静态设置_五层楼的博客-CSDN博客
0x04 防止调试自动断开
后续在调试过程中,发现在调试的过程中,调着调着就自动断开了,然后网页显示500,猜测这应该是网站配置原因,在网上搜索相关关键词,找到了一个解决办法xdebug断掉调试经常无故断开_迪迦 • 奥特曼-CSDN博客