[教程]修改PHPCMS v9.6.3 让其支持HTTPS

不知道SSL为何物的
不知道HTTPS是啥的
不知道如何安装配置SSL证书和开启HTTPS的
对PHPCMS一无所知的
对PHPCMS知道太多的
针对以上几类人员本文仅供娱乐,不要当真

以下修改方法仅针对于全站动态页面,全站生成静态页面的我还没试尝试过

不同服务环境下的修改过程可能会有差异,先说下我的环境以供参考
CentOS 7.2
nginx + apache 双引擎
php 5.5.38
openssl 1.0.2h
mysql 5.5
phpcms v9.6.3 utf-8
证书:腾讯云,阿里云,Let’s Encrypt申请的免费证书都测试过

注: win2008 IIS7.5环境我也按同样方式配置过,网站运行至今暂未发现问题

本帖只讨论关于HTTPS下的PHPCMS安装和修改,不讨论有关SSL证书的申请、绑定和各种web引擎开启https支持的相关问题!

一.安装部分

首先配置好你主机的SSL证书,我是强制HTTPS访问,http访问会301跳转到HTTPS,确保以下安装过程全部在https下的地址安装

linux系统下上传V9所有文件后设置
cache
uploadfile
phpsso_server/cache
phpsso_server/uploadfile
四个文件夹权限为777
然后开始安装
安装后登录后台更新缓存

二.程序修改部分

1.后台输入https的url可通过JS校验部分的修改

修改phpcms/modules/admin/site.php
大约45行和128行的正则

('/http:\/\/(.+)\/$/i', $domain))

修改为

('/(http|https):\/\/(.+)\/$/i', $domain))

修改phpcms/modules/admin/templates/setting.tpl.php
大约18行中的正则

http:\/\/(.+)[^/]$

修改为

http[s]?:\/\/(.+)[^/]$

修改phpcms/modules/admin/templates/site_add.tpl.php
大约13行中的正则

http:\/\/(.+)\/$

修改为

http[s]?:\/\/(.+)\/$

修改phpcms/modules/admin/templates/site_edit.tpl.php
大约11行中的正则

http:\/\/(.+)\/$

修改为

http[s]?:\/\/(.+)\/$

修改phpcms/modules/link/templates/link_add.tpl.php
大约10行中的正则

^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&]*([^<>])*$

修改为

^http[s]?:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&]*([^<>])*$

修改phpcms/modules/link/templates/link_edit.tpl.php
大约11行中的正则

^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&]*([^<>])*$

修改为

^http[s]?:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&]*([^<>])*$

修改phpcms/modules/link/index.php
大约41行和51行中的正则

/http:\/\/(.*)/i

修改为

/^http[s]?:\/\/(.*)/i

严格按照以上步骤修改后,注册用户、帐号登录等操作完全正常,和PHPSSO通信完全正常,后台添加信息和前台链接URL完全正常

注意:
1.如注册用户提示‘操作失败’,请在后台会员模块设置中关闭‘注册时可选会员模型’或者保证会员不少于两个会员模型

2.在PHP5.6或以上的PHP版本中会出现和PHPSSO无法正常通信的情况,因为PHP5.6及以上fsockopen和file_get_contents等函数openssl需要验证目标的SSL证书是否可信,需要安装openssl根证书才可以,否则openssl会报警告信息证书验证失败!
如需在php5.6或以上版本中使用HTTPS的请参阅PHP官方有关php5.6和openssl的资料http://php.net/manual/en/migration56.openssl.php

3.系统发信尚未测试,有空的同学可以测试一下看有没问题,如有问题反馈一下,估计HTTPS下发信可能也要修改文件

以上修改后如发现程序运行中出现新问题请跟贴,我看能否解决! QQ:1165279646 欢迎交流

如有PHPCMS大神或官方大神有更好的修改或补充修改方法,还盼指出,小弟PHP水平不佳,不能保证所有的修改合理和照顾的面面俱到,只盼将我的方法发出来互相交流学习到更多东西!

相关推荐