I'm blogging about Emacs, Drupal, php and exciting subjects

A Drupal 11 Upgrade, a Missing Setgid Bit, and a Four-Minute Outage

I upgraded this site from Drupal 10 to Drupal 11. The Drupal part went fine, eventually. What actually took the site down for four minutes had nothing to do with Drupal at all — it was a missing setgid bit, and I only found it because I've learned not to trust a Drupal error log to tell me the whole story.

Doctrine proxies are going away: PHP 8.4 lazy objects explained

If you have ever wondered why Doctrine entities cannot be final, this is the article that answers it. And the answer stops being true in PHP 8.4.

This is the largest change in the Symfony 8 and Doctrine 4 move, and it is not really a framework change at all. It is a PHP language feature removing the need for a fifteen-year-old workaround.

Symfony 6.4 to 7.4: the upgrade to do before November 2026

Symfony 6.4 stops receiving bug fixes in November 2026. Security fixes continue for another year, until November 2027, but after that the version is done.

If you are on 6.4, this is your window. And the good news is that the upgrade is much less work than the version numbers suggest, provided you understand what Symfony is actually asking you to do.

Adding a second OpenSearch node: what you get, and what you don't

I have two servers and one OpenSearch node. The obvious move is to put a node on the second server and call it a cluster.

That works, and it is worth doing. But it does not give you high availability, and the reason is counterintuitive enough that a lot of people find out during their first outage. So this article covers the setup and the limitation together.

I allowed every crawler, and half of them still backed off

My robots.txt blocks nothing. Every page carries a meta robots tag permitting indexing. Google crawls the site happily and indexes almost everything within a few days of publication.

And when an AI assistant tried to read one of my articles, it was refused.

Subscribe to Linkhub