﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-socketref,再见！高德-随笔分类-PHP</title><link>http://www.cppblog.com/socketref/category/21203.html</link><description>https://github.com/adoggie</description><language>zh-cn</language><lastBuildDate>Thu, 24 Mar 2016 16:33:29 GMT</lastBuildDate><pubDate>Thu, 24 Mar 2016 16:33:29 GMT</pubDate><ttl>60</ttl><item><title>微信开发环境的配置部署（PHP)</title><link>http://www.cppblog.com/socketref/archive/2016/03/24/213105.html</link><dc:creator>放屁阿狗 </dc:creator><author>放屁阿狗 </author><pubDate>Thu, 24 Mar 2016 06:55:00 GMT</pubDate><guid>http://www.cppblog.com/socketref/archive/2016/03/24/213105.html</guid><wfw:comment>http://www.cppblog.com/socketref/comments/213105.html</wfw:comment><comments>http://www.cppblog.com/socketref/archive/2016/03/24/213105.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/socketref/comments/commentRss/213105.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/socketref/services/trackbacks/213105.html</trackback:ping><description><![CDATA[近日获得一份微信营销系统的代码，看其功能比较丰富，便开始窥其代码的实现。为了将整个业务系统跑起来，还真的花了不少时间琢磨，幸好不负我的几十年功力，终于将运营环境和开发环境搭建成功，并将系统的授权代码全部剔除（软件厂商控制使用授权）。<br />准备条件：&nbsp;<br />1. 互联网服务器（必须开启80，443端口）<br />2. 申请域名，且绑定到服务器<br />3. 微信公众号申请，并通过微信认证（300人民币）<br />先上系统部署图 ：&nbsp;<br /><img src="http://www.cppblog.com/images/cppblog_com/socketref/微信php开发环境配置.jpg" border="0" alt="" /><br />几个部件需要介绍一下：&nbsp;<br />1. xampp ： &nbsp;开发php的套件，包含了apache，php，mysql，用起来很简单，不过我是部署在linux和mac 上，要留意的是文件目录访问权限的问题，mac下 所有的服务进程跑在root用户下；<br />2. phpstrom： 开发php的ide，出自jetbrains（我个人理解是目前开发工具最牛逼的公司）。 管理数据库推荐 DataGrip 软件。&nbsp;<br />3. xdebug ： 这个东西是php与phpstrom的调试接口 ，apche接收到http请求，转给php解释器，php解释器再phpStorm进行调试互动（建立xdebug的9000端口的tcp连接），开发者可以在phpStorm里面随意下断点。 注意： 在php.ini中需配置 ide-key:scott , 我是在nginx的转发头里面添加了 XDEBUG_SESSION=scott,令所有经过 nginx 服务器的http请求都被转到phpStorm中，否则无法实现代码断点。&nbsp;<br />4. wxDebuger： 这是微信提供的本地微信页面调试工具，开发这可以利用winre来调试手机上的页面，也可以脱离手机，直接调试微信页面（要调试微信的wxjssdk必须使用wxDebuger）。&nbsp;<br />5. nginx ： 在公网服务器部署nginx作为http服务器，接收各种用户请求，并将其转发到xampp。&nbsp;<br />6. vpn : &nbsp;这个是关键，为了实现本地开发调试的目的，我在公网服务器上部署了openvpn，并在mac开发机上部署了xampp，phpstorm等，并安装vpn客户端 Tunnelblick，其自动拨号到公网服务器，获得地址10.8.0.6，nginx将http请求转发到了我本地的开发机器上，这样我可以很方便的进行远程和本地调试了。&nbsp;<br /><br /><br />主要的功能描述：&nbsp;<br />1. 手机、浏览器、调试器 发起的http请求到达公网服务器，nginx通过vpn转发到本地开发机，开发者在phpstorm中断点调试代码，并将处理结果按原路返回。&nbsp;<br />2. 微信服务器的主要作用是获取 粉丝信息、oauth认证回调、服务器鉴权等功能 ， HTTP(302)是 oauth的灵魂 。&nbsp;<br />3. 这种配置架构很灵活的可以将开发模式切换到部署模式，只需要将xampp部署到公网服务器，并在 nginx的反向代理指到本地xampp服务即可。&nbsp;<br /><br /><br /><br />附录 &nbsp;nginx.conf&nbsp;<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->&nbsp;server&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;80;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server_name&nbsp;&nbsp;wx.xxxx.com&nbsp;www.xxxx.com;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;X-real-ip&nbsp;$remote_addr;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;X-Forwarded-For&nbsp;$proxy_add_x_forwarded_for;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location&nbsp;/&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_pass&nbsp;http:<span style="color: #008000; ">//</span><span style="color: #008000; ">10.8.0.6:8081;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;Cookie&nbsp;"$http_cookie;XDEBUG_SESSION=scott";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;Host&nbsp;$host;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;X-Forwarded-For&nbsp;$proxy_add_x_forwarded_for;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;X-real-ip&nbsp;$remote_addr;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}</div><br /><br /><br /><img src ="http://www.cppblog.com/socketref/aggbug/213105.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/socketref/" target="_blank">放屁阿狗 </a> 2016-03-24 14:55 <a href="http://www.cppblog.com/socketref/archive/2016/03/24/213105.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>