沉铝汤的破站

IS LIFE ALWAYS THIS HARD, OR IS IT JUST WHEN YOU'RE A KID

记一次基于phpstudy+vscode/phpstorm+composer搭建Laravel框架环境

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

打开网站进行确认

如果搭建成功,打开网站后将是如下界面:

image-20210513223059192

0x02 开发/调试环境配置


安装xdebug

这里我偷懒,直接用phpstudy下载的,只要在特定版本进行拓展勾选即可(点击网站的管理按钮,然后下拉列表中有一个PHP拓展选项,里面有xdebug)

2

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应该就有调试栏出现了,但是还不能点击单步调试,是因为你没刷新网站。

刷新网站进行调试

如下图所示,已经可以进行调试了

3

phpstorm配置

随便在插件商店(在设置里),下载了几个高评分的插件,因为不知道会不会有影响,这里就展示一下吧:
image-20210513231520384

然后项目的php解释器路径,记得自己配置好,在设置的PHP相关设置中

要注意的点

其实经过上面的配置,好像也不需要额外设置什么了,但是我当时还是在phpstorm里浪费挺多时间的,原因就是我设置断点后,点击的是工具栏的浏览器打开,如图:
image-20210513231812087

然后我再点上面的小电话,进行监听的时候,给我报了如下错误:

image-20210513231903364

一开始我以为这是我phpstorm哪里没配置好(实际上也可能是),但是我最后误打误撞的又可以调试了:我用phpstudy打开网站(我设置的网站url为laravel.com),此时phpstorm居然可以开始调试了。所以我怀疑这里可能是我phpstorm的xdebug中的url设置什么的问题,不过也懒得改了,毕竟我是懒狗,又不是不能用…

image-20210513232350434

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博客

image-20210519164032302