Pinned Tweet
If you patched PHP yesterday, you're not done yet 🚨

php2shell started with an error every PHP dev has seen a thousand times:

"Allowed memory size of 134217728 bytes exhausted"

Here's what actually went wrong, and what the update didn't fix 👇
8
27
238
96,200
😂
I’m buying my wife a Claude Pro subscription to save us money.

You might be confused how this saves us money. Allow me to explain.

A Claude Pro subscription costs $20 per month.

This one custom instruction will save us $1,000+ per month👇🏼
0
0
0
114
Mark Shust retweeted
Every PHP dev has seen this in their FPM log:

"server reached pm.max_children setting (5), consider raising it"

Most of us raise the number and move on, ...which is how you take a server down 🫠

Here's the math 👇
4
6
95
18,066
PHP's 30-second time limit isn't 30 seconds ⏱️

"Maximum execution time of 30 seconds exceeded"

A query can hang for 10 minutes and never trigger it. Here's what to do about it 👇
3
3
53
8,050
Replying to @MarkShust
Every other week in my newsletter, I pull apart one more piece of how PHP actually works. 11,000+ devs read it. Get the next one at: macade.my/2p3wrL
1
0
1
531
Replying to @MarkShust
Hanging queries tie up FPM workers too, so check your pm.max_children setting before you raise it: x.com/MarkShust/stat…
Every PHP dev has seen this in their FPM log:

"server reached pm.max_children setting (5), consider raising it"

Most of us raise the number and move on, ...which is how you take a server down 🫠

Here's the math 👇
0
0
0
53
Mark Shust retweeted
The bug is like a joke.

On Alpine Linux, type 257 to 1024 characters of anything and you get root. 💀
‼️ BREAKING: OpenSSH has rushed out a fix for a critical flaw that lets attackers log into some Linux servers without the right password.

The team learned of the bug a day earlier. OpenSSH's Damien Miller says long embargoes now mostly help attackers, because AI agents mes within hours.

It hits Linux systems on the musl C library with PAM off, such as Alpine Linux. Miller told admins to disable password logins or SSH itself "IMMEDIATELY".

Version 10.6p2 works around it. Systems on glibc or PAM are not affected, and Miller says the root cause sits outside OpenSSH.
450
2,468
19,719
2,193,107
You added declare(strict_types=1) to your PHP code, so bad values throw a TypeError, ...right?

Not quite. So many of our PHP files start with that line, but it protects a lot less than most of us think 👇
1
0
11
2,683
Replying to @MarkShust
I break down one of these every week in my newsletter: how PHP + Magento actually work under the hood. 11,000+ devs read it:

macade.my/rhtc6l
1
0
0
193
Replying to @MarkShust
Like this thread?

Then check out this other PHP debugging mystery about FPM workers and setting the pm.max_children config value:
x.com/MarkShust/stat…
Every PHP dev has seen this in their FPM log:

"server reached pm.max_children setting (5), consider raising it"

Most of us raise the number and move on, ...which is how you take a server down 🫠

Here's the math 👇
0
0
0
117
More PHP developers should learn Magento, and more Magento developers should learn PHP (more deeply).
4
2
18
2,460
Every PHP dev has seen this in their FPM log:

"server reached pm.max_children setting (5), consider raising it"

Most of us raise the number and move on, ...which is how you take a server down 🫠

Here's the math 👇
4
6
95
18,066
Replying to @MarkShust
I break down one of these every week in my newsletter: how PHP actually works under the hood. 11,000+ devs read it:

macade.my/WxHo50
2
0
5
1,356
Replying to @MarkShust
Already optimized PHP, and still having issues?

Then it may be the framework. Check out Marko, which is a super modular PHP framework aimed at having a low memory footprint. v0.12 just got released: x.com/MarkShust/stat…
My new PHP framework, Marko, just shipped 0.12 -- and it's a big release 🚀

Last week was speed (faster than Laravel on half the memory). But speed isn't what gets you to switch to a new framework.

The boring stuff is: queues, auth, scheduling. 0.12 is 60+ PRs of exactly that.
0
0
0
215
I took a break over summer, but work on Marko is cooking again 🔥
0
0
3
228