Everyone's like "oh, run your own website, why don't people just run your own website" an then self-hosting a website turns out to be a miserable, grueling, thankless, neverending grind with the occasional risk of something really dangerous happening and it's your fault
Conversation
Notices
-
Embed this notice
mcc (mcc@mastodon.social)'s status on Friday, 18-Jul-2025 05:34:30 JST mcc
- Rich Felker repeated this.
-
Embed this notice
mcc (mcc@mastodon.social)'s status on Friday, 18-Jul-2025 05:34:29 JST mcc
Now, my website still does not work! PHP is running again, but my circa-2010 wordpress theme is now causing apache to crash, with the message:
Fatal error: Array and string offset access syntax with curly braces is no longer supported
PHP, you have one job in my life— exactly one— and that is to run the website I installed on you in 2007. You have literally *changed the language out from under me*. You are not doing your job.
GreenSkyOverMe (Monika) repeated this. -
Embed this notice
mcc (mcc@mastodon.social)'s status on Friday, 18-Jul-2025 05:34:30 JST mcc
Despite it being perhaps professionally embarrassing, I would like to tell you why my personal website has been offline for 1 month. It is because I upgraded from an old Ubuntu LTS to a new Ubuntu LTS. When this happened, the version of PHP upgraded. This meant that the php7.4.conf file in /etc/apache2/mods-enabled— a symlink to php7.4.conf in mods-available— died, because it was replaced with a php8.1.conf. But the symlink was not renamed. No other apache mod works this way. So, no PHP.
Rich Felker repeated this. -
Embed this notice
mcc (mcc@mastodon.social)'s status on Friday, 18-Jul-2025 05:38:41 JST mcc
This is the line of code that is failing.
uc = ( strlen($uc[0]) == 3 ) ? $uc[0]{0}.$uc[0]{0}.$uc[0]{1}.$uc[0]{1}.$uc[0]{2}.$uc[0]{2} : $uc[0];
This is from a fifteen-year-old wordpress theme. Honestly, I don't know what it means. Since I don't know what it means, I don't know why it's wrong, and that means I don't know how to fix it. I guess I'm going to have to learn enough PHP to make this compatible with PHP 8.
GreenSkyOverMe (Monika) and Rich Felker repeated this. -
Embed this notice
mcc (mcc@mastodon.social)'s status on Friday, 18-Jul-2025 05:38:41 JST mcc
A problem I have in my life is that the amount of constant upkeep I have to do just to keep my WordPress website serving pages is so great it means I don't have enough time to replace WordPress with something that isn't fucking awful
-
Embed this notice
Rich Felker (dalias@hachyderm.io)'s status on Friday, 18-Jul-2025 06:45:58 JST Rich Felker
@mcc There's a classic editor addon you can get. Wordpress is unusable without it.
-
Embed this notice
mcc (mcc@mastodon.social)'s status on Friday, 18-Jul-2025 06:45:59 JST mcc
This also means it's time to play my least favorite of the many, many WordPress minigames: "Did the fucking cache plugin stop fucking working for no reason again?"
-
Embed this notice
mcc (mcc@mastodon.social)'s status on Friday, 18-Jul-2025 06:45:59 JST mcc
"I have a website, but it only exists when no one's looking at it"
-
Embed this notice
mcc (mcc@mastodon.social)'s status on Friday, 18-Jul-2025 06:45:59 JST mcc
THERE'S A DEAD LINK ON THE FRONT OF MY SITE BECAUSE LUDUM DARE PULLED ALL THE OLD CONTENT, BUT I CAN'T EDIT IT BECAUSE WORDPRESS REMOVED THE ABILITY TO EDIT YOUR POSTS EXCEPT THROUGH A "BLOCK EDITOR", AND IT WON'T BE ABLE TO EDIT THE FRONT PAGE BECAUSE THE FRONT PAGE ISN'T WRITTEN IN "BLOCKS" IT'S WRITTEN IN HTML.
Phenomenal!! After tons of work fixing WordPress my reward is pages I can't edit, and which serve content, but only as long as I don't link on Mastodon, and the Unicode is all …y
-
Embed this notice
mcc (mcc@mastodon.social)'s status on Friday, 18-Jul-2025 06:46:00 JST mcc
UPDATE: Just now I linked a page on my site to a friend to let her know, oh, that post on ym blog you wanted to link, it's back up now.
The act of linking the page on Mastodon— given the number of people who follow both me and my friend— seems to have resulted in a "hug of death" that took my entire website offline.
What the fucking point is having a fucking personal website if the act of linking the website from your social feed takes the site down? Why would I have it if not to link it
-
Embed this notice
Rich Felker (dalias@hachyderm.io)'s status on Saturday, 19-Jul-2025 03:49:27 JST Rich Felker
@glyph @0xabad1dea @mcc It's entirely a matter of certain CMS's being so bad. This isn't to blame folks to use them, rather their parties and processes which normalized and pushed them.
Even if 10000 Mastodon instances all requested a page at once, it would make no significant impact on a site where the software isn't doing all sorts of gratuitously wrong stuff to serve a page.
-
Embed this notice
abadidea (0xabad1dea@infosec.exchange)'s status on Saturday, 19-Jul-2025 03:49:28 JST abadidea
@mcc I remember one time I mentioned mastodon hug of death and someone argued with me that it can’t possibly be real and/or everyone must be running their website on cheap VPSs which is their fault. Like yeah, Jonald, we’ll all get right on paying enterprise prices for enterprise services for our personal hobby sites, or maybe we can have a group think about how to mitigate hug of death, hmmm.
-
Embed this notice
Glyph (glyph@mastodon.social)'s status on Saturday, 19-Jul-2025 03:49:28 JST Glyph
@0xabad1dea @mcc I confess as someone who runs a static site and has experienced the hug of death a few times, it *is* somewhat shocking what a small amount of traffic can destroy a Wordpress. but I have to assume 99% of wordpress users are in roughly Andi's situation or will be soon as their install slowly rots, even if they aren't literally there today
-
Embed this notice
Rich Felker (dalias@hachyderm.io)'s status on Saturday, 19-Jul-2025 04:35:00 JST Rich Felker
@mcc @glyph @0xabad1dea Yeah forking a large process like that is a gigabit hidden cost. But even if you imagine 10k connections spread out over 20-30 seconds (likely fewer instances, more spread, in real life) that's a completely inconsequential number of forks.
-
Embed this notice
mcc (mcc@mastodon.social)'s status on Saturday, 19-Jul-2025 04:35:01 JST mcc
@dalias @glyph @0xabad1dea I've seen forking webservers fall over under spontaneous heavy load just from forking until the RAM runs out, and Apache ships (or shipped for many years?) the forking configuration as the default
-
Embed this notice
Rich Felker (dalias@hachyderm.io)'s status on Saturday, 19-Jul-2025 04:39:13 JST Rich Felker
@glyph @mcc @0xabad1dea I don't mean there's not a problem, but that the cost of just the forks by themselves isn't enough to account for the problem folks are encountering. It's gotta be at other layers.
-
Embed this notice
Glyph (glyph@mastodon.social)'s status on Saturday, 19-Jul-2025 04:39:14 JST Glyph
@dalias @mcc @0xabad1dea I feel like your choice of the word "consequential" here is not really appropriate, as the real-life number of forks has been shown to literally in fact have consequences. You imagine, or you wish, it were an inconsequential number but that does not accord with reality
-
Embed this notice
Rich Felker (dalias@hachyderm.io)'s status on Saturday, 19-Jul-2025 04:49:25 JST Rich Felker
@glyph @mcc @0xabad1dea Yeah I'm aware of all this and accounting for it. Folks don't get that fork without exec is a lot more expensive than posix_spawn because of copying entire VM map and making all the page table entries RO/COW. But you need something giant to get total costs near the order of milliseconds.
-
Embed this notice
Glyph (glyph@mastodon.social)'s status on Saturday, 19-Jul-2025 04:49:26 JST Glyph
@dalias @mcc @0xabad1dea the reality of fork() is that the CoW costs are ~always _far_ more significant than system designers account for. profiling pretty much anything that calls fork() in a real-world context (apache, or anything that calls fork() in a refcounted runtime (python/ruby/perl/PHP/etc)) shows just an appalling amount of post-fork faults that copy way more memory than "should" be touched
-
Embed this notice
Rich Felker (dalias@hachyderm.io)'s status on Saturday, 19-Jul-2025 04:55:44 JST Rich Felker
@mcc @glyph @0xabad1dea Interesting. Just judging from latency for seeing posts from other instances I figured it'd be longer. Under high load they seem to take closer to a minute.
-
Embed this notice
mcc (mcc@mastodon.social)'s status on Saturday, 19-Jul-2025 04:55:45 JST mcc
@dalias @glyph @0xabad1dea I think the hug of death is more like one to five seconds
Rich Felker repeated this. -
Embed this notice
Glyph (glyph@mastodon.social)'s status on Saturday, 19-Jul-2025 04:56:00 JST Glyph
@mcc @dalias @0xabad1dea the lack of any staggering is really inexcusable at this point. 600 seconds of jitter could probably ~completely fix this problem
-
Embed this notice
Rich Felker (dalias@hachyderm.io)'s status on Saturday, 19-Jul-2025 06:31:33 JST Rich Felker
@lispi314 @0xabad1dea @glyph @mcc If your fastcgi model is to have the persistent backend fork for every request, it can actually be slower than traditional cgi. 🙃
Because folks don't get it: exec is fast, fork is slow.
-
Embed this notice
LisPi (lispi314@udongein.xyz)'s status on Saturday, 19-Jul-2025 06:31:34 JST LisPi
@mcc @glyph @0xabad1dea @dalias As a side-note, this is very much why FastCGI exists. -
Embed this notice
LisPi (lispi314@udongein.xyz)'s status on Saturday, 19-Jul-2025 06:31:36 JST LisPi
@dalias @0xabad1dea @mcc @glyph Wait, people thought the 10k problem with thread-per-request wasn't bad enough and decided to add the cost of starting /a full program/ (frequently interpreted) on every request instead?
I'm both amused and appalled.