最近、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を持っています。
私はVPSのポイントはあなたがサーバーを制御していると思ったのですか?おそらく、ctype関数を有効にしてapacheを再起動する必要があります。 –
私の無知を許しますが、私は本当にそれを行う方法を知らない。これは初めてのVPSを使用しています – Valkay
どのオペレーティングシステムですか?どのバージョンのオペレーティングシステムですか? WebサーバーApacheまたはnginxですか?ルートとしてのコマンドラインアクセスがありますか? –