关于weiphp的文档一是内容真不多,二是写的也不详细。
说说我的需求吧,想把我们站点的域名挂一个location解析到weiphp的机器上,因为站点是https的,所以调试更麻烦了些。
遇到的问题是,
1. 做的微信互动应用需要获取微信用户信息授权,微信公众号的域名已被配置,不能修改为搭建的weiphp站点的域名。
2. 我们的配置域名是https的,需要修改weiphp里的源码适应https访问,加载资源。
调整:
1、nginx配置。
weiphp为独立php环境,机器ip为:10.10.10.1,机器本上已有nginx+fast-cgi在运行,需要大前端nginx配置location代理到这台机器上。
upstream weiphp{ server 10.10.10.1:80; } location /weiphp { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://weiphp/; } location /Public { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://weiphp/Public; } location /Uploads { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://weiphp/Uploads; } location /Addons { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://weiphp/Addons; } location ~ /.php$ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://weiphp; }
2. 源码调整。
为啥?因为微信站点的域名是https的,必须要weiphp适应为https。但是thinkphp的机制是默认适应http协议。
a, Application/Home/View/default/Public/mobile_head.html
修改微信饮用js地址 http://res.wx.qq.com/open/js/jweixin-1.0.0.js 为 https://res.wx.qq.com/open/js/jweixin-1.0.0.js。
修改zepto引用地址 http://yaotv.qq.com/shake_tv/include/js/lib/zepto.1.1.4.min.js 为 https://yaotv.qq.com/shake_tv/include/js/lib/zepto.1.1.4.min.js。
b, ThinkPHP/ThinkPHP.php
先添加常量
//self define by pautcher
define ( ' DX_DOMAIN ',' h5.daxia520.com ' ) ;
将原来SITE_URL的定义取消,修改为如下
//define ( 'SITE_URL', 'http://' . SITE_DOMAIN . __ROOT__ );
if ( stristr ( SITE_DOMAIN, DX_DOMAIN ) != FALSE ) {
define ( ' SITE_URL ', ' https:// ' . SITE_DOMAIN . __ROOT__ ) ;
}
if ( ! defined ( ' SITE_URL ' )) {
define ( ' SITE_URL ', ' http:// ' . SITE_DOMAIN . __ROOT__ ) ;
}
c.