apache下运行php,能正常运行但firebug下显示500解决方法

作者:甲骨文 发布时间:April 26, 2012 分类:应用开发 2 Comments

昨晚碰到这样一个问题,搞到凌晨2点半都没搞定,怎么查也没查出问题来,今天google了一下,看到其它人也有这样的问题,碰到问题先google,切记,切记!

用firebug查看,结果能正常输出,但是总是反回500错误,然后直接运行这个地址,也能在浏览器中正常输出,但是用firebug看,还是存在500错误,经过查找资料,发现了原因:php某个版本后,如果关闭了错误显示(display_error)并出现了错误或者警告,那么会向apache返回500错误。解决方法是讲php.ini中display_error开启重启apache即可。

原创内容对SEO的影响

作者:甲骨文 发布时间:April 5, 2012 分类:产品运营 6 Comments

       从目前来看原创内容引流效果是最好的,以本站为例,前些时候写了两篇关于Nginx方面的文章,在其它SEO都没有做的情况下,流量几乎都是这几篇文章引过来的。

       所以坚持每天写些新内容对流量的提升很明显。

Nginx 虚似主机配置【备忘】

作者:甲骨文 发布时间:March 27, 2012 分类:系统架构 No Comments

========================================================

nginx.conf

========================================================


user  www www;

worker_processes  4;

 

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

 

#pid        logs/nginx.pid;

 

events {

    use epoll;

    worker_connections  51200;

}

阅读剩余部分...

Mysql随机获得一条或多条记录

作者:甲骨文 发布时间:March 1, 2012 分类:应用开发 No Comments

语句一:
  1. select * from users order by rand() LIMIT 1
复制代码
MYSQL手册里面针对RAND()的提示大概意思就是,在 ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描,导致效率相当相当的低,效率不行,切忌使用。

语句二:
  1. SELECT * FROM users  AS t1  JOIN (SELECT ROUND(RAND() * ((SELECT MAX(userId) FROM `users`)-(SELECT MIN(userId) FROM users))+(SELECT MIN(userId) FROM users)) AS userId) AS t2 WHERE t1.userId >= t2.userId ORDER BY t1.userId LIMIT 1
复制代码
执行该sql语句,用时0.031s,效率非常好。当把”LIMIT 1“改为了”LIMIT 100“ 随机取一百条记录,用时0.048s。可是就在此时问题出现了,发现结果好像不是随机的。为了验证结果,又执行了N次,的确不是随机的。问题出现在”ORDER BY t1.userId“这里,按userId排序了。随机取一条记录还是不错的选择,多条就不行了啊。

语句三:
  1. SELECT * FROM users WHERE userId >= ((SELECT MAX(userId) FROM users)-(SELECT MIN(userId) FROM users)) * RAND() + (SELECT MIN(userId) FROM users)  LIMIT 1
复制代码
执行该sql语句,用时0.039s,效率也是非常好。接着把”LIMIT 1“改为了”LIMIT 10000“,用时0.063s。经过多次验证,得出的结果都是随机的。

结论:语句一效率不行,切忌使用。随机获得一条记录,语句二是相当不错的选择,采用JOIN的语法比直接在WHERE中使用函数效率还是要高一些的。语句三也不错,随机获得多条记录的首选。