部署微信小程序的后台服务器

域名要绑定IP,服务器也要反向指定域名,用宝塔软件-》网站-》设置-》域名管理-》添加或删除域名。否则小程序或收银系统会出错。

微信支付的回调函数地址用域名地址好些,用ip地址有时会出错!前面的表述可能是错的,实际上主要是要把函数放到另一个文件里!!!实际上,以上两种方法都是错的,应该在微信支付里设置回调的网络目录。微信支付》产品中心》开发配置》支付配置》支付授权目录。

其它服务器,比如三维的服务器,部署SSL证书。
用宝塔软件部署SSL证书:网站-》设置》SSL》其它证书》拷贝.key,.pem文件到相应位置保存即可。
证书一年到期要重新申请证书,要删除原订单。我是在手机号为账号的宝塔软件中删除的。
https://www.bt.cn/admin/safe
SSL管理》宝塔证书》删除

腾讯云获取免费SSL证书:我的证书》免费证书

小程序出错,小程序读取网站信息错误,可以直接用浏览器读取网站内容!!!
php出现同名函数会报错!!!

部署腾讯云轻量级服务器
首先购买了腾讯云轻量级服务器,登录后发现已经安装了windows server r12,准备安装PHP,总是不成功。这是先装iis,再装PHP。
然后又买了一台,但配置稍微高一点,重装系统windows server r19,前一台配置太差不能装高版本的Windows。发现还是很难搞定PHP。
最终决定用wamp软件安装,一次搞定web服务器,php,和mysql数据库。多次安装都不成功,有时候是图标没有变成绿色,只变成橙色,2/3个服务运行,有一个服务没运行。原因有以下几个:
1)低版本的Windows不能运行高版本的wamp。这个想法是错的。主要是没有安装全插件。
2)插件没安装,在安装wamp时会提醒,只要点击下载安装就可以了,不需要另外购买了。c++各种版本最好都下载安装。这样就不会有问题。
3)wamp2.5有一个putonline按键选项,不需要设置参数,直接连通外网。其他版本如果没有,则.右键—Wamp Settings—Mmenu item: Online / Offline.。还不行的话,tool =>add a listen port for apache,增加一个端口就可以了。我下载的3.2.6版本没有,从其他人那里下载了一个3.1.9版本的,可用。后来知道,还是3.2.6好用,他直接就是online状态。

                                           部署ssl证书

(1)apache用http://就可以正常访问到项目,https:访问的显示的是 It Works!页面
https://blog.csdn.net/peng_9/article/details/78841240?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164783172616780366548495%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164783172616780366548495&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-2-78841240.142v2pc_search_insert_es_download,143v4control&utm_term=It+works%21&spm=1018.2226.3001.4187
解决办法
将https下的路径与http下的路径一致.就需要修改apache中的配置文件:
文章作者的修改的文件夹路径是usr/local/apache56/conf/original/extra/httpd-ssl.conf 其中,usr/local/apache56 是我apache的安装路径,在其安装路径下.有conf/original/extra/http-ssl.conf 文件,修改其
DocumentRoot “/usr/local/apache56/htdocs”
//变更为:
DocumentRoot “/data/wwwroot/default”
//此地址为你服务器默认网页地址
//也就是修改125行

同时,修改usr/local/apache56/conf/original/httpd.conf文件的相关位置:大概是在235行左右: 

DocumentRoot “/data/wwwroot/default”
<Directory “/data/wwwroot/default”>

将217行左右的:
’<Directory />
AllowOverride none
Require all denied
</Directory>
// 256行左右的:
AllowOverride None
修改为:

AllowOverride All
Require all denied
Header set Access-Control-Allow-Origin *

// 256行左右的的:
AllowOverride All

(2)使用Apache,配置modSSL,使其支持https访问
https://blog.csdn.net/fjx1173865548/article/details/53728929?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2defaultCTRLISTRate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2defaultCTRLISTRate-1.pc_relevant_paycolumn_v3&utm_relevant_index=2

2.3生成server.key
执行命令:openssl genrsa 4096 > server.key,执行了这个命令,会在bin目录下生成server.key。也可以使用其他的算法生成密钥,4096是密钥的长度,其他值也可以,但必须是2的整数次方。

2.4生成证书请求文件server.csr
执行:openssl req -new -config …\conf\openssl.cnf -key server.key > server.csr,这个命令使用生成的密钥文件 server.key生成证书请求文件server.csr,之后,还要输入很多参数。

2.5生成服务器证书文件server.crt
执行:openssl req -x509 -days 365 -config …\conf\openssl.cnf -key server.key -in server.csr> server.crt,这个命令使用前面两步生成的密钥和证书来生成证书server.crt,-days参数表示证书有效期,单位为天,x509表示生成的是X.509证书。

执行上面所有的命令之后,在Apache的bin目录下生成了三个文件server.key、server.csr、server.crt

1)将httpd_ssl.conf 中的:

#SSLSessionCache “dbm:C:/Program Files(x86)/Apache Software Foundation/Apache2.2/logs/ssl_scache”

SSLSessionCache “shmcb:C:/Program Files(x86)/Apache Software Foundation/Apache2.2/logs/ssl_scache(512000)”

改为:

SSLSessionCache “dbm:C:/Program Files(x86)/Apache Software Foundation/Apache2.2/logs/ssl_scache”

#SSLSessionCache “shmcb:C:/Program Files(x86)/Apache Software Foundation/Apache2.2/logs/ssl_scache(512000)”

据说这是只有在64位机器上才需要的。如果不这样修改的话,Apache Service Monitor会显示如下错误:
。。。。。。。。。。。。。。

######SSLSessionCache “shmcb:${SRVROOT}/logs/ssl_scache(512000)”(我自己加的!)

其实以上内容不是这样改的,这些内容不动,改httpd.conf里面的 shmcb相关内容,去掉前面的#号。

其他需要注意的
1) 在httpd.conf文件中找到以下参数,按照下文中注释内容进行配置。

#LoadModule ssl_module modules/mod_ssl.so #删除行首的配置语句注释符号“#”加载mod_ssl.so模块启用SSL服务,Apache默认是不启用该模块的。
#Include conf/extra/httpd-ssl.conf #删除行首的配置语句注释符号“#”。
2) 在httpd-ssl.conf文件中找到以下参数,按照下文中注释内容进行配置。
<VirtualHost *:443>
ServerName #修改为申请证书时绑定的域名www.YourDomainName1.com。
DocumentRoot /data/www/hbappserver/public
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件。
SSLHonorCipherOrder on
SSLCertificateFile cert/domain name1_public.crt # 将domain name1_public.crt替换成您证书文件名。
SSLCertificateKeyFile cert/domain name1.key # 将domain name1.key替换成您证书的密钥文件名。
SSLCertificateChainFile cert/domain name1_chain.crt # 将domain name1_chain.crt替换成您证书的密钥文件名;证书链开头如果有#字符,请删除。
</VirtualHost>

#如果证书包含多个域名,复制以上参数,并将ServerName修改为第二个域名。
<VirtualHost *:443>
ServerName #修改为申请证书时绑定的第二个域名www.YourDomainName2.com。
DocumentRoot /data/www/hbappserver/public
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件。
SSLHonorCipherOrder on
SSLCertificateFile cert/domain name2_public.crt # 将domain name2替换成您申请证书时的第二个域名。
SSLCertificateKeyFile cert/domain name2.key # 将domain name2替换成您申请证书时的第二个域名。
SSLCertificateChainFile cert/domain name2_chain.crt # 将domain name2替换成您申请证书时的第二个域名;证书链开头如果有#字符,请删除。
</VirtualHost>

4) WampServer就是Windows Apache Mysql PHP集成安装环境,即在window下的apache、php和mysql的服务器软件。
1、进入Wampserver 官网 网址:https://sourceforge.net/projects/wampserver/

extra/httpd-vhost文件也要修改。!!!!!!!!!!!!!!!!!重要!!!!!!!!

部署ssl后 https://的根目录为:C:\wamp64\bin\apache\apache2.4.51\htdocs
http://的根目录为:C:\wamp64\www;
可以修改。

2024年3月17日又重新做了一遍。
因为更换了域名,总是通不过,通过myssl.com安全性检测,发现老的域名还在其作用。
下载最新版本的wampserver,重新安装,还需要新的vc++,通过安装提示进入到wamp网站,下载安装。httpd.conf文件修改载入httpd_ssl.conf文件后就只能启动2/3个服务。必须退出启动wamp才能显示问题,不是重新启动服务,必须退出。
根据提示加载
LoadModule socache_dbm_module modules/mod_socache_dbm.so
和另一个模块就能启动三个服务了!
使用mysql数据库使用的一些命令
mysql> SET PASSWORD FOR root@“localhost” = PASSWORD(‘927927’); 这一句也起作用了!
mysql> SET PASSWORD FOR ‘root’@‘localhost’ = PASSWORD(‘123456’); 这一句起作用了!
mysql>source c:/wamp3/db_qincekeyong_li06_20220318_013001.sql;
mysql>source c:/qincekeyong_li06.sql;

                                                    后续
 由于Php7.0不默认支持     xml_parser_create()也就不支持 function   xml()。微信支付出错,用wamp把7.0换成php5.6                                            

2)小程序分包的时候报错app.json: [“subpackages”][0][“root”] 字段需为 目录。解决办法很简单,重启微信开发者工具即可…
3)微信支付回调函数 notify() 不支持注册域名,只支持数字网址。?????????
4)微信商户平台api证书续期,没有安装证书或证书已经过期,可能就不能访问 notify() 函数。???????
5)微信支付回调函数改写在order文件里就可以了,在wxpay文件里死活都不行,不知道是为什么。
6)在设置ssl后,只启动两个服务,是橙色,是什么原因?

7)登录网址显示:
Forbidden
You don’t have permission to access /testmysql.php on this server.
Apache/2.4.39 (Win64) PHP/7.2.18 Server at 124.221.222.16 Port 80

忘记改为
<Directory*********>
Require all granted
</Directory>
httpd.conf文件要改,不要忘记httpd-vhosts.conf文件也要改,这里经常出错
还有就是每次修改后,没有重新启动wamp
8)出现错误"Init: Session Cache is not configured [hint: SSLSessionCache]"的解决方法
找到并打开文件httpd.conf
find / -name httpd.conf

找到下面这句话,并删除前面的注释符,如果没有找到,那么添加这一行:
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

找到并打开/www/server/apache/conf/extra/httpd-ssl.conf
在文中寻找是否有这一行,如果没有就添加
SSLSessionCache “shmcb:/www/server/apach/logs/ssl_scache(512000)”
9)wamp安装后要启动两次。更改参数后要记得重新启动。
10)注意修改以下内容:
<VirtualHost *:443>
ServerName #修改为申请证书时绑定的域名www.YourDomainName1.com。
* **
11)解决Undefined class constant ‘MYSQL_ATTR_INIT_COMMAND’
解决方法:
(1)打开 php.ini 文件修改以下内容(去掉前面的 ; ):
extension=php_pdo.dll //开启PDO
extension=php_pdo_mysql.dll //PDO 访问mysql 驱动
注:如果在php.ini中没有发现extension=php_pdo_mysql.dll 这个组件,就自己写上吧。
(2)然后重启Apache服务。
(3)PS:如果以上均无效,那就看下PHP版本号是不是5.4以上版本还有就是看下php下面的ext目录是否存在,我就被一个渣渣的镜像文件给骗了,
12)最后总结一下:
在httpd.conf文件里以下几句去掉#号:
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
在httpd.conf文件里以下几句修改:
Require all denied 修改为: Require all granted
AllowOverride none 可能要修改为: AllowOverride All
在httpd.conf文件里做以下修改:
<VirtualHost *:443>
ServerName #修改为申请证书时绑定的域名www.YourDomainName1.com。
SSLCertificateFile cert/domain name1_public.crt # 将domain name1_public.crt替换成您证书文件名。
SSLCertificateKeyFile cert/domain name1.key # 将domain name1.key替换成您证书的密钥文件名。
SSLCertificateChainFile cert/domain name1_chain.crt # 将domain name1_chain.crt替换成您证书的密钥文件名;证书链开头如果有#字符,请删除。这一句我没修改
</VirtualHost>
微信小程序微信支付回调函数notify()在wxpay下就不行,在order下就可以,不知为什么?

                                              小程序
  微信小程序pc端正常,手机端报错 “ request:fail -2:net::ERR_FAILED ” 怎么解决?
  pc端访问小程序没有问题,但是手机访问时报错 “request:fail -2:net::ERR_FAILED”,怎么办?

前几天写完微信小程序(点我跳转),以为总算是把坑踩过了,没想到测试的时候又给我来了一个大坑,当时为了测试配了一个二级域名,是之前同一个项目的官网域名,已经申请了挺久的了,也没太注意,直接把二级域名拿过来用,然后被这个坑折磨了好几天 T_T。

前端拿了二级域名,也在微信小程序处配置好了,但是我们手机访问的时候就是报错,“request:fail -2:net::ERR_FAILED” 进不到接口里面,开始我以为是有拦截没有放开,但是用 pc 端登录微信是可以访问的,没办法,只好去网上找找。

经过一番查找,发现是服务器中的域名证书缺少了中间证书导致的,
https://ssltools.digicert.com/checker/views/checkInstallation.jsp
在这个工具中输入我们的网站地址,点击检查后,就可以看到相关的内容

已经找到问题了,那我们来解决它吧
1、首先获取中间证书

在 https://www.myssl.cn/tools/downloadchain.html 网站中,将 crt 文件复制进去,点击获取中间证书并下载

2、在原有的 crt 文件后面追加(注意不是覆盖)所获得的中间证书内容

这里要提醒大家一下,注意看下你们 crt 证书内容是只有一段,还是两段,只有一段的话就是缺少中间证书,具体是这样追加的:

3、重启 nginx 服务器,就大功告成了
以下内容是网上抄的:
以下内容是网上抄的:
ThinkPHP怪现象:数据表新增字段后开发模式可更新运行模式无法更新
一、情况说明
一个已经发布的程序中,数据库原有表article,字段原有id、content、title三个字段,原程序可以正常运行,通过大D方法可以正常的更新数据库。

 现在要对这个程序进行更新,数据库表article现在增加字段media,在开发阶段(Debug=true)时程序可以正常运行后,将开发模式关闭(Debug=false),然后运行程序,发现media字段无法更新,想想可能是缓存的问题,于是将Runtime目录给删除掉,再次运行,OK!media字段可以更新了,于是将程序打包通过FTP发布到服务器后解压。

结果程序又无法更新了,想想也许是缓存的问题,好吧,将Runtime目录删除掉,再试,还是不行。好吧,在入口文件index.php中将DEBUG又重新设置为true,并覆盖到服务器上,测试,工作正常。

到底发生了什么问题呢?

二、发觉问题

将服务器上的入口文件中的DEBUG还是设置为FALSE,然后将页面信息PAGE_TRACE设置为TRUE,再次测试,发现并没有运行时的错误。

于是,我只好将数据库对象通过dump()方法打印出来,同时将更新到数据库中的数据集也通过dump()方法打印出来。这时候发现数据集中又media字段的信息,而数据库对象中的字段却没有media字段的信息。

我再次将DEBUG设置为TRUE打开开发模式,再次dump()数据库操作对象,这时数据库操作对象中居然有了media字段。于是乎只好确认是缓存问题了。

遂通过FTP软件将Runtime目录再次删除掉,这时候才注意到了一个奇怪的现象,Runtime目录删除不了,其中Rumtime目录下还存在着Data/_fields目录,多次删除都无法删除,只有一点可以说明,这个文件夹下还有文件。

也就是说,缓存没有清理干净!

三、解决问题
这里先说明一下,我服务器系统是Linux的,我自己电脑是Mac的,用的FTP软件是FileZilla。

既然文件没有清理干净又看不到,那只有可能是隐藏起来的了,于是乎在FileZilla的菜单中的Server菜单下找到了Force Showing hidden files,这样就可以显示所有隐藏文件了。

FileZilla强制显示隐藏文件
FileZilla强制显示隐藏文件

这下再看Runtime\Data_fields\目录下就看到了这样几个隐藏文件:

FTP中的隐藏文件显示
FTP中的隐藏文件显示

奶奶的,原来所有数据表的结构信息都已经被缓存起来了的,而且这个缓存文件是在数据表被创建时创建的,而后来更新表字段后,这个数据表结构的缓存文件并没有被更新。

这下算是解决了,删除掉这几个表,将DEBUG设置为FALSE后,重新打开这个网站,OK,这几个文件又重新被建立了,而这时建立的是根据新表来建立的,这样,问题就得到了解决!

**

20240328 重新配置服务器

**

一、安装wamp3.2.6
1、其中PHP版本要主动降为5.6.40
二、修改httpd.conf、 httpd_vhost.conf、httpd_ssl.conf文件
1、httpd.conf、
#LoadModule ssl_module modules/mod_ssl.so
LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf
Include conf/extra/httpd-ssl.conf
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

#############Require all denied
Require all granted

############Require local
Require all granted

2、 httpd_vhost.conf、
############Require local
Require all granted

3、httpd_ssl.conf

#############SSLCertificateFile “ S R V R O O T / c o n f / s e r v e r . c r t " S S L C e r t i f i c a t e F i l e " {SRVROOT}/conf/server.crt" SSLCertificateFile " SRVROOT/conf/server.crt"SSLCertificateFile"{SRVROOT}/conf/baichangxian.cn.crt”

##############SSLCertificateKeyFile “ S R V R O O T / c o n f / s e r v e r . k e y " S S L C e r t i f i c a t e K e y F i l e " {SRVROOT}/conf/server.key" SSLCertificateKeyFile " SRVROOT/conf/server.key"SSLCertificateKeyFile"{SRVROOT}/conf/baichangxian.cn.key”

#SSLCertificateChainFile “ S R V R O O T / c o n f / s e r v e r − c a . c r t " S S L C e r t i f i c a t e C h a i n F i l e " {SRVROOT}/conf/server-ca.crt" SSLCertificateChainFile " SRVROOT/conf/serverca.crt"SSLCertificateChainFile"{SRVROOT}/conf/root_bundle.crt”

##################ServerName www.example.com:443
####################ServerAdmin admin@example.com
ServerName www.baichangxian.cn:443
ServerAdmin admin@baichangxian.cn

拷贝baichangxian.cn.crt , baichangxian.cn.key , root_bundle.crt 到conf目录。

安装数据库

cd C:\wamp64\bin\mysql\mysql5.7.36\bin

mysql -h 127.0.0.1 -u root -p

;初始密码为空,直接打回车键
show databases;

create database qincekeyong_li06;

use qincekeyong_li06;
source c:/wamp3/db_qincekeyong_li06_20240312_013002.sql;
SET PASSWORD FOR root@“localhost” = PASSWORD(‘927927’); 这一句也起作用了!要在use qincekeyong_li06;之后
SET PASSWORD FOR ‘root’@‘localhost’ = PASSWORD(‘927927’); 这一句起作用了!

alter user root@localhost identified by ‘927927’;这一句可以在use qincekeyong_li06;之前。

show tables;
select * from lr_licaixinxi_xjp;

select * from lr_licaixinxi_xjp;
微信小程序微信支付回调函数notify()在wxpay下就不行,在order下就可以,不知为什么?http与https都可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值