Common Server issues – FAQs and answers from those in the know
File stuck in php-fpm opcache?
28 March 2026 @ 2:17 pm
I had a php file I was unable to update. The server was constantly returning an old version of the file. After deleting the file I got 404, but restoring the file again returned an old version of the file. All other files I tested worked as expected. Copying the file to a new file name worked as expected. Just that one file wouldn't update.
After calling opcache_reset it started working.
So it seems the cache was not correctly invalidated for that one file on change.
This is scary. Why would this happen? How can I prevent this from happening again, besides disabling opcache?
I found this other example of it happening to someone (though it doesn't specify it happening to just one file): Why Does PHP-FPM sometimes get stuck serving old files?
Trigger scripts via dovecot imapsieve without actually touching the read-only mailbox
27 March 2026 @ 11:15 pm
Configuring a Sieve script to run after IMAP flag changes like so:
[..]
dovecot_config_version = 2.4.0
protocol imap {
mail_plugins {
acl = yes
imap_acl = yes
imap_sieve = yes
}
}
sieve_plugins {
sieve_imapsieve = yes
}
sieve_script script_name {
cause = flag
driver = file
name = script_name
# content does not matter, empty file sufficient
path = /etc/dovecot/file-name.sieve
type = after
}
[..]
In conjunction with an ACL of lookup/read/write/write-seen (no insert/post!) on a mailbox gives me errors like this.. on each and every flag IMAP change:
imap(redacted@example)<123> Error: sieve: Execution of script 'script_name/file-name' failed with unsuccessful implicit keep
Is there a more proper (not relying on dovecot hand
Apache redirect all ports from subdomain to back end server
27 March 2026 @ 4:20 pm
I have multiple servers with different services. I have Apache on a publicly accessible server, pointing different subdomains to different servers (*.example.com, *.serv1.example.com, *.serv2.example.com).
One problem that is when I go to serv1.example.com:5320, it goes to example.com:5320.
Here is the Apache server config:
<VirtualHost *:80>
ServerName serv1.example.com
ServerAlias *.serv1.example.com
ProxyPreserveHost On
ProxyPass / http://100.10.20.30/
ProxyPassReverse / http://100.10.20.30/
</VirtualHost>
I tried using <VirtualHost *:*> but that didn't route traffic through in general.
The back end servers are also running nginx, so that I could give them their own subdomains, and the main server is running Ubuntu with the backend servers running Arch linux.
Any help would be much appreciated.
How to configure dovecot to handle one specific user special?
27 March 2026 @ 1:13 pm
My dovecot setup looks like this:
# 2.4.2 (0962ed2104): /etc/dovecot/dovecot.conf
# Pigeonhole version 2.4.2 (767418c3)
# OS: Linux 6.12.0-160000.25-default x86_64
# Hostname: eagle
# 9 default setting changes since version 2.4.0
dovecot_config_version = 2.4.0
dovecot_storage_version = 2.4.0
listen = *
protocols = imap lmtp
ssl = required
protocol imap {
imap_idle_notify_interval = 60 secs
mail_max_userip_connections = 10
}
ssl_server {
cert_file = /etc/dovecot/certs/cert.pem
key_file = /etc/dovecot/certs/privkey.pem
}
namespace inbox {
mail_driver = mbox
mail_inbox_path = /var/mail/%{user}
mail_path = ~/Mail
inbox = yes
separator = /
}
mbox {
read_locks = fcntl
write_locks = fcntl
}
passdb pam {
service_name = dovecot
}
userdb passwd {
use_worker = yes
}
service imap-login {
inet_listener imap {
}
inet_listener imaps {
port = 993
ssl = yes
}
}
namespace inbox {
inbox = yes
separator = /
mailbox Drafts {
special_use
Email from Google to Microsoft 365 fails, but no error messages
27 March 2026 @ 12:55 pm
Due to a migration process, I need to adjust our inbound mail configuration to transition to exchange online.
The old configuration
Config A
MX 10 mymail-1.mydomain.com.
MX 20 mymail-2.mydomain.com.
The currently desired configuration is something like
Config B
MX 5 mydomain.mail.protection.outlook.com.
MX 10 mymail-1.mydomain.com.
MX 20 mymail-2.mydomain.com.
After enabling this, everything seemd to work fine: As expected, almost all incoming mails entered via Exchange Online, every now and then some incoming mail used the fallback or even the fallback of the fallback.
There was but one(?) exception that did not work: Mails coming from Google customers.
From what I can assess from my side, Google perhaps tried to go via the Microsoft route and failed, but never tried the fallback or second fallback. Even after several hours, neither did the mail arrive her
Puppet fails with Cannot allocate memory - fork(2) on Debian Trixie VMs (Ganeti) unless RAM is increased to 8 GB
27 March 2026 @ 3:59 am
I am facing a memory-related issue on Debian Trixie VMs running on Ganeti. These VMs are used exclusively as PostgreSQL database servers.
The same Puppet configuration works fine on Debian Bullseye and Bookworm, but consistently fails on Trixie.
Environment
Hypervisor: Ganeti
Guest OS: Debian Trixie
VM RAM: 4 GB (fails), works only at 8 GB
Workload: PostgreSQL + Puppet agent
Puppet version: Puppet 7
PostgreSQL version: 14
Problem
When running Puppet (runpuppet), I get multiple failures like:
Error: Could not evaluate: Cannot allocate memory - fork(2)
Error: Could not prefetch mount provider 'parsed': Cannot allocate memory - fork(2)
Error: Could not prefetch sysctl provider 'augeas': Cannot allocate memory - fork(2)
Example full output:
Error: /Stage[main]/Ssh/Exec[/bin/systemctl enable systemd-networkd-wait-online.service]: Could not evaluate: Cannot allocate memory - fork(2)
Error: /Stage[main]/Profiles::Monitor
The configured disk size and the size provided by the service do not match
26 March 2026 @ 6:04 pm
My boot disk is 40GB, but my server's actual disk space is only 30GB.

Postfix with SMTP: "From" error
26 March 2026 @ 2:39 pm
I am running a Debian server which hosts two different web applications running on apache2 that both need to be able to send emails from specific email addresses. Those addresses are actual email accounts from my provider with my domain name, so I am trying to implement SMTP with postfix.
In order to test I am trying to send this email using sendmail in CLI:
email.txt:
From: [email protected]
Subject: test
test test test
sendmail [email protected] < ./email.txt
However it doesn't work. Here's what /var/log/mail has to say about it (I trimmed the timestamps for readability):
postfix/pickup[1130256]: 075FC37CE43: uid=0 from=<root>
postfix/cleanup[1133097]: 075FC37CE43: message-id=<20260326142453.075FC37CE43@myhostname>
postfix/qmgr[1130257]: 075FC37CE43: from=<root@myhostname>, size=272, nrcpt=1 (queue active)
postfix/smtp[1133100]: 075FC37CE43: to=<[email protected]>, relay=send
Regarding using HAPROXY with proxy protocol to secure database
26 March 2026 @ 12:30 pm
I read this blog:
https://www.haproxy.com/blog/using-haproxy-with-the-proxy-protocol-to-better-secure-your-database
but am confused as the author uses some addresses to indicate the problem and different addresses within the solution. If someone could provide a little clarity about it.
We have 4 percona (MYSQL) servers: 2 in datacentre A and 2 in datacentre B.
The user entry point is via haproxy, where we have 1 in both datacentres
It looks to me like the author suggests that every possible source for access on the client side would need to be added to the database:
mysql> CREATE USER 'haproxy'@'192.168.122.64';
which, I assume would have to be both source user and host. But what if there are multiple users on each host? How to cater for DHCP hosts? Would we have to then have global wildcards declare
OpenLDAP conditional sudo based on server tag
26 March 2026 @ 8:00 am
I want to setup a conditional sudo access rule to a host. I understand adding a sudo schema, and then adding a user to group that gives sudo powers. But I want to distinguish somehow hosts by custom ldap groups, and allow users sudo access if they belong to same ldap group too.
Example picture:
Imagine Host1 belongs to groupA, and Host2 belongs to groupB. I would like to add Alice to groupA and to groupSudo - so she can execute sudo commands on Host1, while she would not have sudo access on host2, but she can still login there as simple user.
Similarly I want to assign Bob to groupB and groupSudo - that would give him sudo only on Host2. And Cynthia to all 3 groups so that she gets sudo everywhere.
I'm struggling to finding this solution though. I did find a solution where I would restrict Alice login to Host2 entirely, by configuring sssd to not allow logins if not in groupB. H
Imagine Host1 belongs to groupA, and Host2 belongs to groupB. I would like to add Alice to groupA and to groupSudo - so she can execute sudo commands on Host1, while she would not have sudo access on host2, but she can still login there as simple user.
Similarly I want to assign Bob to groupB and groupSudo - that would give him sudo only on Host2. And Cynthia to all 3 groups so that she gets sudo everywhere.
I'm struggling to finding this solution though. I did find a solution where I would restrict Alice login to Host2 entirely, by configuring sssd to not allow logins if not in groupB. H