• [Xdebug] PHP远程自动部署调试


      在项目开发过程中,有些时候如果能进行线上部署DEBUG测试支付,微信接口等等是很方便的(其实还是不要这样用最好,能在本地写好测试再部署是最好的)。这个调试还有另外一个作用,很奇葩的作用:把PHP环境装在云服务器上,各种版本的PHP(12345.....)、Mysql、apache.....本地只装一个PHPstrom,然后用服务器的环境,本地的运行速度就快很多了(其实是B格很高),还有就是即使你换了电脑,只要装了PHPstrom就可以开始PHP开发了,无论是Mac电脑还是 Windows电脑,好了,就说到这里吧,开始贴代码。

      说下我的环境和需要准备的工具:
          1.阿里云服务器  支持一键创建站点,切换PHP环境,绑定域名 的集成环境 特别方便
          2.XDebug 安装包
          3.PHPStrom 
          4.一台电脑

    下载资源地址:http://market.aliyun.com/products/53398003/jxsc000079.html

           http://xdebug.org/download.php  我项目需要的PHP环境是5.3 所以我下载的是 2.2.1版本

    先从PHPstrom 配置开始吧,我都截图,然后标箭头(第三遍了,博客园这个编辑器,这个用的是百度编辑器)

    配置自动上传

    然后

    然后

    现在你的项目就会自动上传到服务器了

     开始访问你的网站吧 

    配置Xdebg

    然后

    配置Linux服务器

    #进入local目录
    cd /usr/local/
    #创建xdebug文件夹
    mkdir xdebug
    cd xdebug
    wget 你PHP需要的版本地址
    tart -zxvf xdebug2.2.1.tar
    cd xdebug2.2.1
    #你确定你安装了,如果是集成环境,先转移到你的 php/bin/ 下后执行该命令  我的服务器装了 一定要注意
    phpize 
    ./configure
    make
    make test
    make install
    #OK了
    #配置php.ini
    #转移到PHP根目录
    vim php.ini
    #追加如下内容
    [xdebug]
    zend_extension ="/usr/local/xdebug/xdebug-2.1.0/modules/xdebug.so"
    xdebug.profiler_output_dir = "/usr/local/xdebug/"
    xdebug.remote_enable=1
    xdebug.remote_host=localhost
    xdebug.remote_port=9000
    xdebug.remote_autostart=1
    xdebug.remote_handler="dbgp"
    xdebug.idekey=phpStorm
    #这里要注意一个问题,就是要查找zend_extension 注释掉原来的这个东西,我等下贴个图,然后重启的PHP
    #地址改成你们自己的
    kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
    #重启apache
    service httpd restart

    重启以后能看到这个就成功了
     

    下面开始调试

    1.先添加一个断点
    2.开启小电话


    3.开启监听端口

    这是2 3 的顺序一定不能变
    在本地执行命令(windows的可以用cygwin来执行Linux命令)

      ssh -R 9000:localhost:9000 root@115.28.204.120

     然后

    这个时候链接后面就会多个 参数,这个时候你就可以开始调试了
    或者你在请求链接后面加上你的http://xxx.com/XDEBUG_SESSION=PHPSTORM 后面的参数就是刚刚设置的Key。就到这里吧,第一次写这么长的文章,写的不好,希望大家多给意见,我的邮箱是:yuzhen1912@163.com  有问题发邮件咱们可以交流。
    纯手打,转载请注明住处:http://www.cnblogs.com/flyingMonkey/p/5090186.html 谢谢。

  • 相关阅读:
    MySQL令人咋舌的隐式转换
    阿里规范中为什么要求表必须有主键id
    理解Python闭包,这应该是最好的例子
    MySQL 高级(进阶) SQL 语句精讲(二)
    什么是可串行化MVCC
    Oracle11g:数据库恢复总结
    以友盟+U-Push为例,深度解读消息推送的筛选架构解决方案应用与实践
    一万字详解 Redis Cluster Gossip 协议
    [JS]给String对象添加方法,使传入的字符串字符之间以空格分开输出
    [JS]计算字符串中出现最多的字符和其出现次数
  • 原文地址:https://www.cnblogs.com/flyingMonkey/p/5090186.html
Copyright © 2020-2023  润新知