返回顶部
首页 > 资讯 > CMS >phpstorm+wamp在线调试wordpress
  • 549
分享到

phpstorm+wamp在线调试wordpress

phpstormphpapache 2023-09-13 11:09:00 549人浏览 泡泡鱼
摘要

简介 本文源自公司内部使用Wordpress搭建了一套官网,经常有定制化的需求,有些插件实现不了,需要通过PHPstORM调试的方式熟悉wordpress,同时修改php代码,本地测试环境window

简介

本文源自公司内部使用Wordpress搭建了一套官网,经常有定制化的需求,有些插件实现不了,需要通过PHPstORM调试的方式熟悉wordpress,同时修改php代码,本地测试环境window,适合用wamp作为php运行环境,同时带apache+Mysql

  • WAMP:是windows、Apache、mysql和PHP的缩写,它是一个软件堆栈,这意味着在操作系统(Windows)上安装Apache、Mysql和PHP,其他类似的组合组件:XAMPP,phpstudy,PHPnow 等。
  • phpstorm:PhpStorm 是 JetBrains 公司开发的一款商业的PHP集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。
  • wordpress:WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用,可以用不同主题定制为官网,商城,博客等。

wamp安装

下载地址:https://www.wampserver.com/#download-wrapper,也可以去sourceforge下载
Https://sourceforge.net/projects/wampserver/files/WampServer%203/
一步步默认安装即可,我的路径安装d:/green/wamp,安装完成后工具栏多了一个图标
在这里插入图片描述
如果没有菜单栏点击启动即可
在这里插入图片描述
apache默认占用80端口
mysql占用3306端口。
mariadb占用3306端口。
可通过工具栏右键-》tools查看
在这里插入图片描述

phpstorm调试环境

下载phpstorm,商业版pj,自行百度
在这里插入图片描述

php开启调试

wamp默认已经集成了xdebug相关库。
在wamp对应的php.ini文件中设置开启调试,并制定调试信息链接的dbgp主机ip和端口。
首先访问php的首页,我这里是http://localhost
点击tools中的xdebug_info()
在这里插入图片描述
注意看下最下面php.ini位置的,不要自己瞎找,wamp一堆的php.ini,绝对很难找到
我的位置: D:\green\wamp\bin\apache\apache2.4.51\bin\php.ini
step debugger明显是没开启的。点击右侧的计算机表示进入docs,可以找到教程(之前看了网上的教程一堆的remote配置,结果不生效,版本问题,所以需要通过文档去看)
在这里插入图片描述
文档如下(说明设置参数xdebug.mode=debug即可)
在这里插入图片描述
打开对应的php.ini找到最下面的xdebug

[xdebug]zend_extension="d:/green/wamp/bin/php/php7.4.26/zend_ext/php_xdebug-3.1.1-7.4-vc15.dll";xdebug.mode allowed are : off develop coverage debug GCstats profile tracexdebug.mode =developxdebug.output_dir ="d:/green/wamp/tmp"xdebug.show_local_vars=0xdebug.log="d:/green/wamp/logs/xdebug.log"xdebug.log_level=7

发现他的值是:develop,改成debug,修改了重启下。
在这里插入图片描述
可以修改php.ini设置这个ip和端口,我这设置为localhost和9000,最终

[xdebug]zend_extension="d:/green/wamp/bin/php/php7.4.26/zend_ext/php_xdebug-3.1.1-7.4-vc15.dll";xdebug.mode allowed are : off develop coverage debug gcstats profile tracexdebug.mode =debugxdebug.output_dir ="d:/green/wamp/tmp"xdebug.show_local_vars=0xdebug.log="d:/green/wamp/logs/xdebug.log"xdebug.log_level=7xdebug.client_port="9000"xdebug.client_host="localhost"

诊断消息出现,就修改成功了。

[Step Debug] Time-out connecting to debugging client, waited: 200 ms. Tried: localhost:9000 (through xdebug.client_host/xdebug.client_port) :-(

idea配置

在idea中File-Open打开wamp的www目录,打开这个目录的好处是下面的项目,都可以在同一个目录下管理。
在这里插入图片描述
点击File-Settings-Languages & Frameworks ->php->debug 设置xdebug的端口
在这里插入图片描述
Servers新建一个server的配置(ip和端口设置成wamp中apche入口端口)在调试时需要用
在这里插入图片描述
添加一个调试配置
在这里插入图片描述
点击ok,点击调试,浏览器自动弹出地址:
http://localhost/wordpress?XDEBUG_SESSION_START=10392(这个id启动一次换一个)

注意如果你在postman中调用这个地址,需要idea断下来就必须带上XDEBUG_SESSION_START=10392这段参数,

如果你想调试其他项目,改个path带上这个参数即可,比如
http://localhost/helloworld/if.php?XDEBUG_SESSION_START=10392

在这里插入图片描述

如果出现问题,首先netstat -aon | grep 9000看下端口是否开启(注释idea启动调试才会有这个端口),然后就是查看http://localhost/?xdebuginfo的xdebug是否开启,同时Diagnostic Log是否有错误

php语法入门到精通

php语法参考:https://www.runoob.com/php/php-tutorial.html

变量

test";# ----------------->1.研究变量定义###############变量定义$i=100; //注意变量是$开头,结尾要有;定义在最外部的是全局变量var_dump($i,"
"); //打印变量的堆栈,类型,变量名,堆栈。$j=$i>100?"老年":"中年"; //三目表达式echo $j,"
";//注意php是弱类型,引用全局变量需要定义一个global变量,名称和全局变量一致function add($t1,$t2){ global $j,$s; //注意这里$s在外部没有定义,但是也相当于定义了一个全局变量,函数外部就能直接饮用 static $x=101; //注意这里定义了一个静态变量 $x,在外部引用是会报错的,但是他的值在函数结束后不会被删除,当函数被多次调用时他的值会透传到下一次调用中,保持状态 $s=100; $j=$t1+$t2; echo "--->",$GLOBALS["j"],"
";//全局变量原理就是定义在$GLOBALS变量中索引就是变量名,也可以赋值$GLOBALS["$j"]=$t1+$t2; return $GLOBALS["j"];}$x=100; //注意这里是定义了一个全局变量 $x 与add的局部变量$x不冲突,也互不影响echo "静态变量",$x,"
";echo add(10,2),"
";print("print函数占位符:{$s}
");//常量,常量是全局的 php中const和define的区别有:const是语言结构,define是函数;const可以在类中使用,define不可以;const不能在条件分支中使用,define可以。//常量不能使用$开头define("CHARSET","utf-8");const CHASET_GBK="gbk";echo "常量:",CHARSET,"
";echo "常量:",CHASET_GBK,"
";if(CHASET_GBK=="GBK"){}//字符串函数 ,参考:runoob.com/php/php-ref-string.html$str="i_j_s";echo "字符串长度:",strlen($str),"
";echo "切割字符串:";var_dump(explode("_",$str));echo "
";echo "合并数组为字符串:";var_dump(join("_",array("dd","ggg")));echo "
";echo "找字符串位置:",strpos($str,"_");echo "
"; //注意索引从0开始###############bool$isA=true;###############数组$cars=array("byd","bmw","bens");var_dump($cars);echo "
";echo "打印数组:",$cars[0] .$cars[1].$cars[2],"
"; //可以使用.连接字符串,+号尽量用于数字,不同类型不能使用连接符号,可以使用,隔开//数组函数,参考:https://www.runoob.com/php/php-ref-array.htmlecho "打印数组长度:",count($cars),"
";//循环打印for($i=0;$i";//定义map,和js类型索引可以是数组也可以是其他类型$map=array("name"=>"张三","age"=>12);echo "获取key对应值:",$map["name"],"
";foreach ($map as $key=>$value){ echo "循环获取key对应值:",$key,"=",$value,"
";}###############面向对象class Car{ var $color; //构造函数 function __construct($color = "green") { $this->color = $color; } function what_color() { return $this->color; }}$car=null;$car=new Car("yellow");var_dump($car);echo PHP_EOL,"
"; // 换行符:PHP_EOL是\n?>ggg

流程

if|switch

";if($date>=6 && $date<12){    echo "上午","
";}elseif($date>=12 && $date<18){ echo "下午","
";}//switch$favcolor="red";switch ($favcolor){ case "red": echo "你喜欢的颜色是红色!","
"; break; case "blue": echo "你喜欢的颜色是蓝色!","
"; break; case "green": echo "你喜欢的颜色是绿色!","
"; break; default: echo "你喜欢的颜色不是 红, 蓝, 或绿色!","
";}

循环

",$arr[$i]," ";}echo "
";foreach ($arr as $key=>$value){ echo "循环获取key对应值:",$key,"=",$value,"
";}$i=0;//while循环注意要先初始化变量 否则null无法进入循环while($i",$arr[$i]," "; $i++;}

引用

了解下include、include_once、require和require_once这4个函数:

  • include函数:会将指定的文件读入并且执行里面的程序;
  • require函数:会将目标文件的内容读入,并且把自己本身代换成这些读入的内容;
  • include_once 函数:在脚本执行期间包含并运行指定文件。此行为和 include 语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包含。如同此语句名字暗示的那样,只会包含一次;
  • require_once 函数:和 require 语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含

include在引入不存文件时产生一个警告且脚本还会继续执行,而require则会导致一个致命性错误且脚本停止执行。

include()与require()的功能相同,但在用法上却有一些不同,include()是有条件包含函数,而 require()则是无条件包含函数。

例如在下面的一个例子中,如果变量$somgthing为真,则将包含文件somefile:

if($something){    include("somefile");}

但不管$something取何值,下面的代码将把文件somefile包含进文件里:

if($something){    require("somefile");

常用库

";echo time(). "
";############自定义异常class CustomException extends Exception{ public function errorMessage() { // 错误信息 $errorMsg = '错误行号 '.$this->getLine().' in '.$this->getFile() .': '.$this->getMessage().''; return $errorMsg; }}try{ throw new CustomException();}catch (CustomException $e){ echo $e->errorMessage(),"
"; //注意.是连接字符串->才是调用}

超级变量(http)

";echo $_SERVER['SERVER_NAME'];echo "
";echo $_SERVER['HTTP_HOST'];echo "
";echo array_key_exists('HTTP_REFERER',$_SERVER)?$_SERVER['HTTP_REFERER']:"";echo "
";echo $_SERVER['HTTP_USER_AGENT'];echo "
";echo $_SERVER['SCRIPT_NAME'],$_SERVER["REQUEST_URI"];echo "
";################请求参数echo "获取参数:",array_key_exists("id",$_REQUEST)?$_REQUEST["id"]:"","
";echo "获取参数:",array_key_exists("id",$_GET)?$_GET["id"]:"","
";echo "获取参数:",array_key_exists("name",$_POST)?$_POST["name"]:"","
";foreach (getallheaders() as $name => $value) { echo "获取请求头:$name: $value
";}//解析JSON数据,是raw方式body添加个json$post = @file_get_contents('php://input');if($post!="") { $post = json_decode($post, true); //解析成数组 var_export($post);}//上传文件,postman 使用form-data上传一个名字为file的文件//文件相关的参数参考:https://www.runoob.com/php/php-ref-filesystem.htmlif(array_key_exists("file",$_FILES)){ echo "上传文件名: " . $_FILES["file"]["name"] . "
"; echo "文件类型: " . $_FILES["file"]["type"] . "
"; echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB
"; echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "
"; // 如果没有 upload 目录,你需要创建它,upload 目录权限为 777 $uploadDir="d:/upload/"; //创建上传目录 if(!file_exists($uploadDir)){ mkdir($uploadDir); } if (file_exists( $uploadDir. $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " 文件已经存在。 "; } else { // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下 move_uploaded_file($_FILES["file"]["tmp_name"], $uploadDir . $_FILES["file"]["name"]); echo "文件存储在: " . $uploadDir . $_FILES["file"]["name"]; }}

namespace

新建namespace.php

";    echo a\b\print1(),"
"; echo a\c\print1(),"
"; echo var_dump(new a\c\A()),"
"; echo var_dump(new a\b\A()),"
"; echo var_dump(new a\d\A("zs")),"
"; a\d\A::staticmethod();}

新建namespacelib.php

$name=$name;        }        static function staticmethod() {        }    }}

mysql数据库

";$sql="SELECT * FROM ENGINES";$result=$conn->query($sql);if($result->num_rows>0){    while($row=$result->fetch_assoc()){        printf("%s (%s)\n
", $row["ENGINE"], $row["COMMENT"]); }}mysqli_select_db($conn,"jieztech"); //切换到另外一个数据库$result=$conn->query("drop table if exists a;");//删除表if(! $result ){ die('数据表创建失败: ' . mysqli_error($conn));}$result=$conn->query("create table a(id int);"); //创建表if($conn->query("insert into a(id) values(1)")){ //插入数据 echo "插入数据成功
";}//mysqli_close($conn);$conn->close();?>

wordpress安装

wordpress包安装

创建数据库

首先需要在mysql中创建一个库,打开首页http://localhost点击php http://localhost/phpmyadmin/
选择mysql,输入root,密码空进入。
在这里插入图片描述
输入你想要的名字,选择字符集utf8_bin
在这里插入图片描述

wordpress安装

下载并提取WordPress,将文件解压到www目录下,目录结构:
在这里插入图片描述
运行http://localhost/wordpress 一步步安装,选择简体中文(下面几张图copy其他站点的,安装忘记截图了)
在这里插入图片描述
,选择你的数据库名称,账号和密码,
在这里插入图片描述
  在接下来的步骤中,输入您的站点标题,用户名,密码和其余所需数据。您应该取消选中“建议搜索引擎不索引本站点”按钮(因为我们不希望搜索引擎在开发阶段或实验阶段将我们的网站编入索引),然后单击“安装WordPress”
  在这里插入图片描述
访问http://localhost/wordpress/wp-admin 输入你设置的用户名和密码登录

duplicator备份还原

比如你的站点在线上,如果希望备份下来安装到你的wamp中,可以在线上的wordpress安装duplicator插件。
在这里插入图片描述
将下载安装php和备份包两个文件拷贝到www/wordpress目录下,然后访问
http://localhost/wordpress/installer.php,还原完成即可访问。

来源地址:https://blog.csdn.net/liaomin416100569/article/details/128100034

--结束END--

本文标题: phpstorm+wamp在线调试wordpress

本文链接: https://lsjlt.com/news/405746.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • phpstorm+wamp在线调试wordpress
    简介 本文源自公司内部使用wordpress搭建了一套官网,经常有定制化的需求,有些插件实现不了,需要通过phpstorm调试的方式熟悉wordpress,同时修改php代码,本地测试环境window...
    99+
    2023-09-13
    phpstorm php apache
  • PhpStorm 调试 (Xdebug版)
    一、版本说明         PhpStorm: PhpStorm 2022.3.1         php版本:8.2.6         Xdebug:php_xdebug-3.2.1-8.2-vs16-x86_64.dll 二、配置X...
    99+
    2023-09-03
    phpstorm php chrome devtools 前端
  • phpstorm+phpstudy调试thinkphp
    打开phpstudy–>找到软件管理–>找到对应的php版本–>设置按钮–>扩展组件–> 打开XDebug调试组件,下面Profiler输出、Trace输出都勾选上。 打开phpstudy–>设置–>...
    99+
    2023-10-01
    phpstorm php apache
  • phpstorm 配置 Xdebug 调试
    对有有经验的程序员,使用 echo()、print_r ()、print_f ()、var_dump () 等函数足以调试 php 代码,如果你不喜欢这样的话,xdebug 就是一个非常好的 php ...
    99+
    2023-09-10
    phpstorm php linux
  • phpstorm+xdebug远程调试
    远端:centos7 phpstorm在windows上。 centos7上同上一篇文章, [xdebug] zend_extension="xdebug.so" xdebug.remote_enable = 1 xdebug.remote...
    99+
    2023-09-11
    phpstorm php ide
  • phpstorm+xdebug/php项目调试
    前提:项目使用xampp集成 一、下载xdebug,当到xampp/php/exp目录下  二、配置php.ini [Xdebug]zend_extension="D:/xampp/php/ext/php_xdebug.dll"xdeb...
    99+
    2023-09-01
    php phpstorm 开发语言
  • PhpStorm+Xdebug+PHPStudy配置并调试
    首先,火狐浏览器搜索插件并安装。 配置IDE key 打开phpinfo(),将内容复制到Xdebug: Support — Tailored Installation Instructions,会推荐你适合版本的xdebug,当然你也...
    99+
    2023-09-04
    phpstorm ide 网络安全 web安全 安全
  • 怎么使用phpstorm调试thinkphp6
    这篇文章主要介绍“怎么使用phpstorm调试thinkphp6”,在日常操作中,相信很多人在怎么使用phpstorm调试thinkphp6问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用phpstor...
    99+
    2023-07-05
  • php 断点调试 PHPStorm Xdebug helper
    安装与使用php的xdebug扩展 浏览器访问只包含...
    99+
    2023-10-12
    php phpstorm 开发语言
  • 在PhpStorm中hyperf调试的方法步骤是什么
    这篇文章主要讲解了“在PhpStorm中hyperf调试的方法步骤是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在PhpStorm中hyperf调试的方法步骤是什么”吧! 前言: 大家...
    99+
    2023-09-05
    php 开发语言
  • phpstorm动态调试环境部署过程
    目录xdebug调试调试环境部署0 配置php解析器1 下载对应版本的xdebug2 修改php.ini文件里的xdebug配置项3 配置phpstorm4 第一个调试补充--xde...
    99+
    2024-04-02
  • Mac下Postman+phpStorm配合xdebug进行调试
      Xdebug是PHP的扩展,用于协助调试和开发。它包含一个用于IDE 的单步调试器 ; 它升级了PHP的var_dump()函数; 它为通知,警告,错误和例外添加了堆栈跟踪 ; 它具有记录每个函数调用和磁盘变量赋值的功能 ; 它包含一个...
    99+
    2023-09-10
    macos postman phpstorm php 测试工具
  • windows + phpstorm + 虚拟机 + yasd 实现 hyperf 调试
    在 Swoole 的官方文档中就明确指出了 Swoole 和 Xdebug 不兼容,虽然Xdebug 2.7 ,可用于 Swoole 环境进行断点、现在 Swoole 已经有了yasd,可以改用,毕竟 Swoole 和 Xdebug 存在兼...
    99+
    2023-09-02
    phpstorm ide php hyperf 调试
  • phpstorm断点调试方法图文详解
    环境:win10+phpstorm2022+phpstudy8+lnmp 1、phpinfo();  查看是否安装xdebug,没有走以下流程 2、phpstudy中切换不...
    99+
    2023-05-17
    phpstorm 断点 调试
  • Wordpress怎么打开调试模式
    这篇文章主要介绍“Wordpress怎么打开调试模式”,在日常操作中,相信很多人在Wordpress怎么打开调试模式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Wordpress怎么打开调试模式”的疑惑有所...
    99+
    2023-06-04
  • adb无线调试
    adb无线调试 前提条件:确保调试的设备和电脑已连接到同一网络 连接命令:adb connect命令 adb connect命令用来通过ip和端口的方式连接到手机设备。在安卓手机中,可以通过"开发者选项–调试–无线调式"功能项开启adb 通...
    99+
    2023-08-17
    adb android
  • Haskell在线调试工具怎么使用
    Haskell在线调试工具可以通过以下步骤使用:1. 打开一个Haskell在线调试工具的网页,比如"Haskell在线调试器"(h...
    99+
    2023-09-26
    Haskell
  • 【代码审计-PHP】phpStudy(新版) + PhpStorm + XDebug动态调试
       前言: 介绍:  博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfoc...
    99+
    2023-09-04
    php phpstorm
  • android studio无线调试
    1,版本:Android Studio Electric Eel | 2022.1.1 手机系统需为android11或以上 2,在android studio的device manager那里选择 pair devices using w...
    99+
    2023-08-17
    android studio android
  • Arthas在线java进程诊断工具在线调试神器详解
    `Arthas` 是 Alibaba 开源的Java诊断工具,深受开发者喜爱。 当你遇到以下类似问题而束手无策时,`Arthas`可以帮助你解决: 1. 这个类从哪个 jar 包加载...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作