下载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文件,然后添加下面的代码:

<?php
    phpinfo();

?>

比如个人访问页面出现下面的内容

把这个页面的内容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是我见过最恶心的配置之一。


Xander
198 声望51 粉丝