Your IP : 216.73.216.1


Current Path : /home/fotouserdopd8j/agenciacrabli.com/
Upload File :
Current File : /home/fotouserdopd8j/agenciacrabli.com/cpanel.tar

userdata/fotolxhq/fotobodasv.com_SSL000064400000000562150522565370013624 0ustar00--- 
documentroot: /home/fotolxhq/public_html
group: fotolxhq
hascgi: 1
homedir: /home/fotolxhq
ip: 162.213.251.72
ipv6: ~
owner: wh
phpopenbasedirprotect: 1
port: 444
secruleengineoff: 0
serveradmin: webmaster@fotobodasv.com
serveralias: www.fotobodasv.com mail.fotobodasv.com
servername: fotobodasv.com
ssl: 1
usecanonicalname: 'Off'
user: fotolxhq
userdirprotect: ''
userdata/fotolxhq/neriostudios.com.fotobodasv.com_SSL000064400000000736150522565370017132 0ustar00--- 
documentroot: /home/fotolxhq/neriostudios.com
group: fotolxhq
hascgi: 1
homedir: /home/fotolxhq
ip: 162.213.251.72
ipv6: ~
is_addon: 1
owner: wh
phpopenbasedirprotect: 1
port: 444
secruleengineoff: 0
serveradmin: webmaster@neriostudios.com.fotobodasv.com
serveralias: www.neriostudios.com.fotobodasv.com mail.neriostudios.com www.neriostudios.com neriostudios.com
servername: neriostudios.com.fotobodasv.com
ssl: 1
usecanonicalname: 'Off'
user: fotolxhq
userdirprotect: -1
userdata/fotolxhq/neriostudios.com.fotobodasv.com_SSL.cache000064400000001017150522565370020165 0ustar00{"user":"fotolxhq","serveralias":"www.neriostudios.com.fotobodasv.com mail.neriostudios.com www.neriostudios.com neriostudios.com","userdirprotect":"-1","ssl":"1","homedir":"/home/fotolxhq","secruleengineoff":"0","port":"444","ipv6":null,"phpopenbasedirprotect":"1","is_addon":"1","usecanonicalname":"Off","ip":"162.213.251.72","group":"fotolxhq","serveradmin":"webmaster@neriostudios.com.fotobodasv.com","documentroot":"/home/fotolxhq/neriostudios.com","hascgi":"1","servername":"neriostudios.com.fotobodasv.com","owner":"wh"}userdata/fotolxhq/cache.json000064400000001431150522565370012167 0ustar00{"agenciacrabli.com.fotobodasv.com":["fotolxhq","wh","sub","fotobodasv.com","/home/fotolxhq/agenciacrabli.com","162.213.251.72:81","162.213.251.72:444","","0",""],"neriostudios.com.fotobodasv.com":["fotolxhq","wh","sub","fotobodasv.com","/home/fotolxhq/neriostudios.com","162.213.251.72:81","162.213.251.72:444","","0",""],"agenciacrabli.com":["fotolxhq","wh","addon","agenciacrabli.com.fotobodasv.com","/home/fotolxhq/agenciacrabli.com","162.213.251.72:81","162.213.251.72:444","","0",""],"neriostudios.com":["fotolxhq","wh","addon","neriostudios.com.fotobodasv.com","/home/fotolxhq/neriostudios.com","162.213.251.72:81","162.213.251.72:444","","0",""],"fotobodasv.com":["fotolxhq","wh","main","fotobodasv.com","/home/fotolxhq/public_html","162.213.251.72:81","162.213.251.72:444","","0",""]}userdata/fotolxhq/neriostudios.com.fotobodasv.com000064400000000760150522565370016406 0ustar00--- 
documentroot: /home/fotolxhq/neriostudios.com
group: fotolxhq
hascgi: 1
homedir: /home/fotolxhq
ip: 162.213.251.72
ipv6: ~
is_addon: 1
no_cache_update: 0
owner: wh
phpopenbasedirprotect: 1
port: 81
secruleengineoff: 0
serveradmin: webmaster@neriostudios.com.fotobodasv.com
serveralias: www.neriostudios.com.fotobodasv.com mail.neriostudios.com www.neriostudios.com neriostudios.com
servername: neriostudios.com.fotobodasv.com
ssl: 1
usecanonicalname: 'Off'
user: fotolxhq
userdirprotect: -1
userdata/fotolxhq/agenciacrabli.com.fotobodasv.com_SSL000064400000000745150522565370017147 0ustar00--- 
documentroot: /home/fotolxhq/agenciacrabli.com
group: fotolxhq
hascgi: 1
homedir: /home/fotolxhq
ip: 162.213.251.72
ipv6: ~
is_addon: 1
owner: wh
phpopenbasedirprotect: 1
port: 444
secruleengineoff: 0
serveradmin: webmaster@agenciacrabli.com.fotobodasv.com
serveralias: www.agenciacrabli.com.fotobodasv.com www.agenciacrabli.com agenciacrabli.com mail.agenciacrabli.com
servername: agenciacrabli.com.fotobodasv.com
ssl: 1
usecanonicalname: 'Off'
user: fotolxhq
userdirprotect: -1
userdata/fotolxhq/agenciacrabli.com.fotobodasv.com.cache000064400000001053150522565400017453 0ustar00{"is_addon":"1","phpopenbasedirprotect":"1","ip":"162.213.251.72","usecanonicalname":"Off","group":"fotolxhq","documentroot":"/home/fotolxhq/agenciacrabli.com","serveradmin":"webmaster@agenciacrabli.com.fotobodasv.com","servername":"agenciacrabli.com.fotobodasv.com","hascgi":"1","no_cache_update":"0","owner":"wh","user":"fotolxhq","serveralias":"www.agenciacrabli.com.fotobodasv.com www.agenciacrabli.com agenciacrabli.com mail.agenciacrabli.com","userdirprotect":"-1","ssl":"1","homedir":"/home/fotolxhq","secruleengineoff":"0","port":"81","ipv6":null}userdata/fotolxhq/agenciacrabli.com.fotobodasv.com000064400000000767150522565400016424 0ustar00--- 
documentroot: /home/fotolxhq/agenciacrabli.com
group: fotolxhq
hascgi: 1
homedir: /home/fotolxhq
ip: 162.213.251.72
ipv6: ~
is_addon: 1
no_cache_update: 0
owner: wh
phpopenbasedirprotect: 1
port: 81
secruleengineoff: 0
serveradmin: webmaster@agenciacrabli.com.fotobodasv.com
serveralias: www.agenciacrabli.com.fotobodasv.com www.agenciacrabli.com agenciacrabli.com mail.agenciacrabli.com
servername: agenciacrabli.com.fotobodasv.com
ssl: 1
usecanonicalname: 'Off'
user: fotolxhq
userdirprotect: -1
userdata/fotolxhq/fotobodasv.com_SSL.cache000064400000000636150522565400014662 0ustar00{"homedir":"/home/fotolxhq","userdirprotect":"","ssl":"1","serveralias":"www.fotobodasv.com mail.fotobodasv.com","user":"fotolxhq","ipv6":null,"port":"444","secruleengineoff":"0","group":"fotolxhq","serveradmin":"webmaster@fotobodasv.com","documentroot":"/home/fotolxhq/public_html","ip":"162.213.251.72","usecanonicalname":"Off","phpopenbasedirprotect":"1","owner":"wh","servername":"fotobodasv.com","hascgi":"1"}userdata/fotolxhq/neriostudios.com.fotobodasv.com.cache000064400000001044150522565400017436 0ustar00{"ipv6":null,"secruleengineoff":"0","port":"81","userdirprotect":"-1","ssl":"1","homedir":"/home/fotolxhq","user":"fotolxhq","serveralias":"www.neriostudios.com.fotobodasv.com mail.neriostudios.com www.neriostudios.com neriostudios.com","owner":"wh","servername":"neriostudios.com.fotobodasv.com","hascgi":"1","no_cache_update":"0","documentroot":"/home/fotolxhq/neriostudios.com","group":"fotolxhq","serveradmin":"webmaster@neriostudios.com.fotobodasv.com","is_addon":"1","phpopenbasedirprotect":"1","ip":"162.213.251.72","usecanonicalname":"Off"}userdata/fotolxhq/fotobodasv.com.cache000064400000001242150522565400014133 0ustar00{"secruleengineoff":"0","port":"81","user":"fotolxhq","serveralias":"www.fotobodasv.com mail.fotobodasv.com","userdirprotect":"","ssl":"1","homedir":"/home/fotolxhq","customlog":[{"format":"combined","target":"/etc/apache2/logs/domlogs/fotobodasv.com"},{"format":"\"%{%s}t %I .\\n%{%s}t %O .\"","target":"/etc/apache2/logs/domlogs/fotobodasv.com-bytes_log"}],"hascgi":"1","servername":"fotobodasv.com","scriptalias":[{"url":"/cgi-bin/","path":"/home/fotolxhq/public_html/cgi-bin"}],"owner":"wh","phpopenbasedirprotect":"1","usecanonicalname":"Off","ip":"162.213.251.72","group":"fotolxhq","serveradmin":"webmaster@fotobodasv.com","documentroot":"/home/fotolxhq/public_html"}userdata/fotolxhq/main000064400000000406150522565400011073 0ustar00--- 
addon_domains: 
  agenciacrabli.com: agenciacrabli.com.fotobodasv.com
  neriostudios.com: neriostudios.com.fotobodasv.com
main_domain: fotobodasv.com
parked_domains: []

sub_domains: 
  - agenciacrabli.com.fotobodasv.com
  - neriostudios.com.fotobodasv.com
userdata/fotolxhq/cache000064400000001322150522565400011210 0ustar00agenciacrabli.com: fotolxhq==wh==addon==agenciacrabli.com.fotobodasv.com==/home/fotolxhq/agenciacrabli.com==162.213.251.72:81==162.213.251.72:444====0==
agenciacrabli.com.fotobodasv.com: fotolxhq==wh==sub==fotobodasv.com==/home/fotolxhq/agenciacrabli.com==162.213.251.72:81==162.213.251.72:444====0==
fotobodasv.com: fotolxhq==wh==main==fotobodasv.com==/home/fotolxhq/public_html==162.213.251.72:81==162.213.251.72:444====0==
neriostudios.com: fotolxhq==wh==addon==neriostudios.com.fotobodasv.com==/home/fotolxhq/neriostudios.com==162.213.251.72:81==162.213.251.72:444====0==
neriostudios.com.fotobodasv.com: fotolxhq==wh==sub==fotobodasv.com==/home/fotolxhq/neriostudios.com==162.213.251.72:81==162.213.251.72:444====0==
userdata/fotolxhq/main.cache000064400000000407150522565400012136 0ustar00{"sub_domains":["agenciacrabli.com.fotobodasv.com","neriostudios.com.fotobodasv.com"],"parked_domains":[],"addon_domains":{"agenciacrabli.com":"agenciacrabli.com.fotobodasv.com","neriostudios.com":"neriostudios.com.fotobodasv.com"},"main_domain":"fotobodasv.com"}userdata/fotolxhq/agenciacrabli.com.fotobodasv.com_SSL.cache000064400000001026150522565410020175 0ustar00{"user":"fotolxhq","serveralias":"www.agenciacrabli.com.fotobodasv.com www.agenciacrabli.com agenciacrabli.com mail.agenciacrabli.com","userdirprotect":"-1","ssl":"1","homedir":"/home/fotolxhq","secruleengineoff":"0","port":"444","ipv6":null,"is_addon":"1","phpopenbasedirprotect":"1","ip":"162.213.251.72","usecanonicalname":"Off","serveradmin":"webmaster@agenciacrabli.com.fotobodasv.com","group":"fotolxhq","documentroot":"/home/fotolxhq/agenciacrabli.com","servername":"agenciacrabli.com.fotobodasv.com","hascgi":"1","owner":"wh"}userdata/fotolxhq/fotobodasv.com000064400000001207150522565410013073 0ustar00--- 
customlog: 
  - 
    format: combined
    target: /etc/apache2/logs/domlogs/fotobodasv.com
  - 
    format: "\"%{%s}t %I .\\n%{%s}t %O .\""
    target: /etc/apache2/logs/domlogs/fotobodasv.com-bytes_log
documentroot: /home/fotolxhq/public_html
group: fotolxhq
hascgi: 1
homedir: /home/fotolxhq
ip: 162.213.251.72
owner: wh
phpopenbasedirprotect: 1
port: 81
scriptalias: 
  - 
    path: /home/fotolxhq/public_html/cgi-bin
    url: /cgi-bin/
secruleengineoff: 0
serveradmin: webmaster@fotobodasv.com
serveralias: www.fotobodasv.com mail.fotobodasv.com
servername: fotobodasv.com
ssl: 1
usecanonicalname: 'Off'
user: fotolxhq
userdirprotect: ''
ea4/ea_php_cli.pm000064400000025667150522565410007663 0ustar00#!/usr/local/cpanel/3rdparty/bin/perl
#                                      Copyright 2025 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 ea_php_cli;

use strict;
use warnings;

my $PATH_MAX       = 4096;
my $SYSCALL_GETCWD = 79;     # 64bit only

our $EUID;
$EUID = $> if ${^GLOBAL_PHASE} eq "START";

my %types = (
    php       => 'CLI',
    pear       => 'CLI',
    'php-cgi' => 'CGI',
    lsphp     => 'LSAPI',
);

sub run {
    my ( $type, $pkg, $dir, @args ) = proc_args(@_);

    $pkg ||= get_pkg_for_dir( $type, $dir );
    die "Could not determine package for “$dir”\n" if !$pkg;

    return exec_via_pkg( $type, $pkg, @args );
}

sub proc_args {
    my ( $type, @raw_args ) = @_;

    $type //= "undefined";
    die "Invalid type ($type)\n" if !exists $types{$type};

    my ( $dir, @args );

    my $idx     = -1;
    my $skipidx = -1;
    my $arg;    # buffer
    for $arg (@raw_args) {
        $idx++;
        next if $idx == $skipidx;

        if ( substr( $arg, 0, 19 ) eq "--ea-reference-dir=" ) {    # --ea-reference-dir=DIR
            ( undef, $dir ) = split( /=/, $arg, 2 );               # if set from -f $arg: blow it away
        }
        elsif ( _file_exists($arg) ) {                             # ZC-11178: use a wrapper in place of -f for testing purposes
            push @args, $arg;

            if ( !defined $dir ) {                                 # set if not already set from --ea-reference-dir
                $dir = $arg;
                if ( index( $dir, "/" ) == -1 ) {
                    $dir = ".";                                    # foo.php
                }
                else {
                    $dir =~ s{/[^/]+$}{};
                    $dir = "/" if $dir eq "";                      # /foo.php
                }
            }
        }
        else {
            push @args, $arg;
        }
    }

    $dir //= ".";

    # since the lookup is based on abs path:
    if ( $dir eq "." ) {
        $dir = _getcwd();
    }
    elsif ( substr( $dir, 0, 1 ) ne "/" || index( $dir, ".." ) != -1 ) {
        require Cwd;
        $dir = Cwd::abs_path($dir);
    }

    die "Could not determine path to lookup PHP setting for based on arguments\n" if !$dir;    # this would be pretty odd

    return ( $type, undef, $dir, @args );                                                      # This function no longer returns package data as of EA-7961.
}

sub _file_exists { return -f $_[0] }

sub get_pkg_for_dir {
    my ( $type, $dir ) = @_;

    $type //= "undefined";
    die "Invalid type ($type)\n" if !exists $types{$type};

    my $dir_stat = [ stat($dir) ];
    die "“$dir” is not a directory\n" if !-d _;

    return _get_default_pkg() if $dir_stat->[4] == 0;

    my $pkg;
    if ( !$ENV{NO_EA_PHP_CLI_CACHE} ) {
        $pkg = _get_from_cache( $dir, $dir_stat );
        return $pkg if $pkg;
    }
    else {
        _unlink_cache_file( $dir, $dir_stat );
    }

    $pkg = _get_pkg_for_path($dir);

    _cache_it_if_you_can( $dir, $dir_stat, $pkg ) unless $ENV{NO_EA_PHP_CLI_CACHE};

    return $pkg || _get_default_pkg();    # get_php_config_for_users() factors in default, so $pkg should always be set but just in case …

}

sub exec_via_pkg {
    my ( $type, $pkg, @args ) = @_;

    $type //= "undefined";
    die "Invalid type ($type)\n" if !exists $types{$type};

    _pkg_name_check($pkg);

    my $prefix = _get_scl_prefix($pkg);
    my $binary = "$prefix/root/usr/bin/$type";

    if ( !-x $binary ) {
        warn "There is no “$types{$type}” binary for “$pkg”, using default …\n";

        $pkg    = _get_default_pkg();
        $prefix = _get_scl_prefix($pkg);
        $binary = "$prefix/root/usr/bin/$type";

        die "Could not determine binary for “$pkg”\n" if !-x $binary;
    }

    exec( $binary, @args );
    die "Could not execute “$binary”: $!\n";

    return;
}

#################################
#### get_pkg_for_dir() helpers ##
#################################

sub _get_pkg_for_path {
    my ($dir) = @_;
    my $pkg;

    if ( $ENV{'PWD'} && $dir eq $ENV{'PWD'} ) {
        if ( substr( $dir, 0, 1 ) eq '/' ) {
            $pkg = _lookup_pkg_for_path($dir);    # false if the directory they they think they are in is not configured so we can fall back to abspath
        }
        else {
            # this should not be possible naturally i.e. what does PWD of 'i/am/here' mean, what is it relative to? why would it be set to ../bar/../../foo/bar?
            warn "Relative \$PWD detected! Since that can be ambiguous we are ignoring \$PWD value and using absolute path for lookup instead\n";

            # Patches welcome for this rabbit hole ;p file under YAGNI for now
        }

        # no package yet? check the directory they are actually in
        # and call abs_path to resolve any symlinks
        if ( !$pkg ) {
            require Cwd;
            $pkg = _lookup_pkg_for_path( Cwd::abs_path( _getcwd() ) );
        }
    }
    else {
        $pkg = _lookup_pkg_for_path($dir);    # false if the directory they they think they want is not configured so we can fall back to abspath

        if ( !$pkg ) {
            require Cwd;
            my $abs = Cwd::abs_path($dir);

            if ( defined $abs && $abs ne $dir ) {
                $pkg = _lookup_pkg_for_path($abs);
            }
        }
    }

    $pkg = _get_default_pkg() if !$pkg;

    return $pkg;
}

sub _get_from_cache {
    my ( $dir, $dir_stat ) = @_;

    my ( $user, $home ) = ( getpwuid( $dir_stat->[4] ) )[ 0, 7 ];
    my $cachedir = _dir_to_cache_dir( $home, $dir );

    my $pkg;
    if ( my $dir_cache_mtime = ( lstat("$cachedir/.ea-php-cli.cache") )[9] ) {
        my $userdata_cache_mtime = ( stat("/var/cpanel/userdata/$user/cache") )[9];

        if ( !$Cpanel::PHPFPM::Constants::php_conf_path ) { require Cpanel::PHPFPM::Constants }
        my $phpconf_mtime = ( stat($Cpanel::PHPFPM::Constants::php_conf_path) )[9];

        if ( $userdata_cache_mtime && $userdata_cache_mtime < $dir_cache_mtime && $phpconf_mtime < $dir_cache_mtime ) {
            $pkg = readlink("$cachedir/.ea-php-cli.cache");

            eval { _pkg_name_check($pkg); _get_scl_prefix($pkg) };
            warn "$@\n" if $@;

            return $pkg if $pkg;
        }
    }

    return;
}

sub _unlink_cache_file {
    my ( $dir, $dir_stat ) = @_;

    my $home     = ( getpwuid( $dir_stat->[4] ) )[7];
    my $cachedir = _dir_to_cache_dir( $home, $dir );
    unlink("$cachedir/.ea-php-cli.cache");

    return;
}

sub _lookup_pkg_for_path {
    my ($dir) = @_;

    my $pkg;
    my %dir_cache;
    my %uid_cache;
    my ( $dom, $uid );    # buffers
    my %getpwuid_cache;
    require Cpanel::PHP::Config;

    $dir =~ s{/+$}{};     # remove trailing /’s to since lookup is based on not having a trailing slash
    $dir =~ tr{/}{}s;     # squash repetitive sequences of slashes, i.e. //// -> /
    while ($dir) {        # walk the path looking for the first configured PHP (if any)
        $uid = _get_uid($dir);    # EUID may not own $dir
        last if !$uid;            # root can't own a domain, thus can't set a PHP version

        if ( !exists $dir_cache{$dir} ) {
            $getpwuid_cache{$uid} //= [ getpwuid($uid) ];
            eval { $uid_cache{$uid} //= Cpanel::PHP::Config::get_php_config_for_users( [ $getpwuid_cache{$uid}->[0] ] ) };
            last if $@;           # non-cpanel users can't own a domain, thus can't set a PHP version

            for $dom ( keys %{ $uid_cache{$uid} } ) {
                $dir_cache{ $uid_cache{$uid}->{$dom}{documentroot} } = $uid_cache{$uid}->{$dom}{phpversion};
            }
        }

        if ( $dir_cache{$dir} ) {
            $pkg = $dir_cache{$dir};
            last;
        }
        elsif ( defined $getpwuid_cache{$uid} && defined $getpwuid_cache{$uid}->[7] && $dir eq $getpwuid_cache{$uid}->[7] ) {    # because we can cache this one still
            last;
        }

        $dir =~ s{/[^/]+$}{};
    }

    return $pkg;
}

sub _cache_it_if_you_can {
    my ( $dir, $dir_stat, $pkg ) = @_;

    # attempt to cache for non-root
    if ( $EUID && $EUID == $dir_stat->[4] && $pkg ) {    # get_php_config_for_users() factors in default, so $pkg should always be set but just in case …

        local $!;
        unlink "$dir/.ea-php-cli.cache";                 # clean up old cache location if necessary
        my ( $user, $home ) = ( getpwuid( $dir_stat->[4] ) )[ 0, 7 ];
        my $cachedir = _dir_to_cache_dir( $home, $dir );
        require File::Path::Tiny;
        File::Path::Tiny::mk($cachedir) or warn "Could not ensure ea-php-cli cache directory!\n";
        unlink "$cachedir/.ea-php-cli.cache";
        symlink( $pkg, "$cachedir/.ea-php-cli.cache" );
    }
}

sub _dir_to_cache_dir {
    my ( $home, $dir ) = @_;
    $dir =~ s{^\Q$home\E}{$home/.cpanel/ea-php-cli};
    return $dir;
}

###############
#### helpers ##
###############

sub _pkg_name_check {
    my ($pkg) = @_;

    if ( index( $pkg, "/" ) != -1 || index( $pkg, "\0" ) != -1 || index( $pkg, ".." ) != -1 ) {
        $pkg =~ s/\0/{NULL-BYTE}/g;
        die "Package, $pkg, has invalid characters\n";
    }

    return 1;
}

sub _get_default_pkg {
    require Cpanel::PHP::Config;
    my $default_pkg = Cpanel::PHP::Config::get_php_version_info()->{default};    # this calls a cached lookup woot woot
    die "Default PHP is not configured!\n" if !$default_pkg;
    return $default_pkg;
}

my %_get_scl_prefix;

sub _get_scl_prefix {
    my ($pkg) = @_;
    return $_get_scl_prefix{$pkg} if $_get_scl_prefix{$pkg};

    require Cpanel::SysPkgs::SCL;
    my $prefix = Cpanel::SysPkgs::SCL::get_scl_prefix($pkg);
    die "“$pkg” is not an EA4 SCL PHP\n" if !$prefix || !-d $prefix;

    $_get_scl_prefix{$pkg} = $prefix;
    return $_get_scl_prefix{$pkg};
}

sub _get_uid {
    my ($dir) = @_;
    return $EUID || ( stat($dir) )[4];
}

sub _getcwd {
    length( pack( 'l!', 1000 ) ) * 8 == 64 or die "This system only support 64-bit Linux";

    my $cwd            = "\0" x 4096;
    my $syscall_result = syscall( $SYSCALL_GETCWD, $cwd, $PATH_MAX );
    if ( $syscall_result && $syscall_result != -1 ) {
        $cwd =~ tr{\0}{}d;
    }
    else {
        require Cwd;
        $cwd = Cwd::getcwd();
    }

    if ( $ENV{'PWD'} && $cwd ne $ENV{'PWD'} && index( $ENV{'PWD'}, '../' ) == -1 ) {
        require Cwd;
        my $abs_path = Cwd::abs_path( $ENV{'PWD'} );
        if ( $abs_path eq $cwd && ( stat($abs_path) )[4] == ( stat($cwd) )[4] ) {

            # If the absolute path of $ENV{'PWD'} points the the directory we are
            # currently in and it has the same owner than we except $ENV{'PWD'}
            # as truthy
            return $ENV{'PWD'};
        }
    }

    return $cwd;
}

1;

__END__

=head1 This is not intended to be consumed outside of the package that installed it. The functions are meant to consolidate logic and facilitate testing. For usage see L<https://go.cpanel.net/ea-php-cli>.