apache2.4.9 开启path_info访问_大叔学微信小程序(二) 2019年9月16日

0c013b97aa260bf7b32e89a084b9e9f3.png

今天的学习从填昨天留下的坑开始,昨天留下了相册选择照片真机无法显示的坑,网上查了查,说了一些文件路径的原因以及容器显示长宽的设置问题,先不管对不对,上我的出错代码

var that = this

wx.chooseImage({

count: 1,

sizeType: ['original', 'compressed'],

sourceType: ['album', 'camera'],

success(res) {

// tempFilePath可以作为img标签的src属性显示图片

const tempFilePaths = res.tempFilePaths

console.log(res.tempFilePaths)

that.setData({

imgurl: tempFilePaths

})

打印输出之前是copy的官网示例代码,count:1设置只能选择一张照片,res.tempFilePaths是执行成功后回调函数返回的文件路径参数。为什么模拟器能显示,真机无法显示呢?经过仔细排查才发现,tempFilePaths返回的是一个文件路径的数组,有多少张图片数组长度就是多少。而现在只有一张,在tempFilePaths直接引用的时候就没有报错。正确的做法是要加上数组的索引,把代码改为

that.setData({

imgurl: tempFilePaths[0]

})

就正确了,在我的Samsung C7 Pro在能够正确显示手机相册里的照片。

填坑之后继续学习,uploadFile这个API,执行了官网的示例代码后提示出域名不规范

wx.uploadFile({

url: 'http://www.wxserver.com',

header:{

"content-type":"multipart/form-data"

},

filePath: res.tempFilePaths[0],

代码中域名是我自己在电脑上搭的Apache虚拟主机,终于碰到https的问题了,好吧,我去搭自己的https服务器,于是在网上搜了一番,按着教程一步步搭好了https虚拟主机。也花了大叔三个小时,年龄大了手脚慢。幸好我的Apache直接就在C:Apache24路径里,这样才省了很多修改配置文件的麻烦。贴一个简略的安装步骤:

1、 确认是否安装ssl模块

2、 生成证书和密钥

window下

步骤1:生成密钥

命令:openssl genrsa 1024 > server.key

步骤2: 生成证书请求文件

命令:openssl req -config C:Apache24confopenssl.cnf -new -key server.key > server.csr

步骤3: 生成证书

命令:openssl req -config C:Apache24confopenssl.cnf -x509 -days 365 -key server.key -in server.csr > server.crt

这一步有一个错误提示,

C:Apache24bin>openssl req -x509 -days 365 -key server.key -in server.csr > ser

ver.crt

Can't open C:Program FilesCommon FilesSSL/openssl.cnf for reading, No such file or directory 12200:error:02001003:system library:fopen:No such process:cryptobiobss_file.c:74:fopen('C:Program FilesCommon FilesSSL/openssl.cnf','r') 12200:error:2006D080:BIO routines:BIO_new_file:no such file:cryptobiobss_file.c:81:

大概是说在C:Program FilesCommon Files

里面没有ssl文件夹和相关文件openssl.conf。当时觉得完了,后来看见bin下面还是生成了一个server.crt

把得到的server.key和server.crt文件拷贝到apache的对应目录

3、 配置apache

l 修改httpd-ssl.conf文件

注意在此文件中配置证书和密钥

SSLCertificateFile /apache/conf/server.crt

SSLCertificateKeyFile /apache/conf/server.key

虚拟机设置

NameVirtualHost *:443

…………

l 修改httpd.conf文件

步骤1:打开ssl模块

LoadModule ssl_module modules/mod_ssl.so

步骤2:引入ssl配置文件

Include “/apache/conf/httpd-ssl.conf”

步骤3:如果你配置的虚拟机,注意一下端口的访问接受情况

NameVirtualHost *:80

…………

4、 重新启动apache

重启失败报错说httpd-ssl.conf文件里下面几行出错

C:Apache24bin>httpd

AH00526: Syntax error on line 92 of C:/Apache24/conf/extra/httpd-ssl.conf:

SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you

need to load the appropriate socache module (mod_socache_shmcb?).

我看了看是log路径,也没管那么多,直接#号注释掉,再重启,成功了,浏览器里访问了一下,同样的http://www.wxserver.com域名,http和https都能访问。

再呼出微信工具,再执行上传代码,悲剧了,还是说域名有问题!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值