File: //scripts/show_php_settings
#!/usr/local/cpanel/3rdparty/bin/perl
# Copyright 2026 WebPros International, LLC
# All rights reserved.
# copyright@cpanel.net http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited.
package scripts::show_php_settings;
use cPstrict;
use Getopt::Long;
use Cpanel::Config::userdata ();
use Cpanel::PHP::Config ();
use Cpanel::PHP::Vhosts ();
use Cpanel::ProgLang ();
sub usage ( $err_msg = undef ) {
if ( defined $err_msg ) {
say "Error: $err_msg\n";
}
print <<"END_MESSAGE";
Usage: $0 [--help|-h]
Show the PHP settings for all users and domains.
See also /usr/local/cpanel/scripts/mass_change_php_setting
mass_change_php_setting allows you to change all users with a specific PHP version to another version.
END_MESSAGE
exit 1;
}
sub script () {
say "Showing PHP settings for all users and domains.";
my $php = Cpanel::ProgLang->new( 'type' => 'php' );
my $system_php_version = $php->get_system_default_package();
say "System default PHP version: $system_php_version";
my @users = Cpanel::Config::userdata::load_user_list();
my $versions = Cpanel::PHP::Vhosts::get_php_vhost_versions_from_php_config( Cpanel::PHP::Config::get_php_config_for_users( \@users ) );
printf( "%-15s %-30s %-10s %-5s %s\n", "User", "Vhost", "Current", "FPM", "System Default?" );
my @lines;
foreach my $domain (@$versions) {
my $user = $domain->{account};
my $vhost = $domain->{vhost};
my $current_ver = $domain->{version};
my $php_fpm = $domain->{php_fpm};
my $is_default = 0;
$is_default = 1 if ( exists( $domain->{phpversion_source}->{system_default} ) );
push( @lines, sprintf( "%-15s %-30s %-10s %-5s %s\n", $user, $vhost, $current_ver, $php_fpm, ( $is_default ? '(system default)' : '' ) ) );
}
print sort @lines;
return 0;
}
# Modulino behavior
unless (caller) {
my $help;
my $ok = GetOptions(
'help|h' => \$help,
);
if ( !$ok ) {
exit usage("Invalid option.\n");
}
if ($help) {
exit usage();
}
exit script();
}
1;
__END__
=head1 NAME
scripts::show_php_settings - Display PHP settings for all users and domains
=head1 SYNOPSIS
/usr/local/cpanel/scripts/show_php_settings [--help|-h]
=head1 DESCRIPTION
This script displays the PHP settings for all users and domains on the server.
It shows the current PHP version, PHP-FPM status, and whether each domain is
using the system default PHP version.
The output includes:
=over 4
=item * User - The cPanel account username
=item * Vhost - The domain name
=item * Current - The PHP version currently assigned to the domain
=item * FPM - Whether PHP-FPM is enabled (1) or disabled (0)
=item * System Default? - Indicates if the domain inherits the system default PHP version
=back
=head1 OPTIONS
=over 4
=item B<--help>, B<-h>
Display usage information and exit.
=back
=head1 EXIT STATUS
Returns 0 on success, 1 on error or when displaying help.
=head1 EXAMPLE OUTPUT
Showing PHP settings for all users and domains.
System default PHP version: ea-php83
User Vhost Current FPM System Default?
alice alice.example.com ea-php82 1
bob bob.example.com ea-php83 0 (system default)
charlie charlie.example.com ea-php84 1
=head1 SEE ALSO
L<scripts::mass_change_php_setting> - Change PHP versions for multiple domains
=cut