执行 fc-cache -fv
命令的时候报 -bash: fc-cache: command not found
错误,需要安装 fontconfig
解决。
CentOS:
yum install fontconfig -y
Ubuntu/Debian
apt-get install fontconfig
执行 fc-cache -fv
命令的时候报 -bash: fc-cache: command not found
错误,需要安装 fontconfig
解决。
CentOS:
yum install fontconfig -y
Ubuntu/Debian
apt-get install fontconfig
NodeQuery.com 是一款Linux服务器监控工具,每个账号提供10个免费监控额度,监控在线率、CPU、内存、网络等使用情况并以网页的形式反馈出来,服务器的当前状况一目了然。
然而这么好的一款工具,今年出现多次服务器宕机、网站SSL证书过期和服务器时间不正确、经常误报等严重问题,说明了NodeQuery产品并没有得到重视,个人建议抛弃使用。
卸载 NodeQuery脚本:
rm -rf /etc/nodequery && (crontab -u nodequery -l | grep -v "/etc/nodequery/nq-agent.sh") | crontab -u nodequery - && userdel nodequery
近日,OpenSSL发布官方通告,披露了一个OpenSSL拒绝服务漏洞,该漏洞编号为CVE-2020-1971,漏洞等级为高危。
该漏洞会影响业务/功能正常运行,建议受影响的客户及时将OpenSSL升级到安全版本,避免遭受恶意攻击。
漏洞描述
OpenSSL GENERAL_NAME_cmp 存在拒绝服务漏洞,当两个GENERAL_NAME都包含同一个EDIPARTYNAME时,由于GENERAL_NAME_cmp函数未能正确处理,从而导致空指针引用,并引起程序崩溃导致拒绝服务,会影响业务/功能正常运行。
风险等级
高危
影响版本
OpenSSL 1.1.1-1.1.1h
OpenSSL 1.0.2-1.0.2w
修复建议
将 OpenSSL 升级至1.1.1i版本
https://www.openssl.org/source
使用 NGINX 官方源安装,启动程序发现 Systemd 中存在报错:Can't open PID file /var/run/nginx.pid (yet?) after start: No such file or directory
● nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2020-12-10 03:35:04 MSK; 8s ago
Docs: http://nginx.org/en/docs/
Process: 9226 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS)
Process: 9229 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 9230 (nginx)
CGroup: /system.slice/nginx.service
├─9230 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
└─9231 nginx: worker process
Dec 10 03:35:04 vm228965.u83712.kvm.centos.7.64 systemd[1]: Stopped nginx - high performance web server.
Dec 10 03:35:04 vm228965.u83712.kvm.centos.7.64 systemd[1]: Starting nginx - high performance web server...
Dec 10 03:35:04 vm228965.u83712.kvm.centos.7.64 systemd[1]: Can't open PID file /var/run/nginx.pid (yet?) after start: No such file or directory
Dec 10 03:35:04 vm228965.u83712.kvm.centos.7.64 systemd[1]: Started nginx - high performance web server.
原因是Nginx 启动时 PID 文件并未生成,导致文件无法读取
知道问题如何产生,自然就有了解决办法。在 /usr/lib/systemd/system/nginx.service
中添加如下语句即可,作用是在执行可执行文件前等待 0.1s 。
ExecStartPost=/bin/sleep 0.1
添加后 /usr/lib/systemd/system/nginx.service
如下:
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPost=/bin/sleep 0.1
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
然后重新加载配置、启动
systemctl daemon-reload
systemctl restart nginx
问题修复。
可以新建一个ActionFilterAttribute来实现:
public class JsonCallbackAttribute : ActionFilterAttribute
{
private const string CallbackQueryParameter = "callback";
public override void OnActionExecuted(HttpActionExecutedContext context)
{
var callback = string.Empty;
if (IsJsonp(out callback))
{
var jsonBuilder = new StringBuilder(callback);
jsonBuilder.AppendFormat("({0})", context.Response.Content.ReadAsStringAsync().Result);
context.Response.Content = new StringContent(jsonBuilder.ToString());
}
base.OnActionExecuted(context);
}
private bool IsJsonp(out string callback)
{
callback = HttpContext.Current.Request.QueryString[CallbackQueryParameter];
return !string.IsNullOrEmpty(callback);
}
}
使用例子:
[JsonCallback]
public IEnumerable<User> User()
{
return _user;
}
1、安装最新的chrome dev包和字体以支持主要字符集(中文、日语、阿拉伯语、希伯来语、泰语和其他一些字符集)
apt-get update \
&& apt-get install -y wget gnupg \
&& wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
&& sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \
&& apt-get update \
&& apt-get install -y google-chrome-stable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 libxtst6
关于国内无法访问 dl-ssl.google.com(被墙了)的解决方法:
把 https://dl-ssl.google.com/linux/linux_signing_key.pub 修改为本站提供的 https://down.24kplus.com/linux/google/linux_signing_key.pub 即可。
2、在部署 Puppeter 时可以指定路径,取消chromium下载(可选)
browser.launch({executablePath: 'google-chrome-stable'})
3、安装TTF-MSCoreFonts-Installer字体包(可选)
apt install cabextract libmspack0 xfonts-encodings xfonts-utils
wget http://httpredir.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.8_all.deb
sudo dpkg -i ttf-mscorefonts-installer_3.8_all.deb
4、更新字体缓存
mkfontscale
mkfontdir
fc-cache -fv
linux 系统可能没有自带 ping 工具。当用到 ping 如果没有安装就会出现 --bash: ping: command not found
,需要我们自己安装。
yum install iputils -y
apt-get install inetutils-ping -y
linux 系统可能没有自带 ifconfig 工具。当用到 ifconfig 如果没有安装就会出现 --bash: ifconfig: command not found
,需要我们自己安装。
yum install net-tools -y
apt install net-tools -y
只需要将 Docker 添加到 firewalld 的 trusted 组即可。
执行:
firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --reload
解决执行 pecl upgrade-all
提示 Error getting channel info from pear.php.net: Connection to `ssl://pear.php.net:443' failed:
和 Connection to 'ssl://pecl.php.net:443' failed: Unable to find the socket
错误。
出现这个错误主要是因为缺失默认证书导致的,具体原因不明。
下面说一下解决方案:
php -r "print_r(openssl_get_cert_locations());"
wget -P /etc/ssl/ http://curl.haxx.se/ca/cacert.pem
chmod 744 /etc/ssl/cacert.pem
注意:其中 /etc/ssl/cacert.pem 替换为自己的真实路径