Gestionnaire de fichiers - Editer - /etc/yum/universal-hooks/multi_pkgs/posttrans/ea-__WILDCARD__/010-suphpconf.pl
Arrière
#!/usr/local/cpanel/3rdparty/bin/perl # cpanel - 010-suphpconf.pl Copyright 2017 cPanel, Inc. # All rights Reserved. # copyright@cpanel.net http://cpanel.net # This code is subject to the cPanel license. Unauthorized copying is prohibited package suphpconf; use strict; use warnings; use Cpanel::SysPkgs::SCL (); our $suphpconf = '/etc/suphp.conf'; run() unless caller; sub run { if ( -e $suphpconf ) { if ( !-e "/usr/local/bin/ea_convert_php_ini" ) { # This madness will go away with EA-5696 warn "Unable to update /etc/suphp.conf without the ea-cpanel-tools package installed.\n"; } else { require "/usr/local/bin/ea_convert_php_ini"; ##no critic (RequireBarewordIncludes) This madness will go away with EA-5696 my $parser = Parse::PHP::Ini->new; my $tree = $parser->parse( path => $suphpconf ); my $handlers = $parser->get_matching_section( $tree, 'handlers' ); if ( !$handlers ) { $handlers = $parser->make_section_node( 'handlers', -1 ); $tree->add_daughter($handlers); } my %packages; @packages{ @{ Cpanel::SysPkgs::SCL::get_scl_versions(qr/\w+-php/) } } = (); # update/cleanout existing entries for my $daughter ( @{ $handlers->{daughters} } ) { if ( $daughter->{name} =~ m{application/x-httpd-(.*)} ) { my $pkg = $1; if ( exists $packages{$pkg} ) { my $cgi_path = _get_cgi_path($pkg); my $count = $daughter->{attributes}{line}; # TODO: make this something else? my $tmp = $parser->make_setting_node( "application/x-httpd-$pkg", qq{"php:$cgi_path"}, $count ); my $attr = $tmp->attribute(); $parser->update_node( $daughter, $attr ); print "Ensuring current entry for “$pkg” is correct …\n"; $packages{$pkg} = "update"; } else { print "Ignoring current entry for “$pkg” …\n"; $packages{$pkg} = "ignore"; } } } # add entries reflecting the actual state for my $pkg ( keys %packages ) { if ( !$packages{$pkg} ) { my $cgi_path = _get_cgi_path($pkg); my $count = 0; # TODO: make this something else? my $setting = $parser->make_setting_node( "application/x-httpd-$pkg", qq{"php:$cgi_path"}, $count ); $handlers->add_daughter($setting); print "Adding entry for “$pkg” …\n"; $packages{$pkg} = "add"; } } # write $suphpconf _write_suphpconf($tree); } } else { print "Nothing to do ($suphpconf does not exist)\n"; } return; } ############### #### helpers ## ############### sub _get_cgi_path { my ($pkg) = @_; my $cgi_path = Cpanel::SysPkgs::SCL::get_scl_prefix($pkg) . "/root/usr/bin/php-cgi"; if ( !-x $cgi_path ) { warn "$cgi_path is not executable, please rectify (e.g. a symlink …/root to the right spot should do the trick)\n"; } return $cgi_path; } sub _write_suphpconf { my ($tree) = @_; # Encapsualte the madness here, NS use noted in /usr/local/bin/ea_convert_php_ini no warnings "once"; local $ea_convert_php_ini_file::Cfg{force} = 1; ea_convert_php_ini_file::write_php_ini( $tree, $suphpconf ); }
| ver. 1.4 |
Github
|
.
| PHP 8.0.30 | Génération de la page: 0 |
proxy
|
phpinfo
|
Réglages