作者:E4b9a6, 创建:2020-04-07, 字数:6207, 已阅:144, 最后更新:2020-04-07
在Windows下调试PHP一直使用WAMP
和WNMP
套件,本文记录一次实践手动在Windows下安装PHP
开发环境的过程
这次开发的项目是基于Nginx
+Yii
的PHP项目,Nginx是需要安装Nchan插件的,在Windows下Nginx编译与插件安装少嫌麻烦,好在微软推出了WSL/WSL2
这次在Windows下借助WSL+Xdebug来完成开发环境的安装,实现的效果是Visual Studio Code
借助Xdebug
和WSL
开发Yii
项目
Visual Studio Code 以下简称 VSCode
,方便描述
Nchan是一个基于Nginx的插件,用于实现高性能、可扩展的实时消息传递和流媒体功能,它提供了多种功能,包括发布-订阅消息传递、长轮询、HTTP流、WebSocket等,使得构建实时应用程序和实时通信变得更加简单和高效 WSL(Windows Subsystem for Linux)是Windows操作系统中的一个功能,它允许用户在Windows系统上运行Linux环境和应用程序,WSL提供了一个兼容层,使得Linux二进制文件能够在Windows上运行,而无需虚拟机或双启动系统 系统环境
大致步骤
要开启WSL(Windows Subsystem for Linux),请按照以下步骤进行操作:
Ubuntu
的子系统在成功进入子系统Ubuntu
后,开始安装Nginx,Nginx官方提供deb包直接安装
第一个是Nginx,第二个是nchan包,下载后直接安装
sudo dpkg -i nginx-common.ubuntu.deb
sudo dpkg -i nginx-extras.ubuntu.deb
编辑/etc/nginx/conf.d/dev.conf
,内容如下
server{
charset utf-8;
server_name 127.0.0.1;
root /var/www/nginx;
index index.php index.html;
access_log /var/log/nginx/dev-access.log ;
error_log /var/log/nginx/dev-error.log;
# 以下是本地开发Nchan插件所需配置,无需理会
location = /sub {
nchan_subscriber;
nchan_channel_id $arg_id;
nchan_message_timeout 5s;
}
location = /pub {
nchan_publisher;
nchan_channel_id $arg_id;
nchan_message_timeout 5s;
}
}
直接安装php7.2
# 安装源
sudo apt -y install software-properties-common python-software-properties
# 更新源
sudo add-apt-repository ppa:ondrej/php && sudo apt-get update
# 安装php7.2
sudo apt-get -y install php7.2
# 安装常用扩展(根据需要自选)
sudo apt-get -y install php7.2-fpm php7.2-mysql php7.2-curl php7.2-json php7.2-mbstring php7.2-xml php7.2-intl
# 可供参考的扩展包(根据需要自选)
sudo apt-get install php7.2-gd
sudo apt-get install php7.2-soap
sudo apt-get install php7.2-gmp
sudo apt-get install php7.2-odbc
sudo apt-get install php7.2-pspell
sudo apt-get install php7.2-bcmath
sudo apt-get install php7.2-enchant
sudo apt-get install php7.2-imap
sudo apt-get install php7.2-ldap
sudo apt-get install php7.2-opcache
sudo apt-get install php7.2-readline
sudo apt-get install php7.2-sqlite3
sudo apt-get install php7.2-xmlrpc
sudo apt-get install php7.2-bz2
sudo apt-get install php7.2-interbase
sudo apt-get install php7.2-pgsql
sudo apt-get install php7.2-recode
sudo apt-get install php7.2-sybase
sudo apt-get install php7.2-xsl
sudo apt-get install php7.2-cgi
sudo apt-get install php7.2-dba
sudo apt-get install php7.2-phpdbg
sudo apt-get install php7.2-snmp
sudo apt-get install php7.2-tidy
sudo apt-get install php7.2-zip
编辑/etc/php/7.2/fpm/pool.d/www.conf
文件,内容如下
...
; 用户修改为本机用户(注意:Nginx要和php-fpm的用户一致,同时也要对代码目录有读写权限)
user = chancel
group = chancel
...
; 本地的php的端口号(与Nginx通信的端口号)
listen = 127.0.0.1:9000
启动PHP7.2
sudo service php7.2-fpm start
配置XDebg,首先检查php版本
sudo apt-get install php-xdebug
编译/etc/php/7.2/php.ini
,加载Xdebug
; 这里根据Xdebug.so 进行填写
zend_extension=xdebug.so
[XDebug]
; 启用远程调试
xdebug.remote_enable = on
xdebug.remote_autostart = 1
; WSL与Windows共享网关,此处填127.0.0.1,如果是远程虚拟机则填写调试机器的IP
xdebug.remote_host = 127.0.0.1
; 远程XDebug配置的端口号,这个端口号在后面Windows10里配置,注意不要填9000,因为WSL里面的php-fpm已经使用这个端口了
xdebug.remote_port = 9001
xdebug.remote_connect_back = 1
xdebug.auto_trace = 1
xdebug.collect_includes = 1
xdebug.collect_params = 1
; 日志的位置
xdebug.remote_log = /tmp/xdebug.log
安装启动如下
sudo apt install mariadb-server
sudo service mysql start
sudo mysql_secure_installation
到这里,WSL里面的PHP/XDdebug/Nginx/MySQL基本就配置完了,其中的Nginx连接PHP部分需填写配置,这里给出一份参考
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
php7.2安装配置
cmd
中运行php -i
查看php是否安装成功Xdebug的安装参考官方:https://xdebug.org/docs/install#windows
下载安装VBC:下载安装VSCode
打开后在左侧寻找插件菜单,安装PHP Debug
插件
紧接着按下ctrl
+shift
+p
,输入user setting
,选择用户设置,搜索php,选择编辑json,添加下面的内容
{
"phpformatter.composer": true,
"php.validate.executablePath": "C:\\dev\\php7.2\\php.exe",
"php.suggest.basic": false,
"php.executablePath": "C:\\dev\\php7.2\\php.exe",
"php-cs-fixer.executablePath": "${extensionPath}\\php-cs-fixer.phar",
"[php]": {
"editor.defaultFormatter": "kokororin.vscode-phpfmt"
},
"php-cs-fixer.lastDownload": 1558509222941,
}
使用VSCode打开php源码,编辑.vscode/launch.json
,内容如下
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"stopOnEntry":false,
"localSourceRoot": "${workspaceRoot}",
"serverSourceRoot": "/home/wwwroot/weiphp.dev",
"port": 9001
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
按F5选择PHP环境调试,打好断点即可
参考资料