下载PHP
个人下载版本为 PHP 7.4 (7.4.33) 的版本。
把下载后的文件解包放到合适的位置,比如D:\Program Files\php-7.4.33-Win32-vc15-x86
。
配置环境变量
进入到系统变量
然后把php根目录的路径加入进入,以及ext的内容一并加入到Path环境变量。
cmd执行如下命令查看是否搭建环境成功:
C:\Users\adong>php -v
PHP 7.4.33 (cli) (built: Nov 2 2022 17:33:44) ( ZTS Visual C++ 2017 x86 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
Composer 安装
Composer是PHP开发必不可少的工具之一,可以有效的减少依赖包下载和管理的烦恼。
下载 Composer
安装前请务必确保已经正确安装了 PHP。打开命令行窗口并执行 php -v
查看是否正确输出版本号。
Composer 的官方网址如下:https://getcomposer.org/download/
Windows 平台上,我们只需要下载 Composer-Setup.exe 后,一步步安装即可。
需要注意的是你需要开启 openssl 配置,我们打开 php 目录下的 php.ini,将 extension=php_openssl.dll
前面的分号去掉就可以了。
安装成功后,我们可以通过命令窗口(cmd) 输入 composer --version
命令来查看是否安装成功:
C:\Users\adong>composer --version
Composer version 2.4.4 2022-10-27 14:39:29
也可以按照中文网的官方文档,直接按照步骤下载即可:
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
更改阿里云 Composer 镜像
因为国外网站访问比较慢,这里介绍安装Composer 镜像。
阿里云 Composer 镜像 【推荐 】
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
国内云 Composer 镜像
composer config -g repo.packagist composer https://packagist.phpcomposer.com
腾讯云 Composer 镜像
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/
华为云 Composer 镜像
composer config -g repo.packagist composer https://repo.huaweicloud.com/repository/php/
安畅云 Composer 镜像
composer config -g repo.packagist composer https://php.cnpkg.org/
开发常用配置
这里参考了phpStudy,开放一些常见的php.ini
配置组件,首先把下面这些扩展extendsion注释打开:
extension=bz2
extension=curl
extension=fileinfo
extension=gd2
extension=gettext
extension=mbstring
extension=mysqli
extension=openssl
extension=pdo_mysql
然后修改当前的扩展引入目录,这里修改为./ext
:
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
;extension_dir = "./"
; On windows:
extension_dir = "./ext"
这样处理之后,常用的组件就基本齐全的。
伪静态
在各种PHP开发使用的全包软件中如果想要去除掉,可以在nginx里面配置伪静态,伪静态配置如下:
location / {
if(!-e $request_filename){
rewrite ^/index.php(.*)$ /index.php?s=/$1 last;
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
如果上面的内容设置报错,可以设置为下面的内容:
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}
VsCode 配置
VsCode也算是用的比较多的开发PHP的工具,进行配置之后要比Jerbrian家的IDE要方便很多。
VsCode 的下载网址如下:
Visual Studio Code - Code Editing. Redefined
下载之后,我们直接下载相关的组件:
- Composer
- PHP 语言支持
- PHP Debug(关注,后续需要设置)
- PHP Extendsion Pack
- Php IntelliSense
接下来是痛苦折磨的Xdebug配置。
Xdebug配置
在VS Code中需要配置使用的PHP版本,对应的php.ini
需要开启debug配置才可以正常使用。因为个人使用的是PhpStudy,所以暂时先引入到PhpStudy当中。
{
"php.validate.executablePath": "D:/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe",
"php.debug.executablePath": "D:/phpstudy_pro/Extensions/php/php7.4.3nts/php.exe"
}
接着下载Xdebug,进入下面的官网:
Xdebug - Debugger and Profiler Tool for PHP
Windows使用下面的方式,这里选择第二个链接。
这里需要用户复制Phpinfo的信息,然后Xdebug页面会分析Phpinfo给出合适的版本。具体的操作如下,直接新建一个php文件,然后添加下面的代码:
比如个人访问页面出现下面的内容
把这个页面的内容ctrl + A
全选贴到页面即可:
之后点击分析按钮即可,如果提示找不到,则自行下载合适的版本放到ext目录。我们把插件下载到对应的Php安装目录的ext目录下面,这里建议重命名为php_xdebug.dll
,为什么作为一个插件进行扩展这个个人也说不清楚,网络上有部分网友尝试说放到ext扩展才能生效也就照做了。
这里说一个小插曲,个人在自己的电脑尝试发现xdebug给个人的选择是建议升级到7.4.40 版本并且提示不兼容???有点摸不着头脑,最后下载了 xdebug-3.04 的版本。
注意这是个dll文件,使用部分浏览器下载可能会误认为是病毒,需要自行允许放行
之后我们回到VSCode当中创建debu配置文件,创建配置如图:
个人创建之后Json内容如下(通常不需要自行配置):
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": [
9003,
9000
]
},
{
"name": "Launch built-in server and debug",
"type": "php",
"request": "launch",
"runtimeArgs": [
"-S",
"localhost:8000",
"-t",
"."
],
"port": 9003,
"serverReadyAction": {
"action": "openExternally"
}
},
{
"name": "Debug current script in console",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"externalConsole": false,
"port": 9003
}
]
}
这里注意端口9003,一定要和php.ini
的端口一致,否则是无法Debug的。接着是最大的踩坑点,也就是php.ini中debug的配置,因为Xdebug升级过程的配置细节在不断变动,所以这里仅仅能保证php .7.4.3 版本 + Xdebug 3.04 的版本可以用这套配置正常Debug。
具体可以参考下面的配置,再次强调 9003 这个端口的重要性:
[Xdebug]
zend_extension=D:/phpstudy_pro/Extensions/php/php7.4.3nts/ext/php_xdebug.dll
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.auto_trace=On
xdebug.trace_output_dir=D:/phpstudy_pro/Extensions/php_log/php7.4.3nts.xdebug.trace
xdebug.profiler_enable=On
xdebug.profiler_output_dir="D:/phpstudy_pro/Extensions/php_log/php7.4.3nts.xdebug.profiler"
; xdebug.remote_enable=yes
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.remote_host=localhost
xdebug.remote_port=9003
xdebug.remote_handler=dbgp
最后我们启动服务查看phpinfo的信息。
下面是在vsCode中编写代码,并且打上断点。
我们进入到VsCode 的 Run And Debug
查看相关debug 选项,第一个选项是需要配合服务器请求相关的PHP之后进入到DEBUG,第三个是在控制台进行DEBUG运行。
之后我们开启debug模式,最终正常进入断点。
问题讨论
最有可能碰到问题就是按照上面的配置之后debug开启页面访问没有进入debug,个人的建议是多尝试修改Php.ini
配置,注意配置路径是否正确,Vscode在Debug读取配置失败会在页面下面给出提示,是个不错的排查手段。
总结
没什么好总结的,PHP是我见过最恶心的配置之一。