最近服务器很不稳定,于是重装了mysql 和php 服务,但是接着却遇到了很头疼的麻烦。
远程连接mysql是总是提示:
Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0

很明显这是连接初始化阶段就丢失了连接的错误。

google半天大多是说的注释掉配置文件中 bind-address = 127.0.0.1 这一句。
但是我的配置文件并没有配置这一句,各种搜索均未果。今天偶然在网上看到一个遇到同样问题的人贴出的配置,发现他多了一句配置 skip-name-resolve,抱着试试看的态度改了一下并重启了mysql服务,果然远程一下子就连接上了,真是无语。

其实问题很简单,都是MySQL的配置文件默认没有为远程连接配置好,只需要更改下MySQL的配置文件即可。
具体的解决步骤如下,希望能帮助遇到同样问题的同学们:
找到并修改my.cnf文件。在不同的Linux系统下,my.cnf放在不同的位置。这里以Ubuntu Server做示例,其他系统请根据情况自行找到my.cnf的路径。一般只会存放在/etc/my.cnf或者/etc/mysql/my.cnf下。

首先用vim打开my.cnf:

vim /etc/mysql/my.cnf

看看是否有绑定本地回环地址的配置,如果有,注释掉下面这段文字:(在文字之前加上#号即可)

bind-address = 127.0.0.1

然后找到[mysqld]部分的参数,在配置后面建立一个新行,添加下面这个参数:

skip-name-resolve
保存文件并重启MySQL:

/etc/init.d/mysql restart

这样就会发现,问题已经解决了!远程连接不会丢失了。

ThinkPHP是一款很不错的框架,也是PHP开发中最近用的比较火的。平时在本地开发中打开apache的modrewrite 配合.htaccess文件就可以完美的支持ThinkPHP的PATHINFO模式,但是家里的linux机器搭建的却是nginx 环境。这就造成了url 重写出现了很多奇怪的问题,所以需要对nginx 的配置文件修改一下来让它支持ThinkPHP的框架。
首先你的项目的config文件中要配置这一项

  'URL_MODEL' => 2, // rewrite

在服务器中切换到nginx的安装目录,我这里是 /usr/local/nginx。然后添加thinkphp.conf 文件

vim /usr/local/nginx/conf/thinkphp.conf
内容如下

location / {
  if (!-e $request_filename){
  rewrite ^/(.*)$ /index.php?s=/$1 last;
  }
}

然后在你的配置文件中include一下刚刚的配置文件。

如果你的ThinkPHP入口文件index.php不在根目录,则需要把thinkphp.conf改成这样

location /入口文件所在目录/ {
  if (!-e $request_filename){
  rewrite ^/abc/(.*)$ /abc/index.php?s=/$1 last;
  }
}

Firefox使用DOMMouseScroll,其他的浏览器使用mousewheel。滚动事件触发时Firefox使用detail属性捕捉滚轮信息,其他的浏览器使用wheelDelta。不知道为何在该问题上其他厂商和微软的如此一致。Firefox可以使用addEventListener方法绑定DomMouseScroll事件。

elem.addEventListener('DOMMouseScroll', func, false);

IE和其他的主流浏览器可以使用传统的事件绑定模型。但不要使用IE专有的attachEvent方法,其他主流浏览器并不识别微软的这个方法。下面先测试一下。

120

<script type="text/javascript">
    // <![CDATA[
    var mouseWheel = document.getElementById('mouseWheel');
    
    if (mouseWheel.addEventListener) {
        
        mouseWheel.addEventListener('DOMMouseScroll', function(event) {
            
            event.target.innerHTML = event.detail;
            event.stopPropagation();
            event.preventDefault();
            
        }, false);
    }
    mouseWheel.onmousewheel = function(event) {
        
        event = event || window.event;
        mouseWheel.innerHTML = event.wheelDelta;
        event.returnValue = false;
        
    }
    // ]]>
</script>

测试之后得到如下的结论。

    Firefox
    鼠标滚轮向上滚动是-3,向下滚动是3

    IE
    鼠标滚轮向上滚动是120,向下滚动是-120

    Safari
    鼠标滚轮向上滚动是360,向下滚动是-360

    Opera
    鼠标滚轮向上滚动是120,向下滚动是-120

    Chrome
    鼠标滚轮向上滚动是120,向下滚动是-120

有人在Safari下做了一些测试:”只是滚动一圈的话,值为+-0.1,如果滚动地稍微快点的话(多滚动几圈),这个值也会变大。 这是因为Mac OS下有鼠标滚轮加速功能。滚动一次,浏览器滚动1像素,滚动3次,浏览器却滚动30像素”。同时他也对Camino(基于Gecko的内核引擎)进行研究:“与Safari相似(+- 0.3 to +-Infinity),虽然使用了与firefox相同的内核引擎,但结果这个delta值却只在+-2.666666里浮动,无论滚动速度如何。”