php.ini
如果我以 FPM 运行 php,我可以在或中设置我的内存限制 .user.ini
。PHP 可以执行 MySQL 查询,我可以在/etc/my.cnf
例如 innodb 缓冲池中设置内存限制。如果 PHP 运行查询,哪个内存限制适用?
Guido Goluke's questions
我已经使用这个服务器一周了。全新 Ubuntu 20.04 安装,所有软件包都通过 apt 安装。我可以在我的 IP 之外接收和发送邮件就好了。突然间,再也无法接收电子邮件了。
我检查了日志,很快就注意到了这error: unsupported dictionary type: mysql
条消息,这意味着 postfix 无法根据我的数据库检查收件人。我检查了我的apt list --installed
输出,但安装了 postfix-mysql,所以这不是问题。我很快发现我需要添加以下行:
mysql /usr/lib/postfix/postfix-mysql.so.1.0.1 dict_mysql_open
to/etc/postfix/dynamicmaps.cf
并执行postfix reload
.
我的问题是:这怎么可能发生?我确实有一个apt update && apt upgrade
运行自动更新服务器的 cron。
更新
我看到的最后一个更新是这个:
2021-09-28 23:01:31 upgrade postfix:amd64 3.4.13-0ubuntu1.1 3.4.13-0ubuntu1.2
问题在那之后就开始了。dynamicmaps.cf
除了顶部的注释指令行之外是空的。我添加了 mysql 行,现在这是文件中唯一的功能行。
更新 2
杀死所有发现的进程后,ps -Af | grep -E 'dpkg|debconf|apt|unatt'
我跑了:
sudo apt update
sudo apt-get install --fix-broken
sudo dpkg --configure -a -D223
在尝试配置后缀时,这给了我以下错误:
D000001: process queue pkg postfix-mysql:amd64 queue.len 54 progress 1, try 1
dpkg: dependency problems prevent configuration of postfix-mysql:
postfix-mysql depends on postfix (= 3.4.13-0ubuntu1.2); however:
Package postfix is not installed.
dpkg: error processing package postfix-mysql (--configure):
dependency problems - leaving unconfigured
我对 dpkg 了解不多,无法理解这一点。这里发生了什么事?
更新 3
dpkg-query --show --showformat='${package} ${status}\n' 'postfix*'
产量:
postfix install ok installed postfix-cdb unknown ok not-installed
postfix-doc unknown ok not-installed
postfix-ldap unknown ok not-installed
postfix-lmdb unknown ok not-installed
postfix-mysql install ok installed
postfix-pcre unknown ok not-installed
postfix-pgsql unknown ok not-installed
postfix-sqlite unknown ok not-installed
因此,两个请求的软件包都处于正常且已安装的状态。据我所见,apt 命令并没有提出修复建议(我仔细阅读了输出)。看来你的建议奏效了。
我不喜欢的是不知道自己在做什么,但那是由于我自己的 apt 和 dpkg 缺乏知识。
我已经运行了一段时间的 Postfix/Dovecot 邮件服务器(Ubuntu 服务器 16.04),没有任何重大问题。我还有一个颁发给我的主机名的 Let's Encrypt 证书,我在/etc/dovecot/conf.d/10-ssl.conf
. 运行良好,但您可能知道这些仅在 90 天内有效。我有 certbot 设置来自动更新这些,这也很好。
突然,今天,我的 Thunderbird、客户 Thunderbird 和他的 iPhone 都开始抱怨证书无效。我检查了证书certbot certificates
,发现我使用的证书完全有效,没有过期。通过 Thunderbird 检查证书告诉我证书在前一天过期,显示的哈希值与当前证书不匹配。
所以基本上,Dovecot 似乎正在从某种“缓存”发出过期的证书。重新启动 dovecot 只是“神奇地”修复了它,但我想了解这里发生了什么,因为我的 DDG 在 Dovecot 中搜索证书缓存或类似的东西并没有给我任何结果。我在这里遗漏了一些明显的东西吗?似乎我忽略了一些明显的东西,但不知道是什么。
编辑 这基本上在这里得到了回答,但是由于我的 certbot 在 systemctl 计时器而不是 cronjob 上更新,我将尝试在此处为这种情况提供答案,以供将来参考以及与我同船的任何人。