Socialite主要针对登录,涵盖了微信的接口,但是不包括微信其他的接口,如支付等。而easywechat是针对微信的全场景方案。
所以在项目中,用easywechat来解决微信方面的需求,在users表之外,创建一个weixins表,来存储微信用户绑定到信息,如果有需要再用socialites表来存储非微信的用户绑定。
在各个平台的接口中,微信的接口是比较变态难调试的,尤其是支付接口,这里再次抱怨一下。
Socialite主要针对登录,涵盖了微信的接口,但是不包括微信其他的接口,如支付等。而easywechat是针对微信的全场景方案。
所以在项目中,用easywechat来解决微信方面的需求,在users表之外,创建一个weixins表,来存储微信用户绑定到信息,如果有需要再用socialites表来存储非微信的用户绑定。
在各个平台的接口中,微信的接口是比较变态难调试的,尤其是支付接口,这里再次抱怨一下。
基本的安装步骤请看官方文档,这里仅就php8说一下。之前7及以下版本直接按指示操作即可,没有遇到问题,如果遇到github等网络不通的情况,等一等再试,或者想办法出个国。
需要php8的,打开.env将php7下的版本号直接改为8.0.3,或者复制php7的配置新建一个php8。
#
# PHP7
#
# Available PHP_EXTENSIONS:
#
# pdo_mysql,zip,pcntl,mysqli,mbstring,exif,bcmath,calendar,
# sockets,gettext,shmop,sysvmsg,sysvsem,sysvshm,pdo_rebird,
# pdo_dblib,pdo_oci,pdo_odbc,pdo_pgsql,pgsql,oci8,odbc,dba,
# gd,intl,bz2,soap,xsl,xmlrpc,wddx,curl,readline,snmp,pspell,
# recode,tidy,gmp,imap,ldap,imagick,sqlsrv,mcrypt,opcache,
# redis,memcached,xdebug,swoole,pdo_sqlsrv,sodium,yaf,mysql,
# amqp,mongodb,event,rar,ast,yac,yaconf,msgpack,igbinary,
# seaslog,varnish,xhprof,xlswriter
#
# You can let it empty to avoid installing any extensions,
# or install multi plugins as:
# PHP_EXTENSIONS=pdo_mysql,mysqli,gd,curl,opcache
#
#PHP_VERSION=7.4.7
PHP_VERSION=8.0.3
PHP_PHP_CONF_FILE=./services/php/php.ini
PHP_FPM_CONF_FILE=./services/php/php-fpm.conf
PHP_LOG_DIR=./logs/php
PHP_EXTENSIONS=mysql,pdo_mysql,mysqli,mbstring,gd,curl,opcache,redis,xdebug,imap,mcrypt,zip
如上,用docker-compose build php然后docker-compose up php。
这个时候打开php项目,有可能会报could not find driver的错误。那就是mysql的扩展没装好。
可以用下面的办法来安装:
docker exec -it php /bin/sh install-php-extensions pdo_mysql 同理,也可以安装redis扩展install-php-extensions redis 这时候打开phpinfo看看有没有pdo_mysql和redis。 如果需要在本地打开xdebug,还是用上面的办法install-php-extensions xdebug 这时候,还需要修改一下php.ini,因为xdebug最新是3的版本了,配置项改了。 把原来的xdebug配置改成下面的即可。
[XDebug]
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
; Set to host.docker.internal on Mac and Windows, otherwise, set to host real ip
xdebug.remote_host = 192.168.100.100
; xdebug.remote_port = 9000
xdebug.remote_autostart=1
xdebug.remote_log = /var/log/php/xdebug.log
xdebug.mode=debug
xdebug.client_host=192.168.100.100
xdebug.start_with_request=yes
xdebug.log=/var/log/php/xdebug.log
如果用vscode调试的话,在.vscode下面创建launch.json并填入:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/www/shang/openexhibitions/api": "${workspaceRoot}"
}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9003
}
]
}
注意,端口号是9003,之前xdebug是9000
新买了一个电视机顶盒mecool KM6,这玩意激活还需要出国留学(这个词是在淘宝上学的),所以在KM6到货之前就在琢磨拿什么来突破了,家里有个老思科的路由器,虽然慢点,但应该还是能用的吧,结果等配置的时候发现,还真是连不上了,于是只好拿笔记本,接上网线上网,然后通过wifi共享网络出来,幸好官方有教程,按照步骤操作下来,成功留学,顺利激活。
KM6跑起腾讯的云视听一点问题没有,反应超快,但是光看一个云视听太可惜了。那就需要长期假设一个出国通道。咨询了华三做SDN的同学,放弃了采用融合网关的方案,那就是准备一个专用的路由器就行了,物理切换网络是最直接有效的。
但是之前配置的这台电脑毕竟不能一直放在家里做留学使用,所以换了一台旧电脑顶上,2010年买的小黑X1,但是很快就发现,KM6跑起来并不爽。考虑再下,下定决心,再投巨资采购一台ASUS RT-AC68U,这个型号在支持设备清单里是次顶配。淘宝下单花了499个软妹币。
到货后,发现专业路由器就是比TPlink的强,配置真复杂,截图就不发了,直接按教程找到系统配置中的升级固件功能,将下载下来的专用升级固件上传上去,重启(留学中介说是会自动重启,我这里被提示要手动重启,所以就断电重启路由器就好了)。
再连上,发现连DHCP的网关都变了,修改地址,重新进入路由器配置界面,靠,发现完全变了,超级复杂的配置界面没有了,只剩下那红色的经典配色,然后输入激活码,然后,然后,就发现已经连接成功。虽然,华硕这超级牛的路由器的其他那些功能暂时用不上了,但这就行了,插电即用。
接下来,打开油管看看,还是有点卡,于是把接入点从联通光猫的百兆口,换到了千兆口下接的TP的千兆口上,速度明显提升,甚至直接从新加坡回国看云视听都不卡顿。
时常需要给服务器打打补丁,执行apt update后执行apt upgrade,但是奇怪的是jenkins升级后就挂了。
没有改什么配置,没有增加什么新的应用。用apt remove jenkins再apt install jenkins也不行。
Setting up jenkins (2.263.1) ...
Job for jenkins.service failed because the control process exited with error code.
See "systemctl status jenkins.service" and "journalctl -xe" for details.
invoke-rc.d: initscript jenkins, action "start" failed.
● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; generated)
Active: failed (Result: exit-code) since Tue 2021-01-19 10:09:42 CST; 12ms ago
Docs: man:systemd-sysv-generator(8)
Process: 4798 ExecStart=/etc/init.d/jenkins start (code=exited, status=7)
Jan 19 10:09:41 iZ8vbajeqj6nb198cbbtgsZ systemd[1]: Starting LSB: Start Jenkins at boot time...
Jan 19 10:09:41 iZ8vbajeqj6nb198cbbtgsZ jenkins[4798]: Correct java version found
Jan 19 10:09:41 iZ8vbajeqj6nb198cbbtgsZ jenkins[4798]: * Starting Jenkins Automation Server jenkins
Jan 19 10:09:42 iZ8vbajeqj6nb198cbbtgsZ jenkins[4798]: ...fail!
Jan 19 10:09:42 iZ8vbajeqj6nb198cbbtgsZ systemd[1]: jenkins.service: Control process exited, code=exited, status=7/NOTRUNNING
Jan 19 10:09:42 iZ8vbajeqj6nb198cbbtgsZ systemd[1]: jenkins.service: Failed with result 'exit-code'.
Jan 19 10:09:42 iZ8vbajeqj6nb198cbbtgsZ systemd[1]: Failed to start LSB: Start Jenkins at boot time.
dpkg: error processing package jenkins (--configure):
installed jenkins package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
jenkins
E: Sub-process /usr/bin/dpkg returned an error code (1)
试过netstat -apn | grep 8080看端口占用,先是发现过阿里云盾,还以为是中毒了,用top看看cpu占用,不像。
把端口改成8888,也不行。
然后改天,直接执行apt update后执行apt upgrade就好了。原来就是pkg.jenkins.io不能连接造成的。
中间还曾经怀疑过java的问题,网上不少说是java没设置好或者缺少$JAVA_HOME的。并不解决我的问题。
再单独发一下jenkins状态的故障查询。
root@iZ8vbajeqj6nb198cbbtgsZ:~# systemctl status jenkins.service
● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; generated)
Active: failed (Result: exit-code) since Mon 2021-01-18 17:30:42 CST; 1min 56s ago
Docs: man:systemd-sysv-generator(8)
Process: 1878 ExecStart=/etc/init.d/jenkins start (code=exited, status=7)
Jan 18 17:30:41 iZ8vbajeqj6nb198cbbtgsZ systemd[1]: Starting LSB: Start Jenkins at boot time...
Jan 18 17:30:41 iZ8vbajeqj6nb198cbbtgsZ jenkins[1878]: Correct java version found
Jan 18 17:30:41 iZ8vbajeqj6nb198cbbtgsZ jenkins[1878]: * Starting Jenkins Automation Server jenkins
Jan 18 17:30:42 iZ8vbajeqj6nb198cbbtgsZ jenkins[1878]: ...fail!
Jan 18 17:30:42 iZ8vbajeqj6nb198cbbtgsZ systemd[1]: jenkins.service: Control process exited, code=exited, status=7/NOTRUNNING
Jan 18 17:30:42 iZ8vbajeqj6nb198cbbtgsZ systemd[1]: jenkins.service: Failed with result 'exit-code'.
Jan 18 17:30:42 iZ8vbajeqj6nb198cbbtgsZ systemd[1]: Failed to start LSB: Start Jenkins at boot time.
1、东软信息学院(笔者当前在用)
mirrors.neusoft.edu.cn 端口:80
2、北京化工大学
ubuntu.buct.edu.cn/ubuntu.buct.cn 端口:80
3、中国科学院开源协会
mirrors.opencas.cn (mirrors.opencas.org/mirrors.opencas.ac.cn) 端口:80
4、上海GDG镜像服务器
sdk.gdgshanghai.com 端口:8000
5、电子科技大学
mirrors.dormforce.net 端口:80
网上搜一下基本上都是这个内容,只是目前不需要了,而且如果按照这个设置了的话,很可能还会额外造成问题,因为这些镜像要么不存在,要么已经不维护了。
总体上来说,能够正确看待开发资源这个事情,是一点点进步。来自“资本主义”的安卓,本身没有什么罪恶,至少咱们还可以改个名字叫鸿蒙。
当然,谷歌也是有妥协的,专门给中国开发者弄了个中文站点。
mac上Android Studio重装了新版之后提示/Users/mengfanyong/Library/Application\ Support/Google/AndroidStudio4.1无法访问。
那就是没权限呗。有两种解决方案:
(1)sudo /Applications/Android\ Studio.app/Contents/MacOS/studio
用以上命令直接用管理员身份启动,但这样很麻烦。
(2)另一种是直接解决这个文件夹权限的问题:
cd /Users/mengfanyong/Library/Application\ Support/Google
mkdir AndroidStudio4.1
sudo chmod -R 775 /Users/mengfanyong/Library/Application\ Support/Google/AndroidStudio4.1
很奇怪Android Studio为什么不调起管理员权限请求,把这个目录创建一下。希望下个版本能修复。
安装组件:
npm i @fingerprintjs/fingerprintjs -S
# or
yarn add @fingerprintjs/fingerprintjs -S
创建一个async的methord:
async asyncCall() {
// We recommend to call `load` at application startup.
const fp = await FingerprintJS.load()
// The FingerprintJS agent is ready.
// Get a visitor identifier when you'd like to.
const result = await fp.get()
// This is the visitor identifier:
const visitorId = result.visitorId
console.log(visitorId)
return visitorId
}
在业务代码中使用:
this.asyncCall().then(res => {
const terminalId = res
that.$api
.Login({
employeeNumber: that.formLogin.employeeNumber,
password: that.formLogin.password,
terminalId: terminalId,
terminalType: that.formLogin.terminalType
})
.then(() => {
// 登录成功后的操作
})
})
用了两年的企业版墨刀,今年决定不续费了,太贵了,不好意思让公司掏钱买。
看了下,在墨刀上也攒了不少项目了。这算是这两年的钱没有白掏,至少比之前见不到任何项目痕迹要好得多。
但是如何留存项目过程的设计文档,如何更好地进行版本管理,如何更好地同步团队的开发进度,多模块交叉开发,始终是一个问题,不希望过多的精力放在需求管理上,但放得太粗了,没有一个特别紧密配合默契的团队是很难进行的好的。
暂时用Pencil Project,然后基于它想办法来实现在线同步。
最近办公室的网挂了,挂的很彻底,一个搞不请到底是电信通还是联通几级代理的提供商和下级之间打了起来,互相掐网。
我为了能让联通接入进来,依据一个文件的指示,开始投诉。
这个文件并不是这几年第一个,搞不清楚是第几次了。文件本身质量并不高,虽然描述了各个部门的职责,但真不知道该从哪里下手。
文件原文看这里:http://www.gov.cn/zhengce/zhengceku/2020-10/06/content_5549492.htm
工业和信息化部 公安部 住房和城乡建设部 国务院国有资产监督管理委员会 国家市场监督管理总局
关于开展商务楼宇宽带接入市场联合整治行动的通告
工信部联通信函〔2020〕211号
为进一步规范商务楼宇、办公建筑、园区等场所(以下统称商务楼宇)宽带接入市场,打通提速降费梗阻,保障宽带用户合法权益,不断优化中小企业发展环境,工业和信息化部、公安部、住房和城乡建设部、国务院国有资产监督管理委员会、国家市场监督管理总局决定自2020年10月至2021年6月组织开展商务楼宇宽带接入市场联合整治行动。现将有关事项通告如下:
一、电信运营企业及其业务代理,商务楼宇产权人及其委托的管理人、物业服务企业不得签订任何形式排他性质的宽带接入协议或约定,不得强制商务楼宇承租人接受指定服务并收费,不得阻止电信运营企业根据用户需求进入商务楼宇提供公共电信服务,不得约束限制电信运营企业公平接入和使用商务楼宇内通信配套设施。
二、电信运营企业及其业务代理应在商务楼宇内醒目位置公布服务项目、服务内容、收费标准、服务监督电话和市场监管投诉举报电话等。商务楼宇产权人及其委托的管理人、物业服务企业应向各电信运营企业及其业务代理平等开放商务楼宇内通信配套设施,应在商务楼宇内提供专门醒目位置,为电信运营企业及其业务代理公布宽带接入服务信息提供便利。
三、电信运营企业及其业务代理为用户提供通信服务时,除按照其已公示的电信资费标准收费外,不得另行收取其他费用。商务楼宇产权人及其委托的管理人、物业服务企业在配合提供通信接入服务时,不得向电信运营企业及其业务代理收取公示的收费项目之外的费用。
四、2017年4月1日后新建商务楼宇的建设单位应严格执行《综合布线系统工程设计规范》(GB50311)及相关标准,将楼内通信配套设施纳入建设项目的设计文件,所需投资应纳入建设项目概算,并随建设项目同步设计、同步施工、同步验收,不得由第三方公司作为单独工程项目进行投资建设并经营获利;设计单位、施工图审查机构应严格按照国家标准要求进行设计和审查;新建商务楼宇的通信配套设施未按要求竣工验收或验收不合格的,电信运营企业不得将其接入公共电信网。
五、各省(自治区、直辖市)通信管理局、公安、工业和信息化、住房和城乡建设、市场监管部门要加强对商务楼宇宽带接入市场违法行为的监管和处罚。
通信管理局会同住房和城乡建设部门对电信运营企业或其代理商与商务楼宇产权人及其委托的管理人、物业服务企业达成排他性协议或约定,以及限制平等接入等行为进行查处。通信管理局依法对无证经营、超范围经营电信业务等违规行为进行查处。住房和城乡建设部门、通信管理局依照职责加强对商务楼宇建设单位、设计单位、施工图审查机构的监督管理。市场监管部门依法对相关市场主体存在的商业贿赂不正当竞争、价格违法等行为进行查处,涉嫌构成垄断行为的,严格依法处理。对以暴力、威胁手段,强迫他人接受指定电信业务服务,或者强迫电信运营企业及其业务代理退出电信业务服务,情节严重,涉嫌强迫交易罪或者其他犯罪的,由公安机关依法严厉打击。
特此通告。
工业和信息化部
公安部
住房和城乡建设部
国务院国有资产监督管理委员会
国家市场监督管理总局
2020年9月30日
首先想到的是找通信管理局投诉,于是找到http://bjca.miit.gov.cn/n817064/n817255/n1096242/index.html这个地址,提交投诉,一直没消息。这个页面做得也很应付事儿,完全没有必要强制限制用户阅读条款,等待那么长时间才能点确认投诉,而且我提交了之后查询结果还要再等一遍。
后来,找到了工信部的投诉,在首页http://www.nsae.miit.gov.cn/点“电信申诉”跳到这里https://yhssglxt.miit.gov.cn/web/,下面有个各省局,选北京之后又回到了北京通信管理局。
其实,点顶部导航的“用户投诉”就对了,填写到投诉对象的时候,我发现我找不到现在的运营商,于是转念一想,既然我想接入联通,就投诉联通吧。
没想到,工信部这个响应挺快,联通很快就来电话了,最终指派到了附近的营业厅来处理。
接下来的进展后面再写。
有搞开发的同事庆幸gitee速度很快,但也有同事提醒github打包下载代码更快。
找有用的新的项目肯定还是github优先,当github被限速越来越严重的时候,获取好项目的机会就越来越低,何况,自己的网连阿里云都会很慢,这样的办公条件有什么好庆幸的呢?
尽管我也不怎么在github上贡献代码,至少还点个真实的star,我不想在一个充斥者虚假的商业开源代码的gitee上浪费太多时间。