froxlor / Froxlor

The server administration software for your needs - The official Froxlor development Git repository
http://www.froxlor.org
GNU General Public License v2.0
1.62k stars 455 forks source link

PHP stopped execute after the installation #1223

Closed hermitwhite closed 7 months ago

hermitwhite commented 7 months ago

I am yet to start using Froxlor. After the final step of installation, the two sudo commands finished without error messages, but PHP stopped working and I can only see plain PHP code in my browser after this. This is a fresh new installed Debian Bookworm on a Google Cloud Platform VM and I repeated this problem twice. I have tested mod-fcgid and php-fpm, installed from tarball and apt, and there are no related error messages in /var/log/apache2/error.log.

System information

d00p commented 7 months ago

Sounds like not everything the commands (configuration) did went without issues. Please provide the full output of the finishing command

d00p commented 7 months ago

For php-fpm: validate and check that the php-fpm service is running and check its log.

Also, output of the generated froxlor vhost configs would be helpful to identify the issue you are having

hermitwhite commented 7 months ago

root@localhost: /var/www/html/froxlor/bin/froxlor-cli froxlor:config-services -a '{"distro":"bookworm","dns":"x","http":"apache24","smtp":"postfix_dovecot","mail":"dovecot_postfix2","ftp":"proftpd","system":["cron","libnssextrausers","logrotate","goaccess","php-fpm"]}' --yes-to-all

Output:

Creating missing certificate /etc/ssl/froxlor_selfsigned.pem
--- Configuring: HTTP ---
Configuring 'apache24'
Installing required packages
Reading package lists...
Building dependency tree...
Reading state information...
apache2 is already the newest version (2.4.57-2).
apache2 set to manually installed.
The following packages were automatically installed and are no longer required:
  libevent-2.1-7 libgnutls-dane0 libidn12 libunbound8
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Creating file "/etc/apache2/conf-enabled/acme.conf"
--- Configuring: DNS ---
Skipping DNS configuration as desired
--- Configuring: SMTP ---
Configuring 'postfix_dovecot'
Installing required packages
Reading package lists...
Building dependency tree...
Reading state information...
postfix is already the newest version (3.7.9-0+deb12u1).
postfix set to manually installed.
postfix-mysql is already the newest version (3.7.9-0+deb12u1).
postfix-mysql set to manually installed.
The following packages were automatically installed and are no longer required:
  libevent-2.1-7 libgnutls-dane0 libidn12 libunbound8
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Creating file "/etc/postfix/main.cf"
Creating file "/etc/postfix/mysql-virtual_alias_maps.cf"
Creating file "/etc/postfix/mysql-virtual_mailbox_domains.cf"
Creating file "/etc/postfix/mysql-virtual_mailbox_maps.cf"
Creating file "/etc/postfix/mysql-virtual_sender_permissions.cf"
Creating file "/etc/postfix/mysql-virtual_uid_maps.cf"
Creating file "/etc/postfix/mysql-virtual_gid_maps.cf"
Creating file "/etc/aliases"
Creating file "/etc/postfix/master.cf"
--- Configuring: MAIL ---
Configuring 'dovecot_postfix2'
Installing required packages
Reading package lists...
Building dependency tree...
Reading state information...
dovecot-imapd is already the newest version (1:2.3.19.1+dfsg1-2.1).
dovecot-imapd set to manually installed.
dovecot-pop3d is already the newest version (1:2.3.19.1+dfsg1-2.1).
dovecot-pop3d set to manually installed.
dovecot-mysql is already the newest version (1:2.3.19.1+dfsg1-2.1).
dovecot-mysql set to manually installed.
The following packages were automatically installed and are no longer required:
  libevent-2.1-7 libgnutls-dane0 libidn12 libunbound8
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  dovecot-managesieved dovecot-sieve
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 3101 kB of archives.
After this operation, 4150 kB of additional disk space will be used.
Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
Get:2 https://deb.debian.org/debian bookworm/main amd64 dovecot-sieve amd64 1:2.3.19.1+dfsg1-2.1 [1702 kB]
Get:3 https://deb.debian.org/debian bookworm/main amd64 dovecot-managesieved amd64 1:2.3.19.1+dfsg1-2.1 [1399 kB]
Fetched 3101 kB in 1s (5826 kB/s)
                                 Selecting previously unselected package dovecot-sieve.
(Reading database ... 75741 files and directories currently installed.)
Preparing to unpack .../dovecot-sieve_1%3a2.3.19.1+dfsg1-2.1_amd64.deb ...
Unpacking dovecot-sieve (1:2.3.19.1+dfsg1-2.1) ...
Selecting previously unselected package dovecot-managesieved.
Preparing to unpack .../dovecot-managesieved_1%3a2.3.19.1+dfsg1-2.1_amd64.deb ...
Unpacking dovecot-managesieved (1:2.3.19.1+dfsg1-2.1) ...
Setting up dovecot-sieve (1:2.3.19.1+dfsg1-2.1) ...

Creating config file /etc/dovecot/conf.d/90-sieve.conf with new version

Creating config file /etc/dovecot/conf.d/90-sieve-extprograms.conf with new version
Setting up dovecot-managesieved (1:2.3.19.1+dfsg1-2.1) ...

Creating config file /etc/dovecot/conf.d/20-managesieve.conf with new version
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for dovecot-core (1:2.3.19.1+dfsg1-2.1) ...
Creating file "/etc/dovecot/dovecot-sql.conf.ext"
mv: cannot stat '/etc/dovecot/conf.d/99-froxlor.conf': No such file or directory
Creating file "/etc/dovecot/conf.d/99-froxlor.conf"
--- Configuring: FTP ---
Configuring 'proftpd'
Installing required packages
Reading package lists...
Building dependency tree...
Reading state information...
proftpd-mod-mysql is already the newest version (1.3.8+dfsg-4+deb12u2).
proftpd-mod-mysql set to manually installed.
The following packages were automatically installed and are no longer required:
  libevent-2.1-7 libgnutls-dane0 libidn12 libunbound8
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  proftpd-mod-crypto proftpd-mod-wrap
The following NEW packages will be installed:
  proftpd-basic proftpd-mod-crypto proftpd-mod-wrap
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 1682 kB of archives.
After this operation, 2436 kB of additional disk space will be used.
Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
Get:2 https://deb.debian.org/debian bookworm/main amd64 proftpd-mod-wrap amd64 1.3.8+dfsg-4+deb12u2 [461 kB]
Get:3 https://deb.debian.org/debian bookworm/main amd64 proftpd-mod-crypto amd64 1.3.8+dfsg-4+deb12u2 [766 kB]
Get:4 https://deb.debian.org/debian bookworm/main amd64 proftpd-basic all 1.3.8+dfsg-4+deb12u2 [455 kB]
Fetched 1682 kB in 0s (6499 kB/s)
                                 Selecting previously unselected package proftpd-mod-wrap.
(Reading database ... 75780 files and directories currently installed.)
Preparing to unpack .../proftpd-mod-wrap_1.3.8+dfsg-4+deb12u2_amd64.deb ...
Unpacking proftpd-mod-wrap (1.3.8+dfsg-4+deb12u2) ...
Selecting previously unselected package proftpd-mod-crypto.
Preparing to unpack .../proftpd-mod-crypto_1.3.8+dfsg-4+deb12u2_amd64.deb ...
Unpacking proftpd-mod-crypto (1.3.8+dfsg-4+deb12u2) ...
Selecting previously unselected package proftpd-basic.
Preparing to unpack .../proftpd-basic_1.3.8+dfsg-4+deb12u2_all.deb ...
Unpacking proftpd-basic (1.3.8+dfsg-4+deb12u2) ...
Setting up proftpd-mod-crypto (1.3.8+dfsg-4+deb12u2) ...
Setting up proftpd-mod-wrap (1.3.8+dfsg-4+deb12u2) ...
Setting up proftpd-basic (1.3.8+dfsg-4+deb12u2) ...
Creating file "/etc/proftpd/create-cert.sh"
....+......+.+...+...........+.........+...............+...+...+.+......+.....+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.................+...........+......+....+..................+..+...+......+..........+............+.....+...............+...+............+....+.........+......+...+...........+......+............................+..+...+.............+...+...........+....+..+..................+....+...............+.....+.............+..............+.........+....+..+.............+...+...+.........+..+.............+...+.....+....+........+...............+......+......+.........+......+.+........+......+.+..+.......+...+.....+.............+.....+.............+........................+..+.+..............+....+............+............+............+..............+........................+......+.......+..............+................+.........+........+.............+..+.......+......+...+......+........+.+......+...+..+.........+......+.........+....+..+.+.....+.......+........+...+.+...+............+......+........+......+....+..+.......+...+........+....+...+....................+....+........+.......+.........+..+...+.+...............+.....+...+.......+......+.....+....+....................+....+..+.........+......+.......+......+..............+......+......+.........+............+.......+...+.....+...+.....................+...+......+.......+.................+.+.....+......................+.........+.........+.........+..+.+..+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
...+......+.....+....+.........+...+..+...+...+.+...........+.......+..+...+...+.......+..+....+.....+.+...+...+..+......+......+.+..+......+.......+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.......+......+..+.........+...............+.........+.+...+......+.....................+.....+..........+.....+...............+.+............+...+..+...............+.......+...+......+..+............+.+......+........+......................+.........+............+...+..+.......+..+.............+...+............+......+.....+.........+...+...+.+........+...+.......+........+...+............+.......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
-----
Creating file "/etc/proftpd/proftpd.conf"
Creating file "/etc/proftpd/modules.conf"
Creating file "/etc/proftpd/sql.conf"
Creating file "/etc/proftpd/tls.conf"
Creating file "/etc/proftpd/conf.d/99-froxlor-ratelimit.conf"
--- Configuring: SYSTEM ---
Configuring 'goaccess'
Installing required packages
Reading package lists...
Building dependency tree...
Reading state information...
goaccess is already the newest version (1:1.7-1).
goaccess set to manually installed.
The following packages were automatically installed and are no longer required:
  libevent-2.1-7 libgnutls-dane0 libidn12 libunbound8
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  jq libjq1
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 200 kB of archives.
After this operation, 483 kB of additional disk space will be used.
Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
Get:2 https://deb.debian.org/debian bookworm/main amd64 libjq1 amd64 1.6-2.1 [135 kB]
Get:3 https://deb.debian.org/debian bookworm/main amd64 jq amd64 1.6-2.1 [64.9 kB]
Fetched 200 kB in 0s (1035 kB/s)
                                Selecting previously unselected package libjq1:amd64.
(Reading database ... 75802 files and directories currently installed.)
Preparing to unpack .../libjq1_1.6-2.1_amd64.deb ...
Unpacking libjq1:amd64 (1.6-2.1) ...
Selecting previously unselected package jq.
Preparing to unpack .../archives/jq_1.6-2.1_amd64.deb ...
Unpacking jq (1.6-2.1) ...
Setting up libjq1:amd64 (1.6-2.1) ...
Setting up jq (1.6-2.1) ...
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+deb12u3) ...
Configuring 'libnssextrausers'
Installing required packages
Reading package lists...
Building dependency tree...
Reading state information...
The following packages were automatically installed and are no longer required:
  libevent-2.1-7 libgnutls-dane0 libidn12 libunbound8
Use 'sudo apt autoremove' to remove them.
Suggested packages:
  libc6-i386
The following NEW packages will be installed:
  libnss-extrausers
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 14.0 kB of archives.
After this operation, 57.3 kB of additional disk space will be used.
Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
Get:2 https://deb.debian.org/debian bookworm/main amd64 libnss-extrausers amd64 0.6-4.1 [14.0 kB]
Fetched 14.0 kB in 0s (74.1 kB/s)
                                 Selecting previously unselected package libnss-extrausers.
(Reading database ... 75816 files and directories currently installed.)
Preparing to unpack .../libnss-extrausers_0.6-4.1_amd64.deb ...
Unpacking libnss-extrausers (0.6-4.1) ...
Setting up libnss-extrausers (0.6-4.1) ...
Processing triggers for libc-bin (2.36-9+deb12u3) ...
Creating file "/etc/nsswitch.conf"
Configuring 'logrotate'
Installing required packages
Reading package lists...
Building dependency tree...
Reading state information...
logrotate is already the newest version (3.21.0-1).
logrotate set to manually installed.
The following packages were automatically installed and are no longer required:
  libevent-2.1-7 libgnutls-dane0 libidn12 libunbound8
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Creating file "/etc/logrotate.d/froxlor"
Configuring 'php-fpm'
Installing required packages
Reading package lists...
Building dependency tree...
Reading state information...
The following packages were automatically installed and are no longer required:
  libevent-2.1-7 libgnutls-dane0 libidn12 libunbound8
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  apache2-suexec-pristine
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 134 kB of archives.
After this operation, 180 kB of additional disk space will be used.
Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
Get:2 https://deb.debian.org/debian bookworm/main amd64 apache2-suexec-pristine amd64 2.4.57-2 [134 kB]
Fetched 134 kB in 0s (596 kB/s)
                               Selecting previously unselected package apache2-suexec-pristine.
(Reading database ... 75825 files and directories currently installed.)
Preparing to unpack .../apache2-suexec-pristine_2.4.57-2_amd64.deb ...
Unpacking apache2-suexec-pristine (2.4.57-2) ...
Setting up apache2-suexec-pristine (2.4.57-2) ...
update-alternatives: using /usr/lib/apache2/suexec-pristine to provide /usr/lib/apache2/suexec (suexec) in auto mode
Processing triggers for man-db (2.11.2-2) ...
Installing required packages
Reading package lists...
Building dependency tree...
Reading state information...
php-fpm is already the newest version (2:8.2+93).
The following packages were automatically installed and are no longer required:
  libevent-2.1-7 libgnutls-dane0 libidn12 libunbound8
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
--2024-01-11 05:45:05--  https://get.acme.sh/
Resolving get.acme.sh (get.acme.sh)... 172.67.199.16, 104.21.34.62, 2606:4700:3031::ac43:c710, ...
Connecting to get.acme.sh (get.acme.sh)|172.67.199.16|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘STDOUT’

-                              [ <=>                                     ]   1.01K  --.-KB/s    in 0s      

2024-01-11 05:45:05 (11.4 MB/s) - written to stdout [1032]

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  216k  100  216k    0     0   495k      0 --:--:-- --:--:-- --:--:--  495k
no crontab for root
no crontab for root
[Thu Jan 11 05:45:29 UTC 2024] Invalid status, server.some.domain:Verify error detail:**.**.**.**: Fetching http://server.some.domain/.well-known/acme-challenge/rMFC7NTS66e77BlGbrFKS5XUCtfH53bGknKfLT7HPC8: Timeout during connect (likely firewall problem)
[Thu Jan 11 05:45:29 UTC 2024] Please add '--debug' or '--log' to check more details.
[Thu Jan 11 05:45:29 UTC 2024] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh
Configuring 'cron'
Installing required packages
Reading package lists...
Building dependency tree...
Reading state information...
cron is already the newest version (3.0pl1-162).
cron set to manually installed.
gnupg is already the newest version (2.2.40-1.1).
The following packages were automatically installed and are no longer required:
  libevent-2.1-7 libgnutls-dane0 libidn12 libunbound8
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
[Thu Jan 11 05:45:53 UTC 2024] Invalid status, server.some.domain:Verify error detail:**.**.**.**: Fetching http://server.some.domain/.well-known/acme-challenge/QZvl82v3PSJpaE0mYcB3y27Vaw0F5jBlu4UQdlVRB6E: Timeout during connect (likely firewall problem)
[Thu Jan 11 05:45:53 UTC 2024] Please add '--debug' or '--log' to check more details.
[Thu Jan 11 05:45:53 UTC 2024] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh
All services have been configured

The "Timeout during connect (likely firewall problem)" parts are because I blocked http port for out of myself ip during installation.

php8.2-fpm is still runing, and nothing wrong in /var/log/php8.2-fpm.log.

d00p commented 7 months ago

And generated vhost (10_froxlor_*)

d00p commented 7 months ago

Interesting are the two beginning with 10_froxlor...

hermitwhite commented 7 months ago

There are following files in /etc/apache2/sites-enabled:

000-default.conf
03_froxlor_ocsp_cache.conf
05_froxlor_dirfix_nofcgid.conf
10_froxlor_ipandport_**.**.**.**.80.conf
10_froxlor_ipandport_**.**.**.**.443.conf

I tried move the froxlor related files to out of the folder but fixed nothing. Still has no PHP execution for server-wide.

hermitwhite commented 7 months ago

The contents of 10_froxlor...:

# 10_froxlor_ipandport_**.**.**.**.80.conf
# Created 11.01.2024 05:54
# Do NOT manually edit this file, all changes will be deleted after the next domain change at the panel.

<VirtualHost **.**.**.**:80>
DocumentRoot "/var/www/html/froxlor"
 ServerName server.some.domain
  <Directory "/lib/">
    <Files "userdata.inc.php">
    Require all denied
    </Files>
  </Directory>
  <DirectoryMatch "^/(bin|cache|logs|tests|vendor)/">
    Require all denied
  </DirectoryMatch>
  <FilesMatch \.(php)$>
  SetHandler proxy:unix:/var/lib/apache2/fastcgi/1-froxlor.panel-server.some.domain-php-fpm.socket|fcgi://localhost
  </FilesMatch>
  <Directory "/var/www/html/froxlor/">
      CGIPassAuth On
  </Directory>
</VirtualHost>
# 10_froxlor_ipandport_**.**.**.**.443.conf
# Created 11.01.2024 05:54
# Do NOT manually edit this file, all changes will be deleted after the next domain change at the panel.

<VirtualHost **.**.**.**:443>
DocumentRoot "/var/www/html/froxlor"
 ServerName server.some.domain
  <Directory "/lib/">
    <Files "userdata.inc.php">
    Require all denied
    </Files>
  </Directory>
  <DirectoryMatch "^/(bin|cache|logs|tests|vendor)/">
    Require all denied
  </DirectoryMatch>
  <FilesMatch \.(php)$>
  SetHandler proxy:unix:/var/lib/apache2/fastcgi/1-froxlor.panel-server.some.domain-php-fpm.socket|fcgi://localhost
  </FilesMatch>
  <Directory "/var/www/html/froxlor/">
      CGIPassAuth On
  </Directory>
 SSLEngine On
 SSLProtocol -ALL +TLSv1.2
 SSLCompression Off
 SSLSessionTickets on
 SSLHonorCipherOrder off
 SSLCipherSuite ECDH+AESGCM:ECDH+AES256:!aNULL:!MD5:!DSS:!DH:!AES128
 SSLVerifyDepth 10
 SSLCertificateFile /etc/ssl/froxlor-custom/server.some.domain.crt
 SSLCertificateKeyFile /etc/ssl/froxlor-custom/server.some.domain.key
 SSLCACertificateFile /etc/ssl/froxlor-custom/server.some.domain_CA.pem
 SSLCertificateChainFile /etc/ssl/froxlor-custom/server.some.domain_chain.pem
</VirtualHost>
d00p commented 7 months ago

And did you try restarting (not reloading) your apache webserver after configuration?

hermitwhite commented 7 months ago

I have restarted it in every single test and checked if php-fpm runing, and I used a info.php at html root to check if php working.

d00p commented 7 months ago

and you are opening froxlor in your browser using ServerName server.some.domain?

hermitwhite commented 7 months ago

Yes, there are no difference that opening with server.some.domain, some.domain, or anything.some.domain.

Another information: I tried to login while I yet to run the last server configuration command, the panel works and looks good (except the alarm about configuration); but it still fall into the situation before right after I run the configuration.

d00p commented 7 months ago

I you want, join us on discord (https://discord.froxlor.org) and we can take a closer look. Usually this works just fine out of the box

d00p commented 7 months ago

The server has a private ip address only and froxlor was set up to use the external ip (NAT'ed), a quick switch to the internal IP lead to the page being matched correctly by the webserver and it works