2017-11-15 15 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()が何を意味するのか見当がつかない!

私は、Web上で同様の問題(およびその解決策)がポップするかどうかを調べるために何かを掘り下げましたが、何もしませんでした。私はこれを修正するための助けが必要です。 何かを意味する場合、私のホスティングプランに付属しているPHPバージョンはバージョン7であり、SSLを持っています。

+0

私はVPSのポイントはあなたがサーバーを制御していると思ったのですか?おそらく、ctype関数を有効にしてapacheを再起動する必要があります。 –

+0

私の無知を許しますが、私は本当にそれを行う方法を知らない。これは初めてのVPSを使用しています – Valkay

+0

どのオペレーティングシステムですか?どのバージョンのオペレーティングシステムですか? WebサーバーApacheまたはnginxですか?ルートとしてのコマンドラインアクセスがありますか? –

答えて

0

プロバイダが明示的にこれらの種類の機能を無効にしているように見えます。 はデフォルトで有効にする必要があります。これらの機能を有効にするには、プロバイダーに問い合わせてみるか、そのフラグをオフにしないでPHPを再インストールしてください。

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

また、あなたは試してみて、ctypesのが有効にされているかどうかを確認するためにphpinfo()ページを検査できます。彼らがそれを無効にするのは変だと思われるので、これが問題の一部であるかどうか判断するのに役立ちます。

+0

私のウェブホストに連絡して、私のためにctypeを有効にしましたが、問題は依然として続きます – Valkay

+0

よく、私は後でdバグのソースを見つけました。指されたファイルとは関係ありませんでしたが、私の.htaccessファイル – Valkay

関連する問題