Nginx 404 + system not ready + reverse proxies with Apache + multiple domains + php-fpm

You’re right. It isn’t normal. Virtualmin does not put php.ini in public_html. Ever.

You’ll only have a bunch of different php.ini files if you’re using a bunch of different execution modes. Otherwise you’ll have one per domain, and where it resides will depend on the execution mode you’re using.

I apologize if I seem hostile. That’s really not my intention. I’m just very frustrated. I came here after days of struggling hoping for some clarity and instead I’m just being gaslit and told that none of my problems are real.

Each one of my vhosts (or virtual servers, whatever) has an etc/ directory with its own php.ini and yet another php.ini under a php8.x/ subdirectory.

I’m sorry if I didn’t read the docs or something but this is all very strange and unintuitive to me.

I only have one version of PHP installed. I don’t see why it needs to be so overcomplicated. Maybe I should just stick with Webmin. I never had any issues with it in the many years I’ve used it.

Is there a minimal “mode” that Virtualmin can operate in with minimal influence and confusion?

That is a configurable option. You chose EL, so we assumed you wanted to do things the way it is normally done on EL. If you want it done the way it is done on Ubuntu/Debian, you can configure Virtualmin to create a separate file per VirtualHost.

Browse to Webmin->Servers->Apache Web Server->Module Configuration (click the gear :gear: in the upper left corner) and set File or directory to add virtual servers to to a directory (the directory should exist).

And, if you’re more comfortable with Debian or Ubuntu, Virtualmin supports those, too.

No that’s not what I mean. The new vhosts aren’t added to the main config file either. That’s the weird part. None of the virtual servers or their websites are in any of my config files, but they appear in Virtualmin as full-blown configurations that I can’t tap into.

Browse to Webmin->Servers->Apache Web Server. Are the domains there? If so, they’re being read from the web server configuration file in the place where Webmin believes you web server configuration file should be. (Because the Apache module has no metadata of its own. It reads VirtualHosts directly from the config file(s). Every time you load the page. It has no other way to get that information.)

You can check where it thinks the config file should be in Module Configuration (click the gear :gear: icon). It will be /etc/httpd/conf/httpd.conf on any EL system, I believe. And, that’s not our decision, that’s where the package your OS provides puts it.

And, if it’s not looking in the right place, e.g. it’s looking in something weird like /usr/local, it either didn’t detect your OS correctly at install time (that’s a bug or something weird about your system), or it’s been changed since installation.

Webmin is fine. Webmin can do no wrong. But anything created in VIRTUALMIN indeed does not appear in my files.

The httpd directory is correct. Maybe it’s a sync issue due to the quoted check config result in my first post?

Virtualmin uses the Webmin Apache module to manage Apache configuration. What you’re describing isn’t possible. I’m sorry if that seems like gaslighting (which I think is a misuse of the term), but I’m trying to help sort out what you’re seeing.

Why does it say my system isn’t ready for Virtualmin even though all of the tests are passed and it says everything is configured successfully?

It’s currently spinning but when it stops the message won’t go away. It’ll keep prompting me to check my configuration.
image

This. It seems like you tried to disable the Apache Website feature in Features and Plugins. You can’t do that, given the circumstances (and you don’t want to do that…if you want to use nginx exclusively, you should start over with an nginx --bundle LEMP install…you can, as I mentioned, do whatever custom thing with nginx you want, in addition to Apache, but if you’re trying to turn off Apache entirely, just don’t have it!).

Note, you cannot have both nginx website and Apache website enabled in Features and Plugins (and you’ve found some of my explanation for why). Virtualmin does not, and will not in the future, manage both on the same system. You can use both, but Virtualmin is only ever going to know about and manage one of them directly. (You could add custom post scripts or extra files in your skel or do stuff in Server Templates to automate it, if you wanted to, but we aren’t going to build that, as it is almost always a mistake that we want nothing to do with.)

I did attempt to disable Apache at one point, yes, but that was only temporary. I didn’t know I’d have to live with that decision for the rest of my life.

I’ll take your advice and reinstall to undo that mistake. But since Apache support is better (according to Stefan), shouldn’t that be the option I go with?

I didn’t say reinstall.

I’m just saying enable Apache Website in Features and Plugins and save it and re-check config.

Whoa, it’s disabled? I have not stopped managing Apache through Webmin/Virtualmin.

Webmin is independent of Virtualmin (but Virtualmin is not independent of Webmin). Disabling Apache in Virtualmin Features and Plugins does nothing to the Webmin Apache module.

This is wild. It really is disabled.

But this doesn’t explain why Apache is working and Nginx isn’t. That makes me even more confused.