解决 WP 图像后期处理失败,可能是服务器忙或没有足够的资源。请尝试上传较小的文件。推荐的最大尺寸为2500像素。

我的服务器是NGINX,所以先查看NGINX的错误日志

tail /var/log/nginx/error.log -n 10

上传一次大图像,然后看日志最后一条的信息是

2021/04/23 10:17:11 [error] 212420#212420: *166782 client intended to send too large body: 6849556 bytes, client: 120.85.112.147, server: zuoridangnian.com, request: “POST /wp-admin/async-upload.php HTTP/1.1”, host: “zuoridangnian.com”, referrer: “https://zuoridangnian.com/wp-admin/upload.php”

错误是:

client intended to send too large body

解决办法是:

在NGINX配置文件中添加

client_max_body_size 80m;

添加在 server 内对单独网站生效,添加在 http 块中对所有网站生效

如果你的服务器错误日志中是其它错误,就查其它的解决办法

rufus 写入镜像中途停止后

u盘会无法使用,下载diskgenius,选择u盘,磁盘-》重建主引导记录(mbr),然后新建分区就可以了

Piwigo 下载一个相册所有图片的方法

安装插件 Batch Downloader

然后在相册页的工具栏中找到一个“图标”,我的是最右边那个小小的长方形条条,不注意可能看不到。。。

然后就可以下载各个尺寸图像的zip文件了

PS 图片一键白底动作

拍出来的原图是这样的

打开PS,在 窗口 处打开 动作 窗口,新建一个动作

apache pagespeed配置

apache:

<IfModule pagespeed_module>
    ModPagespeed on
    ModPagespeedEnableFilters inline_css
    ModPagespeedEnableFilters lazyload_images
    AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html
    ModPagespeedEnableFilters convert_gif_to_png
    ModPagespeedEnableFilters convert_jpeg_to_progressive
    ModPagespeedEnableFilters convert_jpeg_to_webp
    ModPagespeedEnableFilters convert_png_to_jpeg
    ModPagespeedEnableFilters convert_to_webp_lossless
    ModPagespeedEnableFilters inline_images
    ModPagespeedEnableFilters recompress_images
    ModPagespeedEnableFilters recompress_jpeg
    ModPagespeedEnableFilters recompress_png
    ModPagespeedEnableFilters recompress_webp
    ModPagespeedEnableFilters jpeg_subsampling
    ModPagespeedEnableFilters remove_comments 
    ModPagespeedEnableFilters Combine_css
    ModPagespeedEnableFilters rewrite_javascript,rewrite_css
    ModPagespeedEnableFilters collapse_whitespace,elide_attributes
    ModPagespeedFileCacheInodeLimit 500000
    ModPagespeedFileCachePath "/var/cache/mod_pagespeed/"
</IfModule>

必应每日壁纸官方软件

下载地址:

Explore the world one photo at a time | Bing Wallpaper

每日自动更新,还可以切换到前几天的壁纸

Xshell设置秘钥登录并使用rz上传文件

scp又出毛病了,百度了一圈发现可以用Xshell+rz上传

xshell 下载链接: Free for Home/School – Xshell and Xftp Free Licensing。填写邮箱查收下载链接

打开xshell ,填好ip后在用户身份验证处选择 public key

选择导入,选择生成好的 id_rsa文件就好了

连上服务器后输入 rz ,就可以选择文件上传

解决Debian 升级到testing后无法输入中文

原本直接安装的腾讯云的Debian版本是能输入中文的,有中文字体,升级到testing后无法在远程中输入中文

重新配置 locales 软件包:

dpkg-reconfigure locales

然后用方向键移动,空格键选择上 en_US 开头的几个选项和 zh_CN 开头的几个选项

然后tab键选择 ok ,然后选择默认语言,选择 en_US UTF-8

即可

Ubuntu 20.04 Server装完系统需要做的一些事

打开ufw

ufw allow OpenSSH ## 打开SSH端口

ufw enable ## 启动 ufw

ufw status ## 查看 ufw 状态

ufw allow 8888/tcp ## 放行8888端口

安装pip

apt install python3-pip
pip3 config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple

安装lamp

apt install apache2
apt install mysql-server ##mariadb-server

安装PHP

apt install php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
systemctl restart apache2

设置mysql

mysql_secure_installation

mysql

创建数据库
CREATE DATABASE zrdn DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

创建用户
CREATE USER 'zrdn'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

给权限
GRANT ALL ON zrdn.* TO 'zrdn'@'%';

安装certbot自动配置HTTPS证书

snap install core; sudo snap refresh core
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
certbot --apache

ufw 放行 apache 端口

ufw allow in "Apache Full" ## 80/443

添加用户

adduser sammy

usermod -aG sudo sammy ## 给 sudo 权限

配置用户执行sudo命令不用输入密码

1.配置单用户不用输入密码

linuxconfig ALL=(ALL) NOPASSWD:ALL

2.配置所有sudo组的用户不用输入密码

%sudo   ALL=(ALL:ALL) NOPASSWD:ALL

Chevereto Nginx重写规则

nginx服务器需要先设置好重写规则,才能安装,否则下载好安装包,安装路径会显示404

重写规则:

# Context limits
client_max_body_size 20M;

# Disable access to sensitive files
location ~* (app|content|lib)/.*\.(po|php|lock|sql)$ {
    deny all;
}

# Image not found replacement
location ~ \.(jpe?g|png|gif|webp)$ {
    log_not_found off;
    error_page 404 /content/images/system/default/404.gif;
}

# CORS header (avoids font rendering issues)
location ~ \.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
    add_header Access-Control-Allow-Origin "*";
}

# Pretty URLs
location / {
    index index.php;
    try_files $uri $uri/ /index.php$is_args$query_string;
}

https://v3-docs.chevereto.com/setup/requirements.html#nginx-url-rewriting

Chevereto程序下载:https://download.fastgit.org/Chevereto/Chevereto-Free/archive/1.3.0.zip

获取WP网站内文章中失效的图片

import mysql.connector
import re
import requests
connection = mysql.connector.connect(host='localhost',
                                     database='wordpress',
                                     user='root',
                                     password='')

sql_select_Query = "select post_content,ID,post_title from wp_posts where post_status='publish' and post_type='post'"
cursor = connection.cursor()
cursor.execute(sql_select_Query)
# get all records
records = cursor.fetchall()

p = re.compile(r'<img.+?src=[\'"]([^\'"]+)[\'"].*?>')
fw=open('urls.txt','w', encoding='utf-8')
images = []

for i in records:
    # print(i[0])
    urls = p.findall(i[0])
    if len(urls):
        for url in urls:
            if(requests.get(url).status_code!=200):
                print(url)
                fw.write(str(i[1]) + ' ' + i[2] + '\n')
                fw.write(url + '\n')

WordPress错误:[] cURL error 60: SSL certificate problem: unable to get local issuer certificate

原因:SSL证书缺少根证书

如果你是自己上传的证书,那就是只设置了秘钥和域名证书

如果下载的SSL证书有三个文件

ca_bundle.crt 根证书

certificate.crt 域名证书

private.key 秘钥

如果是Apache服务器,则是这样设置

SSLEngine                on
SSLCertificateFile       /etc/ssl/certificate.crt
SSLCertificateKeyFile    /etc/ssl/private.key
SSLCertificateChainFile  /etc/ssl/ca_bundle.crt

如果是Nginx服务器,则要把 certificate.crt 和 ca_bundle.crt 文件合并

cat certificate.crt ca_bundle.crt  certificate.crt

然后这样设置

ssl                  on;
ssl_certificate      /etc/ssl/certificate.crt; 
ssl_certificate_key  /etc/ssl/private.key;
    

Ubuntu 彻底卸载数据库

首先在终端中查看MySQL的依赖项

dpkg --list|grep mysql

卸载

apt-get remove mysql-common

清除残留数据

dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P

继续查找安装的相关包,卸载

dpkg --list|grep mysql

WordPress网站每天定时备份到百度网盘

我之前写过一个备份到百度网盘的办法,适用于Windows,是使用filegee这个软件加Windows自己的定时任务。现在我服务器切换到Linux来了,所以就找了个能在linux下运行的工具。就是它——houtianze/bypy: Python client for Baidu Yun (Personal Cloud Storage) 百度云/百度网盘Python客户端

这个工具用起来更加简单,且在任意平台都能使用,只要安装Python即可

怎么安装Python和pip就不解释了,然后直接用pip安装bypy

pip install bypy

安装好后,执行任意命令,验证账号,比如执行 bypy list ,然后打开生成的验证链接,看到验证码后复制到终端里即可

之后就可以执行上传等命令了

bypy upload 是上传

bypy mkdir 是创建目录

然后编写一个脚本,定时执行就行了

对了,在服务器内上传到百度盘的速度取决于你的服务器带宽,5MB的带宽每秒上传800kb左右,如果你是1、2MB的带宽并且网站很大的话,上传要很长时间的

#!/bin/bash

rm -rf /root/backuptemp

mkdir /root/backuptemp ## 创建临时目录
## tar打包网站根目录,并且分卷压缩
tar --warning=no-file-changed -zcf - /www/wwwroot/zuoridangnian.com |split -d -b 100m - /root/backuptemp/$(date +%Y-%m-%d).tar.gz. 
## 导出数据库
mysqldump -uroot -p123456 zrdn > /root/backuptemp/zrdn.sql
## 用当前日期创建一个目录
bypy mkdir $(date +%Y-%m-%d)
## 上传网站内容和数据库到这个目录
bypy upload /root/backuptemp $(date +%Y-%m-%d)
## 删除临时文件夹
rm -rf /root/backuptemp

然后在crontab中创建好定时任务,怎么使用crontab自行谷歌,或者像我一样图方便,直接在宝塔后台创建一个定时任务,然后将脚本复制进去就好了!非常方便

每日凌晨两点准时备份,免费享受百度网盘2TB容量,岂不美哉!

至于百度盘的下载速度,在客户端设置里打开下载提速,速度也不慢呀

不少人老吐槽百度、腾讯,依我看,它们也都是有一些不错的服务的,像百度网盘,全世界还找有第二个免费容量到2TB的网盘吗?没有了吧,国外dropbox、谷歌盘虽然快,但是容量却只有区区2GB、15GB。至于腾讯,腾讯云也算是国内最实惠的云服务商了吧,价格亲民,我能在国内用到5MB带宽的服务器也得感谢腾讯云了(* ̄︶ ̄)

WordPress批量给以前没有特色图片的文章添加特色图片

这里用到的插件是【Quick Featured Images】——Quick Featured Images – WordPress plugin | WordPress.org

安装启用后,可以在左侧找到【特色图片】,打开后选择第一个

选择第一个是添加一个特色图片,选择2是设置多个特色图片然后从中随机设置特色图片

这里我选第一个,我随便到网上搜了张Debian的图片,想把它设置到所有有Debian标签的文章上

点击最下方的下一页

然后添加过滤器,设置仅为没有特色图片的文章添加特色图片,在下面选择按照标签过滤文章,然后进入【下一页】

选择好标签后点击预览过滤

然后下一页就列出了符合条件的文章

选择应用即可。

批量设置完成