配置环境:ubuntu16.04/apache2
Ubuntu16.04服务器环境下:
一、建立脚本文件:

直接在ipfinal.writelines()生成需要的内容行。

二、执行脚本文件:

在目录下获得一个 ip.txt,里面已经有了相应国家的访问IP列表

把里面的内容复制到.htaccess里好了。

自动获取IP的脚本来自:https://github.com/hanbang-wang/APNIC-IPs

又配置了一台邮件服务器,使用环境

postfix dovecot mysql ubuntu 18.04

主要是记录下添加DKIM记录的注意事项:

参考:https://linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql/
https://www.linode.com/docs/email/postfix/configure-spf-and-dkim-in-postfix-on-debian-8/
上一篇:[Mark]邮件服务器添加SPF、DKIM、DMARC、PTR提高送达率

已经是2年前了,postfix和opendkim的很多配置文件都有一定的变化。

本次安装主要在
SOCKET=”local:/var/spool/postfix/opendkim/opendkim.sock”
路径上浪费了大半天。
mail.log里显示:local /opendkim/opendkim.sock no such file or directory

以下是本次记录的主要问题:

/etc/opendkim.conf
/etc/default/opendkim

注意上面两个文件中
SOCKET 的路径是否统一
SOCKET=”local:/var/spool/postfix/opendkim/opendkim.sock”
下面文件的local路径也需要统一。
/etc/postfix/main.cf
smtpd_milters = local:/var/spool/postfix/opendkim/opendkim.sock
non_smtpd_milters = local:/var/spool/postfix/opendkim/opendkim.sock
另外就是注意文件夹和文件的权限:
/run/opendkim
/var/spool/postfix/opendkim
必须归属于opendkim用户

mysql5.7版本,默认root禁止通过phpmyadmin使用密码登录的。

所以,新装完MySQL和phpmyadmin以后,如果使用root登录,会出现以下提示信息:

最近简单的解决方法就是在服务器命令行下直接操作新增一个完全权限的账户:

老是要用到过滤器,记录一下:

abs
取绝对值
batch

capitalize
convert_encoding
date
指定日期时间格式

date_modify

default
escape
first
format
join
json_encode
keys
last
length
lower
merge
nl2br
number_format
raw
replace
替换指定的字符,单个格式:|replace({‘要替换的字符’:”替换后的字符”});多个替换:|replace({‘要替换的字符’:”替换后的字符”,’要替换的字符2′:”替换后的字符2″})

reverse
round
slice
sort
split
striptags
去除 HTML 和 PHP 标记,只保留文本。

title
trim
upper
url_encode


文档:
https://twig.symfony.com/doc/2.x/ 
参考:
https://www.cnblogs.com/kuyuecs/p/4428717.html

1.SPF
SPF 记录是一种域名服务 (DNS) 记录,可确定允许哪些邮件服务器代表您的域来发送电子邮件。

SPF的设置选项可以参考:http://www.openspf.org/SPFRecordSyntax

这里说几个常用的:

a:所有该域名的A记录都为通过,a不指定的情况下为当前域名
ip4:指定通过的IP
mx:mx记录域名的A记录IP可以发邮件
all:结束标志,“-”表示只允许设置的记录为通过,“~”表示失败,通常用于测试,“+”表示忽略SPF
例如我的:v=spf1 a mx -all,则表示允许A记录和MX记录IP收发邮件。添加的方法是在域名DNS解析设置一个txt记录,主机记录为空或者@,记录值为v=spf1 a mx -all,其他可以忽略。

2.DKIM
DomainKeys Identified Mail的缩写,域名密钥识别邮件标准。

下载安装EPEL:

64 bit:

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
32 bit:

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
安装opendkim:

yum install opendkim
生成DKIM key (修改红色部分域名)

# 请替换下面的域名
export domain=lomu.me

mkdir /etc/opendkim/keys/$domain

cd /etc/opendkim/keys/$domain

opendkim-genkey -d $domain -s default

chown -R opendkim:opendkim /etc/opendkim/keys/$domain

echo “default._domainkey.$domain $domain:default:/etc/opendkim/keys/$domain/default.private” >> /etc/opendkim/KeyTable

echo “*@$domain default._domainkey.$domain” >> /etc/opendkim/SigningTable
生成之后打开/etc/opendkim/keys/domain.com/default.txt,里面就是DKIM key,需要添加到DNS,主机记录为default._domainkey,记录值为括号里面的(去掉引号)。

修改openDKIM设置

vi /etc/opendkim.conf
1. 将Mode 改为 Mode sv 2. 将Domain 改为 Domain lomu.me(lomu.me是之前设置的域名) 3. 将所有变量前面的#去掉,但是KeyFile、Statistics加上# 4. 再把SigningTable /etc/opendkim/SigningTable改成SigningTable refile:/etc/opendkim/SigningTable

设置Postfix

vi /etc/postfix/main.cf

加上下面幾行
# opendkim setup
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = inet:127.0.0.1:8891
milter_default_action = accept
重启服务

service opendkim restart
service postfix restart
chkconfig opendkim on
PS: 第一次启动如果出现 Generating default DKIM keys: hostname: Unknown host 可以在 /etc/hosts 上面加上域名,例如:

127.0.0.1 lomu.me localhost localhost.localdomain localhost4 localhost4.localdomain4

3.DMARC
DMARC协议是有效解决信头From伪造而诞生的一种新的邮件来源验证手段,为邮件发件人地址提供强大保护,并在邮件收发双方之间建立起一个数据反馈机制。

具体信息可以看这里:http://dmarc.org/overview/。

DMARC记录中常用的参数解释

p:用于告知收件方,当检测到某邮件存在伪造我(发件人)的情况,收件方要做出什么处理,处理方式从轻到重依次为:none为不作任何处理;quarantine为将邮件标记为垃圾邮件;reject为拒绝该邮件。初期建议设置为none。

rua:用于在收件方检测后,将一段时间的汇总报告,发送到哪个邮箱地址。

ruf:用于当检测到伪造邮件时,收件方须将该伪造信息的报告发送到哪个邮箱地址。
例如我设置的是v=DMARC1;p=reject;rua=me@lomu.me,意思是拒绝伪造邮件,并且将一段时间的汇总报告发送给我。

添加到DNS

添加TXT记录,主机名:_dmarc,记录值:v=DMARC1;p=reject;rua=me@lomu.me

4.PTR
PTR记录,是电子邮件系统中的邮件交换记录的一种;另一种邮件交换记录是A记录(在IPv4协议中)或AAAA记录(在IPv6协议中)。PTR记录常被用于反向地址解析。

PTR记录也就是IP反向解析,我们常见的解析都是将域名A记录解析到IP,PTR则是将IP反向解析到对应的域名,通过设置PTR可以提高发信方的信誉,从而提高到达率。

PTR设置

通过观察,一般国外的VPS都会直接将购买的时候的hostname设置为PTR记录值,但是我买的阿里云的并没有,所以这个需要提交售后工单要求客服帮你添加的,添加的值为安装postfix的时候设置的myhostname,例如我的是mail.lomu.me。

添加好了以后可以通过以下命令查看

dig -x IP
如果看到了PTR记录为你的域名那就说明成功了。

到这里,基本上只要不发垃圾邮件,邮件的到达率应该就没啥问题了。

这里给大家推荐一个测试工具:http://www.mail-tester.com/,只要给页面上的邮箱随便发一封邮件,然后点击按钮提交就可以看到测试结果,里面会有一些优化建议,非常好用。

Copy From: http://lomu.me/post/SPF-DKIM-DMARC-PTR

新弄了台VPS,环境是Ubuntu Server 16.04 + PHP 7.0 + Apache2 + MySQL 5.7。
服务器内存是1G,发现mysql启动后不久内存就越来越高,访问网页不时出现500错误。重启mysql后就正常了,经过排查。解决办法如下。
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件的 [mysqld] 字段末尾添加一句:
performance_schema = off
就OK了。
服务器内存虽然占用仍然很高90%左右,但是mysql的占用不超过60%(1G内存)。并且网页再没出现过500错误了。

某个phpmyadmin的新版本后开启了高级功能,里面的字体都变大了,看了css,以及高级功能里的config记录,获取不到字体大小设置。

css文件里的设置是:

一般问题是php.ini的session设置没弄好。
1、查找session.save_path,确认目录文件的可读写。
2、将session.auto_start的值改为1(启动),默认是0(禁用)。一般都是第二点的问题引起的。

如果担心开启后的安全或者其他未知问题,可以将主题的css文件直接修改,简单:

服务器环境:
Ubuntu,Postfix,Dovecot,MySQL

困扰已久的问题了,每次打开outlook链接自设的邮件服务器,都需要点击下确认,即使已经把证书加入“可信任的根证书”也不行。
outlook_cert

这个主要原因是生成的证书配置错误。
重新生成一个证书即可:

以上命令会在目录/etc/postfix/下生成smtpd.cert和smtpd.key文件

Common Name (eg, YOUR name) []:www.mycompany.com ← 就是这个引起的啦。这个正确就没问题了。

编辑nano /etc/postfix/main.cf

编辑nano /etc/dovecot/conf.d/10-ssl.conf

然后再启动outlook,发现变啦:
QQ截图20140804174754
点击”查看证书“把证书加入到“可信任的根证书”即可。

某天,某新服务器,某开发的新站,在某些情况下出现了
Warning(E_WARNING): Illegal string offset
警告信息,程序运行正常。

经过排查,原来是php版本变化引起的:

自 PHP 5.4 起字符串下标必须为整数或可转换为整数的字符串,否则会发出警告。

以上代码在PHP 5.3中的输出:

以上代码在PHP 5.4中的输出:

原文章在这里:http://cn2.php.net/manual/zh/language.types.string.php
请使用Ctrl+F查询