若问生涯原是梦,除梦里,没人知。

  • 2018-05-25

    服务器出现大量这种日志使得 /var/ 目录占用磁盘空间巨大:

    # tail -f /var/log/auth.log
    May 25 14:40:01 1204developer CRON[2191]: pam_unix(cron:session): session opened for user www-data by (uid=0)
    May 25 14:40:01 1204developer CRON[2193]: pam_unix(cron:session): session opened for user www-data by (uid=0)
    May 25 14:40:01 1204developer CRON[2192]: pam_unix(cron:session): session opened for user www-data by (uid=0)
    May 25 14:40:01 1204developer CRON[2192]: pam_unix(cron:session): session closed for user www-data
    May 25 14:40:01 1204developer CRON[2190]: pam_unix(cron:session): session closed for user www-data
    May 25 14:40:01 1204developer CRON[2191]: pam_unix(cron:session): session closed for user www-data
    May 25 14:41:01 1204developer CRON[2189]: pam_unix(cron:session): session closed for user smmsp
    May 25 14:41:01 1204developer CRON[12928]: pam_unix(cron:session): session opened for user www-data by (uid=0)
    May 25 14:41:02 1204developer CRON[12928]: pam_unix(cron:session): session closed for user www-data
    May 25 14:41:09 1204developer CRON[2193]: pam_unix(cron:session): session closed for user www-data
    

    >>More

    #Linux #Cron
  • 2017-07-17

    在PHP 中引用的意思是:不同的名字访问同一个变量内容。php的引用(就是在变量或者函数、对象等前面加上&符号)最重要就是删除引用的变量,只是引用的变量访问不了,但是内容并没有销毁。

    >>More

    #php
  • 2017-07-17

    PHP类是单继承,也就是不支持多继承,当一个类需要多个类的功能时,继承就无能为力了,为此 PHP 引入了类的接口技术。

    如果一个抽象类里面的所有方法都是抽象方法,且没有声明变量,而且接口里面所有的成员都是public权限的,那么这种特殊的抽象类就叫接口

    接口使用关键字interface来定义,并使用关键字implements来实现接口中的方法,且必须完全实现。

    >>More

    #php
  • 2017-07-17

    匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。

    匿名函数目前是通过Closure类来实现的。

    闭包函数也可以作为变量的值来使用。PHP 会自动把此种表达式转换成内置类Closure的对象实例。把一个closure对象赋值给一个变量的方式与普通变量赋值的语法是一样的,最后也要加上分号。

    闭包可以从父作用域中继承变量。 任何此类变量都应该用use语言结构传递进去。 PHP 7.1起,不能传入此类变量:superglobals$this 或者和参数重名。 这些变量都必须在函数或类的头部声明。 从父作用域中继承变量与使用全局变量是不同的。全局变量存在于一个全局的范围,无论当前在执行的是哪个函数。而 闭包的父作用域是定义该闭包的函数(不一定是调用它的函数)。

    >>More

    #php
  • 2017-06-23

    Symfony2在使用Composer安装phpunit的时候遇到下面的错误:

    [Symfony\Component\Process\Exception\ProcessTimedOutException]                                                                                                                                                                                                             
    The process "git clone --no-checkout 'https://github.com/sebastianbergmann/phpunit.git' '/home/cxl/tp5-project/vendor/phpunit/phpunit' && cd '/home/cxl/tp5-project/vendor/phpunit/phpunit' && git remote add composer 'https://github.com/sebastianbergmann/phpunit.git'  
    && git fetch composer" exceeded the timeout of 300 seconds. 
    

    解决方案:增加COMPOSER_PROCESS_TIMEOUT,执行命令如下:

    //查看默认超时时间
    composer config --list
    //设置超时时间
    composer config -g process-timeout 600
    //清除缓存
    composer clear-cache
    
    #Composer
  • 2017-06-13

    在您的系统上,如果您已安装了多个版本的PHP(例如PHP 7.1和PHP 5.6两者)。 PHP 7.1作为Apache和CLI的默认PHP运行。对于任何需求,您需要使用PHP 5.6。然后你不需要删除php 7.1。你可以简单地切换php版本为默认用于Apache和命令行。

    例如,您的服务器安装了PHP 7.1和PHP 5.6两个版本。现在下面的例子将帮助你在两个版本之间切换。

    >>More

    #PHP #Ubuntu
  • 2017-04-01

    若有涉及到重复操作,尽量使用循环而非递归。 每一次递归调用都将过程在内存中复制一遍,如果有大数据的局部变量则会导致内存激增。 内存分配的图示:

    内存分配图示

    >>More

    #PHP #递归 #内存
  • 2016-11-22

    原因:Ubuntu竟然在mysql的配置文件中默认绑定了本机。

    解决方案:果断给注释掉。编辑配置文件/etc/mysql/my.cnf,注释掉里边的bind-address配置项。

    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    bind-address = 127.0.0.1
    

    重启mysql

    service mysql restart
    
    #mysql