Viewing file: list-php-ini.pl (3.07 KB) -rwxrwxr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
=head1 list-php-ini.pl
Show PHP variables for some or all domains.
This command can be used to list the value of a PHP configuration variable (set in the php.ini file) for one or many virtual servers at once. The servers to update can be selected with the C<--domain> or C<--user> flags, or you can choose to modify them all with the C<--all-domains> option.
If your system supports multiple PHP versions, you can limit the changes to the config for a specific version with the C<--php-version> flag followed by a number, like 7.4 or 8.2.
The variables to show are set with the C<--ini-name> flag, which can be given multiple times to list more than one variable.
=cut
package virtual_server; if (!$module_name) { $main::no_acl_check++; $ENV{'WEBMIN_CONFIG'} ||= "/etc/webmin"; $ENV{'WEBMIN_VAR'} ||= "/var/webmin"; if ($0 =~ /^(.*)\/[^\/]+$/) { chdir($pwd = $1); } else { chop($pwd = `pwd`); } $0 = "$pwd/list-php-ini.pl"; require './virtual-server-lib.pl'; $< == 0 || die "list-php-ini.pl must be run as root"; } &foreign_require("phpini"); @OLDARGV = @ARGV; &set_all_text_print();
# Parse command-line args while(@ARGV > 0) { local $a = shift(@ARGV); if ($a eq "--domain") { push(@domains, shift(@ARGV)); } elsif ($a eq "--user") { push(@users, shift(@ARGV)); } elsif ($a eq "--all-domains") { $all_doms = 1; } elsif ($a eq "--ini-name") { push(@ini_names, shift(@ARGV)); } elsif ($a eq "--php-version") { $php_ver = shift(@ARGV); } elsif ($a eq "--name-only") { $nameonly = 1; } elsif ($a eq "--multiline") { $multiline = 1; } elsif ($a eq "--help") { &usage(); } else { &usage("Unknown parameter $a"); } }
# Validate parameters @domains || @users || $all_doms || usage("No domains to modify specified"); @ini_names || &usage("The --ini-name parameter must be given at least once");
# Get the domains if (@domains || @users) { @doms = &get_domains_by_names_users(\@domains, \@users, \&usage); } else { @doms = &list_domains(); }
# Get from domain foreach my $d (@doms) { # Check if this domain even makes sense next if (!&domain_has_website($d) || $d->{'alias'}); $mode = &get_domain_php_mode($d); next if ($mode eq "mod_php" || $mode eq "none");
# Get the ini files @inis = sort { $b->[0] <=> $a->[0] } &list_domain_php_inis($d); if ($php_ver) { ($ini) = grep { $_->[0] == $php_ver } @inis; } else { $ini = $inis[0]; } next if (!$ini);
# Get the values $conf = &phpini::get_config($ini->[1]); if ($nameonly) { foreach $n (@ini_names) { $v = &phpini::find_value($n, $conf); print $v,"\n"; } } else { print $d->{'dom'},"\n"; foreach $n (@ini_names) { $v = &phpini::find_value($n, $conf); print " ${n}: $v\n"; } } }
sub usage { print "$_[0]\n\n" if ($_[0]); print "Shows PHP variables for some or all domains.\n"; print "\n"; print "virtualmin list-php-ini --domain name | --user name | --all-domains\n"; print " [--php-version number]\n"; print " <--ini-name name>+ <--ini-value value>+\n"; print " [--name-only]\n"; exit(1); }
|