【问题标题】:mcrypt error 404 on EC2EC2 上的 mcrypt 错误 404
【发布时间】:2014-02-14 23:55:24
【问题描述】:

从 localhost 迁移到 AWS ec2 时,我遇到了一个愚蠢的问题。 两个环境都安装了 php 5.5 和 mcrypt 的 nginx 网络服务器。

在 localhost crypt 功能有效,但在远程服务器上它以 404 错误页面结束。

部分代码...

从网页调用的函数:

  $crypt = new crypt();

        // encrypt the 
        // 
        $id='abcdefght';
        $to='12345678';

        $encoded = $crypt->encrypt( $id.','.$to);
        echo $encoded."\n";

加密类

public function encrypt( $text )
{
    // add end of text delimiter
    $data = mcrypt_encrypt( MCRYPT_RIJNDAEL_256, $this->key, $text, MCRYPT_MODE_ECB, $this->iv );
    return base64_encode( $data );
}

我不明白 nginx 是否有超时,或者我需要安装更多的东西......

感谢您的帮助

【问题讨论】:

  • 检查您的网络服务器的错误日志,404 作为错误描述没有帮助。
  • 对不起,您是对的,该错误与上游超时有关... 2014/01/05 18:19:49 [error] 25253#0: *191 upstream timed out (110: Connection超时)从上游读取响应标头时,客户端:11.111.111.111,服务器:服务器,请求:“GET /?controller=test&action=crypt HTTP/1.1”,上游:“fastcgi://unix:/var/run/ php5-fpm/php5-fpm.sock”,主机:“server.com”

标签: php nginx amazon-ec2 mcrypt


【解决方案1】:

这可能是由于某些问题导致 FastCGI 服务器无法在合理的时间内做出响应。尝试延长读取超时时间,看看是否出现了真正的问题。

参见Connection timed out while reading response headerModule ngx_http_fastcgi_module

【讨论】:

    【解决方案2】:

    我已经解决了对地穴使用不同的功能...

    public  function encrypt($value){ 
    if(!$value){return false;}
    $text = $value;
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text, MCRYPT_MODE_ECB, $iv);
    return trim($this->safe_b64encode($crypttext)); 
    }
    

    这个运行良好,没有触及 fastCgi 时间。

    感谢您的支持。

    【讨论】:

      猜你喜欢
      • 2015-10-18
      • 2021-01-20
      • 2017-04-25
      • 2017-04-25
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 2015-09-08
      相关资源
      最近更新 更多