Category Archives: 乱七八糟

WordPress htaccess 默认内容

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

在Centos+Apache+Mysql环境下搭建私有NextCloud云盘+office文件在线协作

遇到个项目需要用到office协作,找了一圈nc比较合适,就开工了

环境:httpd 2.4.5 and later

php7 or later

安装mod_proxy

yum -y install mod_proxy_uwsgi mod_proxy_html

安装docker

yum -y install docker

参考:https://nextcloud.com/collaboraonline/

开始用docker安装collaboraonline,

docker pull collabora/code

这里遇到报错:Using default tag: latest
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

结果是docker服务没启动,跑起来:service docker start

再pull,成功

最后会得到:Status: Downloaded newer image for docker.io/collabora/code:latest

接下来,用你喜欢的方式,创建反向代理,conf文件内容如下:

<VirtualHost *:443>
#ServerName改成collabora服务实际运行的域名,一般和nextcloud不同
ServerName yourfiles.yourdomain.com:443

# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
SSLEngine on
#签名证书位置
SSLCertificateFile /path/to/signed_certificate
#中间证书位置
SSLCertificateChainFile /path/to/intermediate_certificate
#私钥
SSLCertificateKeyFile /path/to/private/key
SSLProtocol             all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder     on

# Encoded slashes need to be allowed
AllowEncodedSlashes NoDecode

# Container uses a unique non-signed certificate
SSLProxyEngine On
SSLProxyVerify None
#下面这2行如果引起报错 ,可以注释掉,测过不影响,因为前面已经禁用SSLProxyVerify,不知道为什么还要画蛇添足
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off

# keep the host
ProxyPreserveHost On

# static html, js, images, etc. served from loolwsd
# loleaflet is the client part of LibreOffice Online
ProxyPass           /loleaflet https://127.0.0.1:9980/loleaflet retry=0
ProxyPassReverse    /loleaflet https://127.0.0.1:9980/loleaflet

# WOPI discovery URL
ProxyPass           /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse    /hosting/discovery https://127.0.0.1:9980/hosting/discovery

# Main websocket
ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon

# Admin Console websocket
ProxyPass   /lool/adminws wss://127.0.0.1:9980/lool/adminws

# Download as, Fullscreen presentation and Image upload operations
ProxyPass           /lool https://127.0.0.1:9980/lool
ProxyPassReverse    /lool https://127.0.0.1:9980/lool
</VirtualHost>

然后,就可以把docker跑起来了,先给docker加上开机启动

ckhconfig docker on

再把容器跑起来:

docker run -t -d -p 127.0.0.1:9980:9980 -e ‘domain=nextcloud\\.yourdomain\\.com’ -e “username=username” -e “password=password” –restart always –cap-add MKNOD collabora/code

 

这里的domain,是nextcloud运行的domain,需要用\\转义.,-p后面绑定在127.0.0.1是为了安全,因为最后是用反向代理对nc使用的,测试期间可以不加ip,就绑定在所有IP了

username和password是指定管理后台的用户名和密码,之前没有指定走了不少弯路,虽然这个后台在正常使用后不会再被用到,配置过程中也其实是不需要用的。

运行后会得到一个容器id,然后netstat看一下

netstat -an|grep 9980

有listening,就可以下一步了

先打开后台,看下有没有什么问题https://yourfiles.yourdomain.com/loleaflet/dist/admin/admin.html

如果登陆后有404,或者任何错误,可能是Apache版本不够高,不支持websock反向代理,自己换Apache吧,最低版本要求是2.4.5或者换nginx

nextcloud的安装就非常简单了,wget到服务器,unzip解包,按流程安装,完

接下来,在应用>office&text中启用Collabora Online

然后到设置》在线协作中,填入之前配置的Collabora Online地址,完工

 

在centos7上yum安装php7.1

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

yum -y install php71w-cli php71w-devel php71w-fpm php71w-gd php71w-mbstring php71w-mcrypt php71w-mysql php71w-opcache php71w-pdo php71w-pecl-imagick-devel php71w-pecl-memcached php71w-pgsql php71w-xmlrpc php71w-xml

 

坐等,完事

喷一喷国产的Square-乐刷

最近偶然在腾讯看到手机刷卡器免费送,那就毫不犹豫的搞了一只回来,简单试用后,开喷。

刷卡器叫乐刷

先一句话总结:现阶段这刷卡器就是脱裤子放屁,多此一举。

再多说点:这刷卡器其实就只能帮你输入卡号到腾讯的财付通快捷支付界面,然后走信用卡或借记卡无卡支付通道,别无它用。和square比起来简直就不是一个时代的东西。

特别提醒:这刷卡器的软件号称经过SSL或SET加密传输数据,我手贱抓了一把包(见文末),竟然是HTTP明文传输(至少是android客户端这样),天雷滚滚啊,信用卡数据啊最起码用个SSL好吧,这叫我怎么相信你啊? 一个对客户敏感数据传输极不负责的公司,我不相信在服务器端会有多么严密的安全防护,用了乐刷的朋友们,自求多福吧,反正我是打算换卡了。

想要自己体验的可以自己去申请,先给39押金,任意交易3笔后返还押金(给自己充3笔10元话费足矣):

http://www.yeahka.com/yajinhuodong.html

下面开始正文

先看包装,看起来很普通的信封,里面是气泡膜:

正面

背面

刷卡器:

 

看完外观,下面开始玩软的。

据说android和ios都可以支持,touch最近刚好挂了,主力手机是wp不被支持,于是找了个华为的C8650来体验,按照官方网站的说法,菜市场里可以下载到android应用,去菜市场看了看,还真有,但,怎么开法商是个人名称而不是公司名?而且,下载量似乎很丢脸。

仔细看了看,似乎真的是这货

下载,安装,开跑:

试试充个QB吧,似乎这也是目前已知可以进行的最小金额的交易了。

插上刷卡器,第一次使用需要激活,手头这个已经被自己手贱激活过了就截不了屏了。

然后选Q币充值,给Q号,然后就到了收银台

这里可以选刷卡或者银联手机支付,咦,初级阶段?好像很眼熟的样子……这个等会再玩,先来刷卡看看

一张ICBC的信用卡,很容易就刷过去了

接下来就有点不太对劲了,这问我是哪家银行干嘛?难道不走银联的?

真相如此:他娘的,原来只是个读卡号的东西……看到了吧,持卡人姓名、CVV、有效期、身份证号、手机。。。这不就是财付通、支付宝之类平台上的无卡支付嘛……

提交后,收到的居然是财付通发来的短信

接下来就懒得喷了也没必要喷了,到此为止了,补充一下,工行那边交易明细里看到刷卡地点是深圳市财付通科技有限公司,交易类型和以往的无卡支付一样显示为POS交易。

最后,出于好奇,这软件号称是SSL或SET加密,来抓个包看看,下面是一张没在乐刷用过的卡,会被要求输入所有信息

居然是明文HTTP,没有SSL,更别提SET了。。只给重点,别的不多说

Host: www.yeahka.com

GET /cgi-bin/transaction_proxy.cgi?p=*******************************************************

*********************************************************

*********************************************************

*********************************************************

*********************************************************

*********************************************************

*********************************************************

********************* HTTP/1.1

几经折腾,querystring还是没搞定,不知道其中有没有信用卡号,所以还是藏着吧,我想对,于专业人士来说这个不会是大问题。(大概是url encode外加base64外加某种别的加密方式)

再来看服务器返回:

1d4
PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8cm9vdD4KPGVycm9y

X2NvZGU+LTgwMDAwNTY8L2Vycm9yX2NvZGU+CjxlcnJvcl

9tc2c+5oKo55qE5aeT5ZCN5LiO6ZO26KGM6aKE55WZ5LiN5L

iA6Ie077yM6K+35qC45a+577yBPC9lcnJvcl9tc2c+CjxlcnJvcl90

aXA+6K+35qC45a+55oKo55qE5oyB5Y2h5Lq65aeT5ZCN77yM

56Gu5L+d5LiO5q2k5Y2h5byA5oi35L+h5oGv5LiA6Ie077yBPC

9lcnJvcl90aXA+CjxyZXR1cm5fbW9iaWxlPjEyMzQ1Njc4OTAx

MjwvcmV0dXJuX21vYmlsZT4KPHRyYW5zYWN0aW9uX2lkP

jIwMTIwODE5MTQzNjQyMDAwMDAwMDAwMDAwMDAxN

DA0PC90cmFuc2FjdGlvbl9pZD4KPC9yb290Pgo=
0

这个直接就base64解码完事。

<?xml version=”1.0″ ?>
<root>
<error_code>-8000056</error_code>
<error_msg>您的姓名与银行预留不一致,请核对!</error_msg>
<error_tip>请核对您的持卡人姓名,确保与此卡开户信息一致!</error_tip>
<return_mobile>xxxxxxxxxxxx</return_mobile>
<transaction_id>YYYYMMDDHHMMSS00000000000000xxxx</transaction_id>
</root>

我还能说什么呢?有相关人士愿意解释一下吗?