Nginx 502 upstream sent too big header while reading response header from upstream

      线上部署的一个项目,通过OAuth登录完成之后,跳转回来就会出现502错误,错误必现。必现错误不用慌,从log里面仔细排查这个时间段的每一条记录,access log里面一般不会记录具体原因,只会记录502请求状态,想要查看具体原因还得看error log,如果log配置没搞好的话,建议先配置好log,然后再触发一次错误,这样就可以分析错误了。

nginx错误日志error_log日志级别

image.png

解决方法:在配置文件中加入这两个配置

location ~ \.php$ {
    fastcgi_buffer_size 128k;
    fastcgi_buffers 32 32k;
}

重新加载Nginx,继续测试,正常没有报错!

PHP查看对象中的所有方法名

    一个类有很多方法,有时候拿不准用哪个方法去处理,可以全部打印出来,一个类都什么方法,一目了然。

<?php
class a
{
    public $a = 1;

    public function __construct() { }

    public function aaa()
    {
        echo "a";
    }

    public function get_name() { }
}

$a = new a();
var_dump( get_class_methods( $a ) );

0 => string '__construct' (length=11)

1 => string 'aaa' (length=3)

2 => string 'get_name' (length=8)


Mysql错误 Index column size too large. The maximum column size is 767 bytes

    起因:准备上线一个phphub5的项目,本地是mysql5.7,数据库是没有问题的,线上环境5.5,版本较低,导入的时候出错,现在记录一下解决过程。

[Err] 1709 - Index column size too large. The maximum column size is 767 bytes.

错误原因是因为索引的字段太长,在 stack overflow 上找到了答案。查看原地址

原来SQL:

ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

修改之后SQL:

ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;


解决方法:在 CREATE TABLE 语句后面加上 ROW_FORMAT=DYNAMIC 就可以了。

CSS截取多余字符,用省略号表示

********************* css截取字符 *********************

text-overflow:ellipsis;  /* 让超出的用...实现 */
white-space:nowrap;      /* 禁止换行 */
overflow:hidden;         /* 超出的隐藏 */


******************** 显示两行或者多行,再把多余的文字省略 ********************

text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;  /* 可以设置显示多行 */
-webkit-box-orient: vertical;