安装
应用
Tag xxx invalid in Entity
$html_dom = new DOMDocument();
//关闭h5标签可能的报错
libxml_use_internal_errors(true);
$html_dom->loadHTML($html5);
$html_dom = new DOMDocument();
$html_dom->loadHTML('<?xml encoding="UTF-8">'.$html);
PHP的DOM内部是utf8机制的,在loadHTML时,是通过检查字符中meta的charset来设置编码的,如果没有charset,就当iso8859进行处理了,而这种情况下进行saveXML时,输出来的却是utf8,所以就看到乱码了.
对不包含<meta>标签和<body>标签的富文本字符串处理特别有用
相关文章
内存优化总结:ptmalloc、tcmalloc和jemalloc
支持的软件
Redis,默认使用jemalloc
Mysql
LD_PRELOAD=/usr/local/lib/libjemalloc.so@
MariaDB
LD_PRELOAD=/usr/local/lib/libjemalloc.so@
Jemalloc
LD_PRELOAD=/usr/local/lib/libjemalloc.so@
Nginx
--with-ld-opt='-ljemalloc'
Openrestry
--with-ld-opt='-ljemalloc -Wl,-u,pcre_version'
Tengine
--with-jemalloc
接手一个laravel项目,使用ftp上传报错如下
`ftp_rawlist(): php_connect_nonb() failed: Operation now in progress (115)`
原因配置文件中选项没有写全
'driver' => 'ftp',
'host' => '*******',
'port' => 21,
'username' => '*******',
'password' => '*******',
'passive' => false, //此选项需要加
'ignorePassiveAddress' => true, //此选项需要加
参考文章
How to fix `ftp_rawlist(): php_connect_nonb() failed: Operation now in progress (115)`
原理解析
有时间补充
报错如下
500 Illegal PORT command.
配置项改为true
'passive' => true,
计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,遗憾的是,这句经典的名言出处无从考证
参考文章
计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决
现实例子
各种中间件,比如分库分表中间件
重启可以解决计算机系统99%的问题
现实例子
比如iphone系统卡死
运行在用户空间的应用软件,通过控制Linux内核netfilter模块,来管理网络数据包的处理和转发。iptables 支持内核2.4以上版本,旧版内核环境下则使用ipchains(于2.2版内核)或 ipwadm(于2.0版内核)完成类似的功能。2014年1月19日起发行的Linux内核3.13版则使用nftables取而代之,但仍然提供 iptables 命令做为兼容接口
CentOS 7.0默认使用的是firewall作为防火墙,启用iptable,
iptable需要先关闭firewall并禁止开启自启
service firewalld stop
systemctl disable firewalld.service #禁止firewall开机启动
#安装iptable
yum install iptables-services
service iptables start #开启
systemctl enable iptables.service #设置防火墙开机启动
应用场景
指令选项
iptables -L -F -A -D # list flush append delete
场景一
开放 tcp 10-22/80 端口 开放 icmp 其他未被允许的端口禁止访问
iptables -I INPUT -p tcp --dport 80 -j ACCEPT # 允许 tcp 80 端口
iptables -I INPUT -p tcp --dport 10:22 -j ACCEPT # 允许 tcp 10-22 端口
iptables -I INPUT -p icmp -j ACCEPT # 允许 icmp
iptables -A INPUT -j REJECT # 添加一条规则, 不允许所有
场景二
ftp: 默认被动模式(服务器产生随机端口告诉客户端, 客户端主动连接这个端口拉取数据) vsftpd: 使 ftp 支持主动模式(客户端产生随机端口通知服务器, 服务器主动连接这个端口发送数据)
iptables -I INPUT -i lo -j ACCEPT # 允许本机访问
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许访问外网
iptables -I INPUT -p tcp --dport 80 -s 10.10.188.233 -j ACCEPT # 只允许固定ip访问80
场景三
允许外网访问: web http -> 80/tcp; https -> 443/tcp mail smtp -> 25/tcp; smtps -> 465/tcp pop3 -> 110/tcp; pop3s -> 995/tcp imap -> 143/tcp
iptables -I INPUT -i lo -j ACCEPT # 允许本机访问
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许访问外网
iptables -I INPUT -s 10.10.155.0/24 -j ACCEPT # 允许内网访问
iptables -I INPUT -p tcp -m multiport --dports 80,1723 -j ACCEPT # 允许端口, 80 -> http, 1723 -> vpn
iptables -A INPUT -j REJECT # 添加一条规则, 不允许所有
iptables-save # 保存设置到配置文件
场景四
nat 转发
iptables -t nat -L # 查看 nat 配置
iptables -t nat -A POST_ROUTING -s 10.10.177.0/24 -j SNAT --to 10.10.188.232 # SNAT
vi /etc/sysconfig/network # 配置网关
iptables -t nat -A POST_ROUTING -d 10.10.188.232 -p tcp --dport 80 -j DNAT --to 10.10.177.232:80 # DNAT
场景五
防CC攻击
iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT # 限制并发连接访问数
iptables -I INPUT -m limit --limit 3/hour --limit-burst 10 -j ACCEPT # limit模块; --limit-burst 默认为5
相关文章
众所周知,在RHEL7系统中,firewalld防火墙取代了iptables防火墙。我们都知道iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是交由内核层面的nftables包过滤框架来处理。
下面一张图,让大家明确的了解防火墙 Firewall 与 iptables 之间的关系与区别。
相较于iptables防火墙而言,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。
firewalld跟iptables比起来至少有两大好处:
相关文章
相关文章