[wordpress]wordpress升级失败解决办法

从很早开始,Wordpress就一直提升升级失败。最近站点被植入了木马程序只好重新安装。

重装之前那使用Duplicator插件导出之后可以很方便再次导入,浏览信息,图片等都会保存。

为了安全,不得不考虑升级Wordpress版本,过程中要不就是ftp登录不上,要不就是提示解码失败。于是开始寻找其他方案,没想到如此简单。

下载最新版之后解压到临时目录中,将wp-content目录删掉之后,其他所有文件及目录覆盖到原始wp目录。这样,再次登录之后会弹出更新数据库,点击确定即可完成升级。

You can also use the same methord to upgrade the Themes or other plugins. For example, if you want to upgrade one of you themes, just download the latest version and unzip is to wp-content/themes/. After refreshing, the new theme will appear in your site.

[Linux]RV1126 多pdm mic + 回采输入配置

由于RV1126 kernel驱动已经包含多数字mic及各种i2s输入,因此只需要针对dts进行配置。
如果是仅仅需要8mic pdm,则修改声卡使用pdm array就行。
同时需要pdm为okay及设定对应的pin(通道数),默认启用3pin(6声道)。
如果是需要多mic+2 路i2s回采输入,此时需要按照rk文档使用multi dais(启动multi dais可能回编译出错,需要联系rk提供patch),我的回采使用的是ES7243E,单芯片可以同时采两个声道,满足要求。
dts配置如下:
ip_dais: ip-dais {
status = “okay”;
compatible = “rockchip,rv1126-multi-dais”, “rockchip,multi-dais”;
#sound-dai-cells = <0>;
dais = <&i2s2_2ch>, <&pdm>;
capture,channel-mapping = <2 6>; #可以调整Mic与回采的顺序及通道数
playback,channel-mapping = <0 0>;
};
my_sound: my-sound {
status = “okay”;
compatible = “simple-audio-card”;
simple-audio-card,name = “rockchip,my_sound”;
simple-audio-card,format = “i2s”;
simple-audio-card,mclk-fs = <256>;
simple-audio-card,cpu {
sound-dai = <&ip_dais>;
};
simple-audio-card,codec {
sound-dai = <&es7243e>;
};
};
正常配置重启之后,执行arecord -L会显示有一个叫“my_sound”的声卡设备,说明配置成功。

[wordpress]另一个wordpress站点好像被黑了

好久没有打开另外一个WP站点了,今天打开一看竟然显示

error establishing a database connection

于是马上ssh过去一看,wp-config.php中数据库的信息全都被改了,地址指向一个德国的ip,怀疑当了肉鸡。

问题来了,如何反差对方是如何入侵并修改我的配置文件的。

[Linux]最近遇到的奇怪的不同平台编译相同代码生产的elf运行不一致问题

在不同的平台上(virtualbox/vmware/windowssubsystem),编译出的elf运行不一致,有的平台运行之后一直高频率进input dma中断。

查看主要的库版本,libc libm等版本一致,操作系统为ubuntu,大版本一致,小版本有差别。从现象上看怀疑工具链在不同平台运行有问题。

后来平台编译信息对比,发现最后的链接顺序不一样。正常的平台按照异常的平台的链接顺序编译的话,也是无法运行。

由于问题跟中断有关,无法用gdb进行单步跟踪,只好用其他方法。

中断分析:
正常状态下,input dma中断为10ms一次(100hz),发现出问题时dma的中断频率为(730hz)。之后发现另外的一个现象,修改某个函数的代码,之前正常的平台编译出来的elf运行也是730hz。 两个不同的行为出现了相同的现象。

于是,要来了DMA与dma搬运数据的codec模块寄存器表,发现dma一切正常,但是codec异常,寄存器全部为默认值。此时开始怀疑模块没有初始化。后来跟踪代码发现,codec模块初始化是由一个判断控制。这个判断用于一个power模块,而这个模块又没有使用。此时这个判断会从0地址去获取数据用于判断。

由于不同的链接顺序下,0地址的代码并不一致,从而导致的不同平台的不同表现。至于修改某个函数的代码也会出现,恰恰是这个函数被链接到了0地址,从而也引发了相应的现象。

现在回头想的话,在修改代码也出现问题的时候,应该去怀疑对应的地址的变化会导致出问题。当然最终定位还是需要看寄存器的相关信息。

 

[python] flask + ngnix

文本记录了当使用python+flask的应用时,如何配合ngnix实现通过80端口访问,从而也就可以使用域名直接访问python app。

https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uswgi-and-nginx-on-ubuntu-18-04

评论中有502错误解决方法。

如果有多个app,virtualenv可以共用,只要在service的路径里面写上实际路径即可

virtualenv webprojectenv

source webprojectenv/bin/activate

502

For those that have the 502 gateway error try changing chmod-socket = 660

uwsgi_pass unix:///home/sammy/myproject/myproject.sock;

 

假设目录为test1

运行create.sh

createsh test1
source myprojectenv/bin/activate
增加.py or template

测试是否正常

  1. uwsgi –socket 0.0.0.0:5000 –protocol=http -w wsgi:app

 

如下代码存为create.sh, 即使目录存在,也可以使用此脚本重新配置

if [ $# -ne 1 ]
then
echo “Error input, must be a project name”
exit
fi

NAME=$1
DIRNAME=$1
echo $NAME
mkdir ${NAME}
#NAME=$1/$1
echo “[uwsgi]” > ${NAME}.ini
echo “module = wsgi:app” >> ${NAME}.ini
echo “” >> ${NAME}.ini
echo “master = true” >> ${NAME}.ini
echo “processes = 1” >> ${NAME}.ini
echo “”>>${NAME}.ini
echo “socket = ${NAME}.sock”>>${NAME}.ini
echo “chmod-socket = 666”>>${NAME}.ini
echo “vacuum = true”>>${NAME}.ini
echo “”>>${NAME}.ini
echo “die-on-term = true”>>${NAME}.ini
mv ${NAME}.ini $DIRNAME/

echo “============================”
echo “from ${NAME} import app” > wsgi.py
echo “”>>wsgi.py
echo “if __name__ == \”__main__\”:”>>wsgi.py
echo ” app.run()” >> wsgi.py
mv wsgi.py $DIRNAME
cp ./dict/webprojectenv $DIRNAME -rf

echo “============================”
echo “[Unit]”> ${NAME}.service
echo “Description=uWSGI instance to serve ${NAME} api”>>${NAME}.service
echo “After=network.target”>>${NAME}.service
echo “[Service]”>>${NAME}.service
echo “User=sunny”>>${NAME}.service
echo “Group=www-data”>>${NAME}.service
echo “WorkingDirectory=/home/sunny/webproject/${NAME}”>>${NAME}.service
echo “Environment=\”PATH=/home/sunny/webproject/${NAME}/webprojectenv/bin\””>>${NAME}.service
echo “ExecStart=/home/sunny/webproject/${NAME}/webprojectenv/bin/uwsgi –ini ${NAME}.ini”>>${NAME}.service
echo “[Install]”>>${NAME}.service
echo “WantedBy=multi-user.target”>>${NAME}.service
echo “============================”
mv ${NAME}.service $DIRNAME/
sudo cp ./${DIRNAME}/${NAME}.service /etc/systemd/system
sudo cp ./${DIRNAME}/${NAME}.service /etc/systemd/system
sudo systemctl start ${NAME}
sudo systemctl enable ${NAME}
sudo systemctl status ${NAME}
sudo systemctl restart nginx

[python] flask jinja HTML模板语法记录

Flask使用的是jinja模板,记录一下常用的语法

判断传入的dict/list是否为空
{% if input%}
定义一个变量值
{%set a = 0%}
获取输入list length
{%set a = (phr)|length%}
list循环
{% for row in input%}
{{row}}
{% endfor %}
dict打印
{% for k,v in input.items() %}
{{k}}
{{v}}
{% endfor %}
或者
{% {{input[‘key’]}}%}

if判断
{% if (a)>=16 %}
{% elif (a)<0 %}
{% else%}
{% endif%}
for循环
{% for a in range(0,10,2)%}
{% endfor %}
字符串拼接
{%set url = “https://sunjw.cn/html5/flight/swift/domestic/” ~ “AAA” ~ row[0] %}

循环里自加计数
{% set count = namespace(value=0) %}
{% for i in p %}
{{ count.value }}
{% set count.value = count.value + 1 %}
{% endfor %}

[python]使用苹果自带的快捷方式实现常用青岛公交查询

青岛工具查询的方式有多种,我经常使用的是微信小程序中的“青岛工具查询”。因为每天早晨上班都要查公交到哪一站便于出门,但是这种查询方式有点麻烦,于是就有了此方法。

我使用了青岛新闻网的公交查询接口,http://bus.qingdaonews.com/m/

http://bus.qingdaonews.com/m/detail.php?rid=128&isjson=1   用于查询128路所有站点名称及站名id及segment id,站名id与segment id用于后面具体的车辆位置查询。

http://bus.qingdaonews.com/m/detail_ajax.php?rid=128&smid=8525754&id=27
用于查询具体的最近的两辆公交信息,如果直接输入浏览器效果如下

理论上来说,将上述地址写到苹果的快捷方式里面的web-Get contents of URL就可以拿到信息了,但是这样可读性太差,于是我在我的vps上把返回数据格式变了一下,然后,跟默认只查询2辆车不同,我查询了两次,从而实现了最近的4辆车的信息的返回。

最后可以使用快捷方式里面的获取字典或者列表的方式将数据拿到通过弹出对话框显示。
最终结果如下:

[Website]建一个网站需要哪些资源《五,如何申请免费ssl》

SSL(Secure Sockets Layer)是一个http浏览加密协议,可以保证浏览器跟你浏览网站的服务器端加密传输。也就是你平常看到的带有https的网址。

大部分提供SSL证书都是收费的,但是网上也有少数提供免费SSL服务的运营商,比如国内的腾讯。https://buy.cloud.tencent.com/ssl?fromSource=ssl 

登录之后只需一步一步来就可以,最后一个验证方式我使用的是文件验证,及传一个文件到你网站的根目录,一段时间后系统会自动检测。成功之后会告知你证书下载地址。

 

如果你使用IIS,也可以参考月光博客的文章来申请。

https://www.williamlong.info/archives/5401.html