PHP Media Pool issue

What type of hardware are you using: Raspberry Pi 3, 4+
What YunoHost version are you running: 12.0.13
How are you able to access your server: The webadmin
SSH
Are you in a special context or did you perform specific tweaking on your YunoHost instance ?: No

Describe your issue

I keep having PHP issues. They are the #1 issue that I have experienced with yunohost. To my knowledge, I have done NOTHING that would affect the media pools, other than manually adding media pools to resolve these PHP errors.

Just now, I tried to uninstall Nextcloud since I did not use it. I got a PHP error, and am now told that the uninstallation failed. Yet… Nextcloud has been removed? So I’m wondering if I need to reinstall it to properly uninstall it or how that works, but Nextcloud isn’t the issue at hand. I have had this issue with so many things, it can not possibly be an app issue, it has to be a yunohost issue.

In summary: I’ll try to do something (install an app, uninstall an app, migrate yunohost), which will result in a php error exit code 1. I do the commands that it asks of me, and see [pool FOOBAR] user has not been defined – so I go to /etc/php/php8.*/fpm/pool.d, copy an existing file (say, roundcube.conf) and rename every reference from roundcube to FOOBAR. I have done this at least 6 times.

I know that there is no such thing as a ‘clean’ server, but I don’t like this half-run uninstallation leaving obsolete ACLs intact. Seems like it could be bad.
Could we make PHP operations fail gracefully? ← worth considering.

If I did somehow configure something that even remotely interacts with PHP media pools, I’d love to learn how to find it.

Share relevant logs or error messages

https://paste.yunohost.org/raw/sekuxezevo
https://paste.yunohost.org/raw/tenavajuki

https://paste.yunohost.org/raw/emebeqiyah
https://paste.yunohost.org/raw/suyequsosi
https://paste.yunohost.org/raw/cejocomahu
https://paste.yunohost.org/raw/ekisurocux
https://paste.yunohost.org/raw/jucucenoti

You can also share the diagnosis and the output of
sudo yunohost tools regen-conf --dry-run --with-diff
sudo yunohost app list
sudo ls /etc/php/*/fpm/pool.d

Thank you for the response, Jarod!
Please let me know if you need anything else. I appreciate you immensely.
My diagnosis has been a little miffed, please excuse it. Internet Connectivity has not been run since 5 months ago.

root@host:/etc/php/8.3/fpm/pool.d# sudo yunohost diagnosis show
reports:
  0:
    description: Base system
    id: basesystem
    items:
      0:
        details: Server model is Raspberry Pi 4 Model B Rev 1.1
        status: INFO
        summary: Server hardware architecture is bare-metal arm64
      1:
        status: INFO
        summary: Server is running Linux kernel 6.1.21-v8+
      2:
        status: INFO
        summary: Server is running Debian 12.10
      3:
        details:
          - yunohost version: 12.0.13 (stable)
          - yunohost-admin version: 12.0.7.1 (stable)
          - yunohost-portal version: 12.0.10 (stable)
          - moulinette version: 12.0.4 (stable)
          - ssowat version: 12.0.3 (stable)
        status: INFO
        summary: Server is running YunoHost 12.0.13 (stable)
  1:
    description: Internet connectivity
    id: ip
    items:
      0:
        status: SUCCESS
        summary: Domain name resolution is working!
      1:
        details:
          - Global IP: //intentionally censored
          - Local IP: 192.168.1.196
        status: SUCCESS
        summary: The server is connected to the Internet through IPv4!
      2:
        details: IPv6 should usually be automatically configured by the system or your provider if it's available. Otherwise, you might need to configure a few things manually as explained in the documentation here: https://yunohost.org/ipv6.
        status: WARNING
        summary: The server does not have working IPv6.
  2:
    description: DNS records
    id: dnsrecords
    items:
      0:
        status: SUCCESS
        summary: DNS records are correctly configured for domain domain.com (category basic)
      1:
        details:
          - Please check the documentation at https://yunohost.org/dns_config if you need help configuring DNS records.
          - According to the recommended DNS configuration, you should add a DNS record with the following info.
Type: MX
Name: @
Value: 10 domain.com.
          - According to the recommended DNS configuration, you should add a DNS record with the following info.
Type: TXT
Name: @
Value: "v=spf1 a mx -all"
          - According to the recommended DNS configuration, you should add a DNS record with the following info.
Type: TXT
Name: mail._domainkey
Value: "v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSc5mMHTdQ9Lu1lIc29jQhFL7UVZkyMW35tLBD+hjmK9JbmPh1VegaxfJZqU5yofc8XzxIqhZHVHupXPQXHDF61svkPr3qZJLbRuaMzV9kt225jut0Is7NHvDPdYJVvIy9zOUi/UAo750Ydi6/GJwj1/GfrrsufhxG8J36wJ2ouwIDAQAB"
          - According to the recommended DNS configuration, you should add a DNS record with the following info.
Type: TXT
Name: _dmarc
Value: "v=DMARC1; p=none"
        status: WARNING
        summary: Some DNS records are missing or incorrect for domain domain.com (category mail)
      2:
        details:
          - Please check the documentation at https://yunohost.org/dns_config if you need help configuring DNS records.
          - According to the recommended DNS configuration, you should add a DNS record with the following info.
Type: A
Name: *
Value: //intentionally censored
          - According to the recommended DNS configuration, you should add a DNS record with the following info.
Type: CAA
Name: @
Value: 0 issue "letsencrypt.org"
        status: WARNING
        summary: Some DNS records are missing or incorrect for domain domain.com (category extra)
      3:
        status: INFO
        summary: Domain changes.local is based on a special-use top-level domain (TLD) such as .local or .test and is therefore not expected to have actual DNS records.
      4:
        status: SUCCESS
        summary: DNS records are correctly configured for domain domain2.com (category basic)
      5:
        details:
          - Please check the documentation at https://yunohost.org/dns_config if you need help configuring DNS records.
          - The following DNS record does not seem to follow the recommended configuration:
Type: MX
Name: @
Current value: ['10 mxb.mailgun.org.', '10 mxa.mailgun.org.']
Expected value: 10 domain2.com.
          - According to the recommended DNS configuration, you should add a DNS record with the following info.
Type: TXT
Name: @
Value: "v=spf1 a mx -all"
          - According to the recommended DNS configuration, you should add a DNS record with the following info.
Type: TXT
Name: mail._domainkey
Value: "v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3T4zNVouxVaPZRElRVfdWi8NfNXEyii5ibPDP488FeFlC9V3JwTIOBIkPd4U2RBFKkQiqOCG1E7OgHdfY0XnolWmu+gWQEvVNSPbW6wUAldyq4wTX0jUi1D1XDwZ9RAojToEghHFhiCeHV9a9lfiYsgkz6Nwu0U9KDtieyvlXIQIDAQAB"
          - According to the recommended DNS configuration, you should add a DNS record with the following info.
Type: TXT
Name: _dmarc
Value: "v=DMARC1; p=none"
        status: WARNING
        summary: Some DNS records are missing or incorrect for domain domain2.com (category mail)
      6:
        details:
          - Please check the documentation at https://yunohost.org/dns_config if you need help configuring DNS records.
          - According to the recommended DNS configuration, you should add a DNS record with the following info.
Type: A
Name: *
Value: //intentionally censored
          - According to the recommended DNS configuration, you should add a DNS record with the following info.
Type: CAA
Name: @
Value: 0 issue "letsencrypt.org"
        status: WARNING
        summary: Some DNS records are missing or incorrect for domain domain2.com (category extra)
      7:
        details:
          - domain.com expires in 365 days.
          - domain2.com expires in 115 days.
        status: SUCCESS
        summary: Your domains are registered and not going to expire anytime soon.
  3:
    description: Ports exposure
    id: ports
    items:
      0:
        details:
          - Exposing this port is needed for admin features (service ssh)
          - To fix this issue, you most probably need to configure port forwarding on your internet router as described in https://yunohost.org/isp_box_config
        status: ERROR
        summary: Port 22 is not reachable from the outside.
      1:
        details:
          - Exposing this port is needed for email features (service postfix)
          - To fix this issue, you most probably need to configure port forwarding on your internet router as described in https://yunohost.org/isp_box_config
        status: ERROR
        summary: Port 25 is not reachable from the outside.
      2:
        details: Exposing this port is needed for web features (service nginx)
        status: SUCCESS
        summary: Port 80 is reachable from the outside.
      3:
        details: Exposing this port is needed for web features (service nginx)
        status: SUCCESS
        summary: Port 443 is reachable from the outside.
      4:
        details:
          - Exposing this port is needed for email features (service postfix)
          - To fix this issue, you most probably need to configure port forwarding on your internet router as described in https://yunohost.org/isp_box_config
        status: ERROR
        summary: Port 587 is not reachable from the outside.
      5:
        details:
          - Exposing this port is needed for email features (service dovecot)
          - To fix this issue, you most probably need to configure port forwarding on your internet router as described in https://yunohost.org/isp_box_config
        status: ERROR
        summary: Port 993 is not reachable from the outside.
      6:
        details:
          - Exposing this port is needed for [?] features (service peertube)
          - To fix this issue, you most probably need to configure port forwarding on your internet router as described in https://yunohost.org/isp_box_config
        status: ERROR
        summary: Port 1935 is not reachable from the outside.
  4:
    description: Web
    id: web
    items:
      0:
        status: INFO
        summary: Domain changes.local is based on a special-use top-level domain (TLD) such as .local or .test and is therefore not expected to be exposed outside the local network.
      1:
        status: SUCCESS
        summary: Domain domain.com is reachable through HTTP from outside the local network.
      2:
        status: SUCCESS
        summary: Domain host.domain.com is reachable through HTTP from outside the local network.
      3:
        status: SUCCESS
        summary: Domain imgs.domain.com is reachable through HTTP from outside the local network.
      4:
        status: SUCCESS
        summary: Domain music.domain.com is reachable through HTTP from outside the local network.
      5:
        status: SUCCESS
        summary: Domain peer.domain.com is reachable through HTTP from outside the local network.
      6:
        status: SUCCESS
        summary: Domain shop.domain.com is reachable through HTTP from outside the local network.
      7:
        status: SUCCESS
        summary: Domain www.domain.com is reachable through HTTP from outside the local network.
      8:
        status: SUCCESS
        summary: Domain domain2.com is reachable through HTTP from outside the local network.
      9:
        status: SUCCESS
        summary: Domain analytics.domain2.com is reachable through HTTP from outside the local network.
      10:
        status: SUCCESS
        summary: Domain archive.domain2.com is reachable through HTTP from outside the local network.
      11:
        status: SUCCESS
        summary: Domain etc.domain2.com is reachable through HTTP from outside the local network.
      12:
        status: SUCCESS
        summary: Domain host.domain2.com is reachable through HTTP from outside the local network.
      13:
        status: SUCCESS
        summary: Domain main.domain2.com is reachable through HTTP from outside the local network.
      14:
        status: SUCCESS
        summary: Domain test.domain2.com is reachable through HTTP from outside the local network.
      15:
        status: SUCCESS
        summary: Domain www.domain2.com is reachable through HTTP from outside the local network.
  5:
    description: Email
    id: mail
    items:
      0:
        details:
          - You should first try to unblock outgoing port 25 in your internet router interface or your hosting provider interface. (Some hosting providers may require you to send them a support ticket for this).
          - Some providers won't let you unblock outgoing port 25 because they don't care about Net Neutrality.
 - Some of them provide the alternative of using a mail server relay though it implies that the relay will be able to spy on your email traffic.
- A privacy-friendly alternative is to use a VPN *with a dedicated public IP* to bypass these kinds of limits. See https://yunohost.org/vpn_advantage
- You can also consider switching to a more net neutrality-friendly provider
        status: ERROR
        summary: The SMTP mail server cannot send emails to other servers because outgoing port 25 is blocked in IPv4.
      1:
        details: Could not open a connection on port 25 to your server in IPv4. It appears to be unreachable.
1. The most common cause for this issue is that port 25 is not correctly forwarded to your server.
2. You should also make sure that service postfix is running.
3. On more complex setups: make sure that no firewall or reverse-proxy is interfering.
        status: ERROR
        summary: The SMTP mail server is unreachable from the outside on IPv4. It won't be able to receive emails.
      2:
        details:
          - Current reverse DNS: //intentionallycensored.lightspeed.dctril.sbcglobal.net
Expected value: host.domain2.com
          - You should first try to configure reverse DNS with host.domain2.com in your internet router interface or your hosting provider interface. (Some hosting providers may require you to send them a support ticket for this).
          - Some providers won't let you configure your reverse DNS (or their feature might be broken…). If you are experiencing issues because of this, consider the following solutions:
 - Some ISP provide the alternative of using a mail server relay though it implies that the relay will be able to spy on your email traffic.
- A privacy-friendly alternative is to use a VPN *with a dedicated public IP* to bypass this kind of limits. See https://yunohost.org/vpn_advantage
- Or it's possible to switch to a different provider
        status: ERROR
        summary: Reverse DNS is not correctly configured for IPv4. Some emails may fail to get delivered or be flagged as spam.
      3:
        status: SUCCESS
        summary: The IPs and domains used by this server do not appear to be blacklisted
      4:
        status: SUCCESS
        summary: 0 pending emails in the mail queues
  6:
    description: Services status check
    id: services
    items:
      0:
        status: SUCCESS
        summary: Service dnsmasq is running!
      1:
        status: SUCCESS
        summary: Service dovecot is running!
      2:
        status: SUCCESS
        summary: Service fail2ban is running!
      3:
        status: SUCCESS
        summary: Service filebrowser is running!
      4:
        details: You can try to restart the service, and if it doesn't work, have a look at the service logs in the webadmin (from the command line, you can do this with 'yunohost service restart funkwhale-beat' and 'yunohost service log funkwhale-beat').
        status: ERROR
        summary: Service funkwhale-beat is failed :(
      5:
        status: SUCCESS
        summary: Service funkwhale-server is running!
      6:
        status: SUCCESS
        summary: Service funkwhale-worker is running!
      7:
        status: SUCCESS
        summary: Service lstu is running!
      8:
        details: You can try to restart the service, and if it doesn't work, have a look at the service logs in the webadmin (from the command line, you can do this with 'yunohost service restart monitorix' and 'yunohost service log monitorix').
        status: ERROR
        summary: Service monitorix is failed :(
      9:
        status: SUCCESS
        summary: Service mysql is running!
      10:
        status: SUCCESS
        summary: Service nginx is running!
      11:
        status: SUCCESS
        summary: Service opendkim is running!
      12:
        status: SUCCESS
        summary: Service peertube is running!
      13:
        status: SUCCESS
        summary: Service postfix is running!
      14:
        status: SUCCESS
        summary: Service postgresql is running!
      15:
        status: SUCCESS
        summary: Service redis-server is running!
      16:
        status: SUCCESS
        summary: Service slapd is running!
      17:
        status: SUCCESS
        summary: Service ssh is running!
      18:
        status: SUCCESS
        summary: Service umami is running!
      19:
        status: SUCCESS
        summary: Service yunohost-api is running!
      20:
        status: SUCCESS
        summary: Service yunohost-firewall is running!
      21:
        status: SUCCESS
        summary: Service yunohost-portal-api is running!
      22:
        status: SUCCESS
        summary: Service yunomdns is running!
  7:
    description: System resources
    id: systemresources
    items:
      0:
        status: SUCCESS
        summary: The system still has 1.3 GiB (34%) RAM available out of 3.7 GiB.
      1:
        details: Please be careful and aware that if the server is hosting swap on an SD card or SSD storage, it may drastically reduce the life expectancy of the device.
        status: SUCCESS
        summary: The system has 1000 MiB of swap!
      2:
        status: SUCCESS
        summary: Storage / (on device /dev/sda2) still has 177 GiB (39%) space left (out of 450 GiB)!
      3:
        status: SUCCESS
        summary: Storage /boot (on device /dev/sda1) still has 224 MiB (88%) space left (out of 255 MiB)!
  8:
    description: System configurations
    id: regenconf
    items:
      0:
        details: This is probably OK if you know what you're doing! YunoHost will stop updating this file automatically… But beware that YunoHost upgrades could contain important recommended changes. If you want to, you can inspect the differences with 'yunohost tools regen-conf apt --dry-run --with-diff' and force the reset to the recommended configuration with 'yunohost tools regen-conf apt --force'
        status: WARNING
        summary: Configuration file /etc/apt/sources.list.d/extra_php_version.list appears to have been manually modified.
      1:
        details: This is probably OK if you know what you're doing! YunoHost will stop updating this file automatically… But beware that YunoHost upgrades could contain important recommended changes. If you want to, you can inspect the differences with 'yunohost tools regen-conf apt --dry-run --with-diff' and force the reset to the recommended configuration with 'yunohost tools regen-conf apt --force'
        status: WARNING
        summary: Configuration file /etc/apt/sources.list.d/yarn.list appears to have been manually modified.
  9:
    description: Applications
    id: apps
    items:
      details: This application is currently flagged as broken on YunoHost's application catalog. This may be a temporary issue while the maintainers attempt to fix the issue. In the meantime, upgrading this app is disabled.
      status: WARNING
      summary: An issue was found for app Funkwhale

That first command took quite a while to run.

root@host:~# sudo yunohost tools regen-conf --dry-run --with-diff

Warning: The configuration file '/etc/systemd/system/ntp.service.d/ynh-override.conf' has been manually modified and will not be updated
Info: The configuration file '/etc/apt/sources.list.d/yarn.list' was removed manually, and will not be created
Warning: The configuration file '/etc/apt/sources.list.d/extra_php_version.list' has been manually modified and will not be updated
Warning: The configuration file '/etc/nginx/conf.d/domain.com.conf' has been manually modified and will not be updated
Warning: The configuration file '/etc/nginx/conf.d/main.domain2.com.conf' has been manually modified and will not be updated
Warning: The configuration file '/etc/nginx/conf.d/domain2.com.conf' has been manually modified and will not be updated
Success! The configuration would have been updated for category 'dnsmasq'
apt:
  applied:
  pending:
    /etc/apt/sources.list.d/extra_php_version.list:
      diff: @@ -1 +1 @@
-deb https://packages.sury.org/php/ bookworm main
+deb [signed-by=/etc/apt/trusted.gpg.d/extra_php_version.gpg] https://packages.sury.org/php/ bookworm main
      status: modified
    /etc/apt/sources.list.d/yarn.list:
      diff: @@ -0,0 +1 @@
+deb [signed-by=/etc/apt/trusted.gpg.d/yarn.gpg] https://dl.yarnpkg.com/debian/ stable main
      status: removed
dnsmasq:
  applied:
    /etc/resolv.dnsmasq.conf:
      diff: @@ -1,24 +1,24 @@
+nameserver 194.242.2.2
+nameserver 2a00:5881:8100:1000::3
+nameserver 2001:1608:10:25::9249:d69b
+nameserver 185.233.100.100
+nameserver 194.150.168.168
+nameserver 84.200.70.40
+nameserver 2001:678:8::64
+nameserver 194.0.5.3
+nameserver 2a01:3a0:53:53::
+nameserver 89.233.43.71
+nameserver 194.0.5.64
 nameserver 2001:1608:10:25::1c04:b12f
-nameserver 2a01:3a0:53:53::
+nameserver 84.200.69.80
+nameserver 2a07:e340::2
+nameserver 185.233.100.101
+nameserver 89.234.141.66
+nameserver 91.239.100.100
+nameserver 195.160.173.53
+nameserver 2001:67c:28a4::
+nameserver 2a0c:e300::101
+nameserver 2a0c:e300::1337
+nameserver 2001:678:8::3
+nameserver 45.67.81.23
 nameserver 2a0c:e300::100
-nameserver 195.160.173.53
-nameserver 84.200.69.80
-nameserver 194.150.168.168
-nameserver 2a07:e340::2
-nameserver 2001:678:8::3
-nameserver 91.239.100.100
-nameserver 84.200.70.40
-nameserver 2001:1608:10:25::9249:d69b
-nameserver 2a00:5881:8100:1000::3
-nameserver 185.233.100.101
-nameserver 45.67.81.23
-nameserver 194.242.2.2
-nameserver 194.0.5.64
-nameserver 89.233.43.71
-nameserver 185.233.100.100
-nameserver 2001:678:8::64
-nameserver 2001:67c:28a4::
-nameserver 89.234.141.66
-nameserver 2a0c:e300::1337
-nameserver 2a0c:e300::101
-nameserver 194.0.5.3
      status: updated
  pending:
nginx:
  applied:
  pending:
    /etc/nginx/conf.d/domain.com.conf:
      diff: @@ -7,8 +7,6 @@
     listen 80;
     listen [::]:80;
     server_name domain.com;
-
-    error_page 404 /404.html;

     access_by_lua_file /usr/share/ssowat/access.lua;

@@ -39,11 +37,11 @@
 }

 server {
+
     listen 443 ssl http2;
     listen [::]:443 ssl http2;
+
     server_name domain.com;
-
-    error_page 404 /404.html;

     include /etc/nginx/conf.d/security.conf.inc;

@@ -79,5 +77,4 @@

     access_log /var/log/nginx/domain.com-access.log;
     error_log /var/log/nginx/domain.com-error.log;
-}
-
+}
      status: modified
    /etc/nginx/conf.d/domain2.com.conf:
      diff: @@ -7,8 +7,6 @@
     listen 80;
     listen [::]:80;
     server_name domain2.com;
-
-    error_page 404 /notfound.html;

     access_by_lua_file /usr/share/ssowat/access.lua;

@@ -39,11 +37,11 @@
 }

 server {
+
     listen 443 ssl http2;
     listen [::]:443 ssl http2;
+
     server_name domain2.com;
-
-    error_page 404 /notfound.html;

     include /etc/nginx/conf.d/security.conf.inc;

@@ -79,5 +77,4 @@

     access_log /var/log/nginx/domain2.com-access.log;
     error_log /var/log/nginx/domain2.com-error.log;
-}
-
+}
      status: modified
    /etc/nginx/conf.d/main.domain2.com.conf:
      diff: @@ -37,8 +37,10 @@
 }

 server {
+
     listen 443 ssl http2;
     listen [::]:443 ssl http2;
+
     server_name main.domain2.com;

     include /etc/nginx/conf.d/security.conf.inc;
@@ -47,7 +49,7 @@
     ssl_certificate_key /etc/yunohost/certs/main.domain2.com/key.pem;


-    #more_set_headers "Strict-Transport-Security : max-age=63072000; includeSubDomains; preload";
+    more_set_headers "Strict-Transport-Security : max-age=63072000; includeSubDomains; preload";


     # OCSP settings
@@ -75,5 +77,4 @@

     access_log /var/log/nginx/main.domain2.com-access.log;
     error_log /var/log/nginx/main.domain2.com-error.log;
-}
-
+}
      status: modified
yunohost:
  applied:
  pending:
    /etc/systemd/system/ntp.service.d/ynh-override.conf:
      diff: @@ -1,3 +0,0 @@
-[Unit]
-ConditionCapability=CAP_SYS_TIME
-ConditionVirtualization=!container
      status: modified

Of which, I intentionally modified

Warning: The configuration file '/etc/nginx/conf.d/domain.com.conf' has been manually modified and will not be updated
Warning: The configuration file '/etc/nginx/conf.d/main.domain2.com.conf' has been manually modified and will not be updated
Warning: The configuration file '/etc/nginx/conf.d/domain2.com.conf' has been manually modified and will not be updated

Oh, and yarn? Peertube modifies that.

command 2:

root@host:~# sudo yunohost app list
apps:
  0:
    description: Web File Browser
    domain_path: host.domain2.com/filebrowser
    id: filebrowser
    name: Filebrowser
    version: 2.32.0~ynh1
  1:
    description: Convivial and modern music server
    domain_path: music.domain.com/
    id: funkwhale
    name: Funkwhale
    version: 1.4.0~ynh4
  2:
    description: URL Shortener
    domain_path: host.domain2.com/u
    id: lstu
    name: Lstu
    version: 0.28-0~ynh4
  3:
    description: Wiki package originally for use on Wikipedia
    domain_path: host.domain.com/wiki
    id: mediawiki
    name: MediaWiki
    version: 1.43.0~ynh1
  4:
    description: Custom Web app with SFTP access to serve static (HTML, CSS, JS) and PHP files
    domain_path: domain.com/
    id: my_webapp
    name: My 2nd Website
    version: 1.0~ynh19
  5:
    description: Custom Web app with SFTP access to serve static (HTML, CSS, JS) and PHP files
    domain_path: domain2.com/
    id: my_webapp__2
    name: My Mc Server Site
    version: 1.0~ynh19
  6:
    description: Federated video streaming platform
    domain_path: peer.domain.com/
    id: peertube
    name: PeerTube
    version: 7.1.0~ynh1
  7:
    description: Create a redirection or a proxy to another path
    domain_path: www.domain.com/
    id: redirect
    name: 2nd Site WWW Redirect
    version: 2.0~ynh4
  8:
    description: Create a redirection or a proxy to another path
    domain_path: www.domain2.com/
    id: redirect__2
    name: My www redirect
    version: 2.0~ynh4
  9:
    description: Create a redirection or a proxy to another path
    domain_path: test.domain2.com/
    id: redirect__3
    name: Redirect
    version: 2.0~ynh4
  10:
    description: Create a redirection or a proxy to another path
    domain_path: main.domain2.com/
    id: redirect__4
    name: main.domain2.com
    version: 2.0~ynh4
  11:
    description: Create a redirection or a proxy to another path
    domain_path: imgs.domain.com/
    id: redirect__5
    name: Immich 2nd Server
    version: 2.0~ynh4
  12:
    description: Create a redirection or a proxy to another path
    domain_path: archive.domain2.com/
    id: redirect__6
    name: Redirect
    version: 2.0~ynh4
  13:
    description: Create a redirection or a proxy to another path
    domain_path: etc.domain2.com/
    id: redirect__7
    name: Redirect
    version: 2.0~ynh4
  14:
    description: Create a redirection or a proxy to another path
    domain_path: shop.domain.com/
    id: redirect__8
    name: Redirect
    version: 2.1~ynh1
  15:
    description: Open Source Webmail software
    domain_path: host.domain2.com/webmail
    id: roundcube
    name: Roundcube
    version: 1.6.10~ynh1
  16:
    description: Simple, fast, privacy-focused alternative to Google Analytics
    domain_path: analytics.domain2.com/
    id: umami
    name: Umami
    version: 2.17.0~ynh1

command 3:

root@host:~# ls /etc/php/*/fpm/pool.d
/etc/php/7.4/fpm/pool.d:
monitorix_status.conf  www.conf

/etc/php/8.0/fpm/pool.d:

/etc/php/8.1/fpm/pool.d:
mediawiki.conf  monitorix_status.conf  prestashop.conf

/etc/php/8.3/fpm/pool.d:
mediawiki.conf  monitorix_status.conf  nextcloud.conf  roundcube.conf  www.conf

Note: monitorix had an issue uninstalling properly a while back. the monitorix_status.conf are likely a result of that.

just throwing this out there, here’s the error when I run diagnosis for IP connectivity, not that it really matters.

Error: Diagnosis failed for category 'ip':
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/yunohost/diagnosis.py", line 185, in diagnosis_run
    code, report = diagnoser.diagnose(force=force)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/yunohost/diagnosis.py", line 433, in diagnose
    items = list(self.run())
            ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/yunohost/diagnosers/10-ip.py", line 69, in run
    good_resolvconf = self.good_resolvconf()
                      ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/yunohost/diagnosers/10-ip.py", line 231, in good_resolvconf
    content = read_file("/etc/resolv.conf").strip().split("\n")
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/moulinette/utils/filesystem.py", line 54, in read_file
    raise MoulinetteError("file_not_exist", path=file_path)
moulinette.core.MoulinetteError: File does not exist: '/etc/resolv.conf'

Thank you again.

oh boy, This DID mess something up.
I do not have nextcloud installed
php expects a nextcloud pool (user has not been defined)
nextcloud pool expects a directory at /var/www/nextcloud
php pool nextcloud can not get uid for user nextcloud.

(my mediawiki and roundcube are down because of this, too.)

Not sure how to get past this.

Please advise.

I see that there is a similar forum post matching this description of the issue

You have a lot of errors :

  • I don’t see php*-fpm in your services section of the diagnosis
  • You have nginx customisations that should have been add as custom.conf instead of modifying domain.com.conf
  • “File does not exist: ‘/etc/resolv.conf’”
  • “Configuration file /etc/apt/sources.list.d/extra_php_version.list appears to have been manually modified.”
  • “Configuration file /etc/apt/sources.list.d/yarn.list appears to have been manually modified.”

:warning: Before you start, be sure to have a backup or a snapshot.

Let’s begin with apt :
sudo yunohost tools regen-conf apt --force

Then remove nextcloud.conf (since you uninstalled it) :
sudo rm /etc/php/8.3/fpm/pool.d/nextcloud.conf

Reinstall php-fpm :
sudo apt install php7.4-fpm php8.1-fpm php8.3-fpm

Add yunohost services :

sudo yunohost service add php7.4-fpm
sudo yunohost service add php8.1-fpm
sudo yunohost service add php8.3-fpm

Start yunohost php services :

sudo yunohost service enable php7.4-fpm
sudo yunohost service enable php8.1-fpm
sudo yunohost service enable php8.3-fpm

sudo yunohost service start php7.4-fpm
sudo yunohost service start php8.1-fpm
sudo yunohost service start php8.3-fpm

Check them :

sudo yunohost service status php7.4-fpm
sudo yunohost service status php8.1-fpm
sudo yunohost service status php8.3-fpm

Then rerun the diagnosis

Thank you for the response.

You’re right, php is missing. How did that happen?

I was not aware that there was a proper way to modify the nginx config. I’ve read through the yunohost docs, and haven’t seen anything on that. Where can I read up on how to properly implement these custom.conf files? For now, I copied the modified files into the subdirectory.d/.

I have used yunohost’s backup function and exported a copy to a remote location. I also have timeshift setup (rsync), but I think it’s a little broken too. Gave me a segmentation fault last time I tried it. Computers bring me joy.

so, php8.3 is so broken that apt install --fix-broken doesn’t know what to do.

eand1002@host:/etc/php/8.3/fpm/pool.d $ sudo apt install php7.4-fpm php8.1-fpm php8.3-fpm
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
php8.3-fpm is already the newest version (8.3.19-1+0~20250313.57+debian12~1.gbpe7e891).
php8.3-fpm set to manually installed.
The following NEW packages will be installed:
  php7.4-fpm php8.1-fpm
0 upgraded, 2 newly installed, 0 to remove and 7 not upgraded.
1 not fully installed or removed.
Need to get 1,322 kB/2,864 kB of archives.
After this operation, 10.5 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 https://packages.sury.org/php bookworm/main arm64 php7.4-fpm arm64 1:7.4.33-18+0~20250310.100+debian12~1.gbpaac02c [1,322 kB]
Fetched 1,322 kB in 2s (558 kB/s)
Selecting previously unselected package php7.4-fpm.
(Reading database ... 85120 files and directories currently installed.)
Preparing to unpack .../php7.4-fpm_1%3a7.4.33-18+0~20250310.100+debian12~1.gbpaac02c_arm64.deb ...
Unpacking php7.4-fpm (1:7.4.33-18+0~20250310.100+debian12~1.gbpaac02c) ...
Selecting previously unselected package php8.1-fpm.
Preparing to unpack .../php8.1-fpm_8.1.32-1+0~20250313.71+debian12~1.gbpded0ce_arm64.deb ...
Unpacking php8.1-fpm (8.1.32-1+0~20250313.71+debian12~1.gbpded0ce) ...
Setting up php7.4-fpm (1:7.4.33-18+0~20250310.100+debian12~1.gbpaac02c) ...
Setting up php8.3-fpm (8.3.19-1+0~20250313.57+debian12~1.gbpe7e891) ...
Job for php8.3-fpm.service failed because the control process exited with error code.
See "systemctl status php8.3-fpm.service" and "journalctl -xeu php8.3-fpm.service" for details.
invoke-rc.d: initscript php8.3-fpm, action "restart" failed.
● php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php8.3-fpm.service; enabled; preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Tue 2025-04-08 16:51:09 CDT; 23ms ago
       Docs: man:php-fpm8.3(8)
    Process: 276657 ExecStart=/usr/sbin/php-fpm8.3 --nodaemonize --fpm-config /etc/php/8.3/fpm/php-fpm.conf (code=exited, status=78)
    Process: 276658 ExecStopPost=/usr/lib/php/php-fpm-socket-helper remove /run/php/php-fpm.sock /etc/php/8.3/fpm/pool.d/www.conf 83 (code=exited, status=0/SUCCESS)
   Main PID: 276657 (code=exited, status=78)
        CPU: 237ms

Apr 08 16:51:10 host.edsmcserv.com systemd[1]: Starting php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager...
Apr 08 16:51:11 host.edsmcserv.com php-fpm8.3[276667]: [08-Apr-2025 16:51:11] ALERT: [pool nextcloud] user has not been defined
Apr 08 16:51:11 host.edsmcserv.com php-fpm8.3[276667]: [08-Apr-2025 16:51:11] ERROR: failed to post process the configuration
Apr 08 16:51:11 host.edsmcserv.com php-fpm8.3[276667]: [08-Apr-2025 16:51:11] ERROR: FPM initialization failed
Apr 08 16:51:11 host.edsmcserv.com systemd[1]: php8.3-fpm.service: Main process exited, code=exited, status=78/CONFIG
Apr 08 16:51:11 host.edsmcserv.com systemd[1]: php8.3-fpm.service: Failed with result 'exit-code'.
Apr 08 16:51:11 host.edsmcserv.com systemd[1]: Failed to start php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager.
Apr 08 16:51:11 host.edsmcserv.com systemd[1]: php8.3-fpm.service: Scheduled restart job, restart counter is at 3.
Apr 08 16:51:11 host.edsmcserv.com systemd[1]: Stopped php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager.
Apr 08 16:51:11 host.edsmcserv.com systemd[1]: Starting php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager...
dpkg: error processing package php8.3-fpm (--configure):
 installed php8.3-fpm package post-installation script subprocess returned error exit status 1
Setting up php8.1-fpm (8.1.32-1+0~20250313.71+debian12~1.gbpded0ce) ...

Creating config file /etc/php/8.1/fpm/php.ini with new version
Created symlink /etc/systemd/system/multi-user.target.wants/php8.1-fpm.service → /lib/systemd/system/php8.1-fpm.service.
Job for php8.1-fpm.service failed because the control process exited with error code.
See "systemctl status php8.1-fpm.service" and "journalctl -xeu php8.1-fpm.service" for details.
invoke-rc.d: initscript php8.1-fpm, action "start" failed.
● php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php8.1-fpm.service; enabled; preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Tue 2025-04-08 16:51:17 CDT; 24ms ago
       Docs: man:php-fpm8.1(8)
    Process: 277865 ExecStart=/usr/sbin/php-fpm8.1 --nodaemonize --fpm-config /etc/php/8.1/fpm/php-fpm.conf (code=exited, status=78)
    Process: 277866 ExecStopPost=/usr/lib/php/php-fpm-socket-helper remove /run/php/php-fpm.sock /etc/php/8.1/fpm/pool.d/www.conf 81 (code=exited, status=0/SUCCESS)
   Main PID: 277865 (code=exited, status=78)
        CPU: 163ms
dpkg: error processing package php8.1-fpm (--configure):
 installed php8.1-fpm package post-installation script subprocess returned error exit status 1
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for php7.4-fpm (1:7.4.33-18+0~20250310.100+debian12~1.gbpaac02c) ...
Errors were encountered while processing:
 php8.3-fpm
 php8.1-fpm
E: Sub-process /usr/bin/dpkg returned an error code (1)
eand1002@host:/etc/php/8.3/fpm/pool.d $

…I did not expect 8.1 to fail… “[pool prestashop], the chdir path ''var/www/prestashop' does not exist” (prestashop was another application I had PHP issues with… but I thought it uninstalled properly?? https://paste.yunohost.org/raw/mahoyayiku) same loop as mentioned above with nextcloud. wants a user, wants a directory, but can not get a UID for user ‘prestashop’.

adding the services seemed successful, but the ‘service enable’ and ‘service start’ failed for php 8.1/8.3
hey, 7.4 works :slight_smile:

Please let me know if you have a solution to get past this hurdle.

Thank you again for the response.

Ok, so apt remove php8.3 does not work,

but boy oh boy apt purge php8.3-fpm does.

It allows me to reinstall php, and I was able to setup the services you mentioned above!

New problem: it’s not enough?

Mediawiki doesn’t work now, since I am missing PHP extensions.
https://paste.yunohost.org/raw/azezequvak
…And boy is this a nightmare! Even though I reinstalled php, I’m having to create many directories. (honestly my fault; I deleted them because I didn’t want to remove the media pools individually, but c’mon, I expected the folders to be properly regenerated on a fresh install!!!) e.g. php/8.3/cli ← that directory was not created? Installing modules isn’t going well, since the mods-available folders don’t exist, so php thinks there are no modules?

So, I create the folders manually, including cli/mods-available and fpm/mods-available, then I have to purge the modules, and reinstall them so that they’ll actually create the .ini files.

And with that, mediawiki works again! Roundcube does not, but who cares about roundcube? I’ll probably just have to reinstall.
For those following along at home:

apt purge php8.3-{cli,fpm,common,mbstring,xml,curl,zip,gd,mysql,bcmath,intl,opcache,readline,ctype,iconv,fileinfo,intl}
apt install php8.3-{cli,fpm,common,mbstring,xml,curl,zip,gd,mysql,bcmath,intl,opcache,readline,ctype,iconv,fileinfo,intl}