2017-11-15 2 views
0

최근에 WAMP 로컬 서버에 코드 점화 장치를 사용하여 사이트를 구축하고 Namecheap의 공유 호스팅 서버에서이를 테스트했습니다. 그런 다음 VPS에서 iPage의 계획을 호스팅하고 파일을 업로드하고 필요한 구성을 수행했습니다. 오류VPS 서버에 배포 할 때 코드 점화 장치 시스템 파일에 비정상적인 오류가 발생했습니다.

메시지 : 정의되지 않은 함수 ctype_digit에()를 호출

파일 이름 :/홈 캐치되지 않는 예외가

유형을 발생했습니다

: 나는이 사이트에 액세스하려고 할 때 그러나, 나는이 오류가 발생했습니다 /eastngco/public_html/system/core/Security.php

줄 번호 : 600

문제이며, 의심 파일, Security.php는 내가 쓴 적이없는 코드 점화 시스템 파일입니다 (내가 작성한 모든 것은 응용 프로그램 폴더 내에 있습니다). 다음은 Security.php의 라인 주위 코드는 오류를 일으키는 :

/** 
* Get random bytes 
* 
* @param int $length Output length 
* @return string 
*/ 
public function get_random_bytes($length) 
{ 
    if (empty($length) OR ! ctype_digit((string) $length)) 
    { 
     return FALSE; 
    } 

    if (function_exists('random_bytes')) 
    { 
     try 
     { 
      // The cast is required to avoid TypeError 
      return random_bytes((int) $length); 
     } 
     catch (Exception $e) 
     { 
      // If random_bytes() can't do the job, we can't either ... 
      // There's no point in using fallbacks. 
      log_message('error', $e->getMessage()); 
      return FALSE; 
     } 
    } 

    // Unfortunately, none of the following PRNGs is guaranteed to exist ... 
    if (defined('MCRYPT_DEV_URANDOM') && ($output = mcrypt_create_iv($length, MCRYPT_DEV_URANDOM)) !== FALSE) 
    { 
     return $output; 
    } 


    if (is_readable('/dev/urandom') && ($fp = fopen('/dev/urandom', 'rb')) !== FALSE) 
    { 
     // Try not to waste entropy ... 
     is_php('5.4') && stream_set_chunk_size($fp, $length); 
     $output = fread($fp, $length); 
     fclose($fp); 
     if ($output !== FALSE) 
     { 
      return $output; 
     } 
    } 

    if (function_exists('openssl_random_pseudo_bytes')) 
    { 
     return openssl_random_pseudo_bytes($length); 
    } 

    return FALSE; 
} 

내가 임의 바이트 ctype_digit()가 무엇을 의미하는지 아무 생각이 없습니다!

웹에서 비슷한 문제 (및 해결 방법)가 나타 났는지 확인하기 위해 일부 파고 들었지만 아무 것도하지 않았습니다. 제발 도와주세요. 그것이 무엇이든을 의미하는 경우에, 나의 접대 계획으로 오는 PHP 버전은 버전 7이고, 나는 SSL가있다.

+0

나는 VPS의 요점이 당신이 서버를 통제하고 있다고 생각 하나? 아마도 ctype 함수를 활성화하고 아파치를 다시 시작해야 할 것이다. –

+0

내 무지를 용서하지만, 나는 정말로 어떻게 해야할지 모르겠다. VPS를 처음 사용하는 경우 – Valkay

+0

어떤 운영 체제입니까? 어떤 버전의 운영 체제입니까? 웹 서버가 Apache 또는 nginx입니까? 루트 권한으로 명령 줄에 액세스 할 수 있습니까? –

답변

0

제공자가 이러한 유형의 기능을 명시 적으로 사용 중지 한 것으로 보입니다. 으로 기본 설정되어 있어야합니다. 이 기능을 활성화하는 방법에 대해 공급자에게 문의하거나 플래그를 해제하지 않고 PHP를 다시 설치하십시오.

http://us2.php.net/manual/en/ctype.installation.php

또한 시도하는 ctypes가 활성화 여부와 확인하는 phpinfo() 페이지를 검사 할 수 있습니다. 그들이 그것을 꺼 버리는 것은 이상한 것처럼 보이므로, 이것이 이것이 이슈의 일부인지 알아내는 데 도움이 될 것입니다.

+0

웹 호스트에 연락하여 ctype을 활성화했지만 문제가 여전히 지속됩니다. – Valkay

+0

글쎄, 나중에 d 버그의 출처를 알아 냈습니다. 핑거 파일과는 아무 관련이 없지만 .htaccess 파일 – Valkay