Apache环境安装SSL证书实现https链接

前言

这里不说怎么申请证书,只说一下Apache怎样详细配置,关于怎样免费申请证书,小伙伴们可以去看前面几篇文章。

正文

打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”:

#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf

打开Apache打开conf文件,在conf文件夹中创建一个名为vhosts_ssl.conf的配置文件。编辑vhosts_ssl.conf文件,增加如下内容

Listen 443
SSLStrictSNIVHostCheck off
SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL
SSLProtocol all -SSLv2 -SSLv3
    DocumentRoot "D:\phpStudy\WWW\bbs"(网站根目录路径)
    ServerName www.yuming.com(更换成自己的域名)
    ServerAlias yuming.com(更换成自己的域名)
  <Directory "D:\phpStudy\WWW\bbs">(网站根目录路径)
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
SSLEngine on
SSLCertificateFile "D:\phpStudy\Apache\conf\ssl\XXX.cer"(证书路径)
SSLCertificateKeyFile "D:\phpStudy\Apache\conf\ssl\XXX.key"(证书路径)

需要注意的是证书路径的位置要放正确,基本就没什么问题。

微信支付 :curl出错,错误码:60两个问题的解决办法

如下是运行微信支付测试代码时出错代码:

Warning: curl_setopt() expects parameter 2 to be long, string given in D:\wwwroot\weixinpaytest\pay\WxPay.JsApiPay.php on line 99

Fatal error: Uncaught exception ‘WxPayException‘ with message ‘curl出错,错误码:60‘ in D:\wwwroot\weixinpaytest\lib\WxPay.Api.php:564 Stack trace: #0 D:\wwwroot\weixinpaytest\lib\WxPay.Api.php(62):

WxPayApi::postXmlCurl(‘<xml><appid><![…‘, ‘https://api.mch…‘, false, 6) #1 D:\wwwroot\weixinpaytest\pay\jsapi.php(36):

WxPayApi::unifiedOrder(Object(WxPayUnifiedOrder)) #2 {main} thrown in D:\wwwroot\weixinpaytest\lib\WxPay.Api.php on line 564

 

第一个问题,这个问题完全是微信团队的问题,给出的example就是错的:

Warning: curl_setopt() expects parameter 2 to be long, string given in D:\wwwroot\weixinpaytest\pay\WxPay.JsApiPay.php on line 99

找到WxPay.JsApiPay.php文件的99行,curl_setopt($ch, CURLOP_TIMEOUT, 30);
微信团队example代码里少了一个“T”,正确代码应该是 curl_setopt($ch, CURLOPT_TIMEOUT, 30);

这样,这一个问题就解决了。

下面说第二个问题:

Fatal error: Uncaught exception ‘WxPayException‘ with message ‘curl出错,错误码:60‘ in D:\wwwroot\weixinpaytest\lib\WxPay.Api.php:564 Stack trace: #0D:\wwwroot\weixinpaytest\lib\WxPay.Api.php(62):
WxPayApi::postXmlCurl(‘<xml><appid><![…‘, ‘https://api.mch…‘, false, 6) #1 D:\wwwroot\weixinpaytest\pay\jsapi.php(36):
WxPayApi::unifiedOrder(Object(WxPayUnifiedOrder)) #2 {main} thrown in D:\wwwroot\weixinpaytest\lib\WxPay.Api.php on line 564

这个错误通过修改文件WxPay.Api.php 解决,具体如下:

第537行

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验

to

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);//严格校验

这样,这两个问题就解决了!祝你好运!

以上就是对微信支付出现问题的资料整理,后续继续补充相关资料谢谢大家对本站的支持!

PHP解析微信支付结果返回的xml示例代码

先上代码:

$input = file_get_contents('php://input');
if (!empty($input) && empty($_GET['out_trade_no'])) {
 $obj = simplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA);
 $data = json_decode(json_encode($obj), true);
 //根据$data处理自己所要的逻辑
}

$data具体参数看微信文档,最常用的是:out_trade_no(商户订单号)、transaction_id(微信交易号)、result_code(交易状态)

交易状态如果是success记得处理完逻辑后返回一个success,不然微信会认为你的处理未完成而继续向服务器发送请求

[转载]OneinStack自带本地/远程备份网站文件和数据库使用方法

以前我们使用较多的Linux VPS一键包可能军哥LNMP较多,当然当前这款一键包用户也是非常多的,看到军哥LNMP1.4版本已经在公测还没有正式推出,老左过几天也去体验下新版1.4的实际功能与目前1.3版本的不同。且在最近一段时间,来自LinuxEye博主发布的OneinStack一键脚本在短时间内用户也是比较多的。

OneinStack一键脚本的特点在于组合套装比较多,从LAMP、LNMP、lnmpa、lnmt、lnmh等都可以选择自动安装,而且软件包版本更新较快。从网友的讨论看,有一直坚持且喜欢军哥LNMP的,也有从WEB面板或者其他脚本转向OneinStack的,各有优势。(也有高手喜欢自己编译安装)

诚然,一键包给我们Linux系统部署Web环境是方便很多,而且有一些自动化工具,比如快速安装SSL、添加站点、数据库等都可以脚本工具创建和设置,在运维过程中,数据备份也是关键的,OneinStack自带备份工具,我们可以设置备份本地、远程服务器,当然也可以定时备份。这里我们就一起看看吧。

第一、OneinStack备份功能/工具使用准备

1、我们需要当前服务器采用的是OneinStack一键包(oneinstack.com),如果我们没有安装这个环境肯定无法使用备份脚本。

2、我们是考虑本地备份还是远程备份,如果是后者我们还需要准备一台远程VPS或者服务器准备接收备份过去的文件和数据库。

3、如果我们初次使用,建议在测试机上先玩一玩,然后再到生产环境中使用,以免万一。

第二、OneinStack备份配置文件

我们在备份之前,需要配置文件,比如备份本地备份还是远程备份,还是两者都有,且也包括备份数据库还是备份文件,都需要预先设置好。

1、备份脚本执行

./backup_setup.sh

这里我们需要到根目录(看我们自己安装包在哪里),执行命令。

2、备份参数设置步骤

A – 设置远程还是本地备份

这里我们可以选择本地、远程,或者两者都一起备份,这里我演示就一起备份选择3,回车。
 

B – 备份数据库、网站选项

 

根据我们实际的需要,是只备份数据库、网站文件,还是都备份。

C – 备份本地网站设置

  本地网站设置,这里包括我们备份到当前服务器哪个目录(默认也可以)、备份天数默认5天,5天之前的会自动删除,节省服务器存储,如果我们服务器硬盘足够大,那可以设置较长时间、备份数据库(如果多个数据库用逗号隔开)、备份网站文件,可以选择一个或者多个用逗号隔开。

D – 远程服务器设置

 这里我们可以设置远程服务器的信息,这样会检测是否可以连接,我们也可以添加多台服务器,这样可以推送备份到多个服务器中,如果有需要的可以备份到多个服务器。

第三、OneinStack执行备份以及定时备份设置

我们在第二步的时候设置配置文件完毕,我们可以根据实际的需要备份到多台服务器中,也可以仅仅备份到本地,然后自己手工下载。配置完毕后,我们可以开始测试备份,以及设置定时备份。

1、执行备份

./backup.sh

在当前服务器中丢入上面备份脚本后会自动执行我们上面设置的备份。

     我们可以看到一切都是自动在执行。执行完毕之后,我们在本地服务器的/data/backup目录,以及对应远程服务

器的对应目录中,都会有两个压缩包,一个是数据库,一个是网站文件。(要是以后可以在配置文件的时候可以自定义远程目录文件就可以了,这样直接可以对接备份网站目录)

2、设置定时备份

我们可以设置定时备份,这样省得每次备份再去执行命令。当然,如果你数据更新较少,那就简单的每次来执行执行也没关系,这样执行的时候可以看到是否完整,我们也不能太依赖自动,万一没备份成功,我们还当成功。

crontab -e

执行定时文件,然后添加脚本。

0 2 * * * cd ~/oneinstack;./backup.sh > /dev/null 2>&1 &

保存退出后,就可以自动执行,比如上面试每天2点执行备份。如果我们不需要这么频繁,可以设置一周备份一次或者具体的时间,可以参考crontab的时间戳写法。

第四、OneinStack备份网站、数据库工具小结

1、OneinStack备份工具使用还是比较方便的,先配置文件以及执行和设置定时备份即可。

2、我们可以设置定时备份,也可以自己想到的时候再去备份,个人建议定期也要下载到本地保存。