企业的效率,谁是榜样

作者 : admin 于 2009年12月21日, 20:42:23
2009
12-21

想到这个话题,还得从我的医保蓝本说起。

医保这东西,是员工就应该有。当然,我也得有。可我经历了三年多才拿到。

第一个公司,就是我刚来北京任职的公司,创业公司,吃够了苦,最后离开的时候,我两手空空,老板同意为我上保险,直到下一个公司开始为我上为止。

不过老板的确很仁义,为了上了几个月的保险,等我得知我上的是农民工那种集体户的标准的时候,已经不是气愤,变成了羞辱。当然,我也有个编号,仅是编号证明。第二个公司按照正常员工的标准给上了,不过那个编号始终没有变成一个蓝本。人力让我找原单位,原单位让我找现单位,热线电话让我找劳动局,劳动局让我找现在会计去办理即可。我的弱点就是不坚强,我妥协放弃了。农民工没啥,该咋过咋过。

到第三个公司,也就是现在的公司,入职后又提起了这事,人力惊讶,居然没蓝本,我详细解释了整个过程,人力无语。问之:能办否;答曰:申请一下。上午十一点问完,下午一点把一个崭新的蓝本送到了我的手里。我怀疑劳动局在我们楼里。

当要求别人尽职、效率的时候,首先问问自己做到没。效率是生命,不仅指的是员工,而是指整个队伍的效率。

nginx做反向代理的配置

作者 : admin 于 2009年12月16日, 18:39:13
2009
12-16

感谢铎哥的配置,感谢宴哥解决ssl连接的问题。

  1. server
  2.  {
  3.         listen      8181;
  4.         resolver 202.96.64.68;
  5.         location /
  6.         {
  7.             proxy_pass http://$http_host$request_uri;
  8.             proxy_redirect          off;
  9.             proxy_set_header        Host            $host;
  10.             proxy_set_header        X-Real-IP       $remote_addr;
  11.             proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  12.             client_max_body_size    10m;
  13.             client_body_buffer_size 128k;
  14.             proxy_connect_timeout   90;
  15.             proxy_send_timeout      90;
  16.             proxy_read_timeout      90;
  17.             proxy_buffers           32 4k;
  18.         }
  19.         access_log /home/proxy.log;
  20.  }

django进程管理器

作者 : admin 于 2009年12月16日, 16:42:49
2009
12-16

nginx+php,php有个进程管理器,为php-fpm,Django没有,网上大概看了看,找出了几段,小改一下,能用了。

  1. #!/bin/bash
  2. siteroot="/home/project/sun"
  3. sitename="http://python.sunboyu.cn"
  4. cd $siteroot
  5. if [ $# -lt 1 ];then
  6.     echo "Usages: server.sh [start|stop|restart]"
  7.     exit 0
  8. fi
  9.  
  10. if [ $1 = start ];then
  11.     isrun=`ps aux|grep "manage.py runfcgi"|grep -v "grep"|wc -l`
  12.     if [ $isrun -eq 1 ];then
  13.         echo $sitename" has running!"
  14.         exit 0
  15.     else
  16.         python manage.py runfcgi method=threaded host=127.0.0.1 port=8000 --settings=settings
  17.         echo $sitename"is running!!"
  18.     fi
  19. elif [ $1 = stop ];then
  20.     djid=`ps aux|grep "manage.py runfcgi"|grep -v "grep"|awk '{print $2}'`
  21.     kill -9 $djid
  22.     echo $sitename" is stop!"
  23. elif [ $1 = restart ];then
  24.     djid=`ps aux|grep "manage.py runfcgi"|grep -v "grep"|awk '{print $2}'`
  25.     kill -9 $djid
  26.     echo $sitename" is stop!!"
  27.     python manage.py runfcgi method=threaded host=127.0.0.1 port=8000 --settings=settings
  28.     echo $sitename" is start!!"
  29. else
  30.     echo "Usages: server.sh [start|stop|restart]"
  31. fi

django+nginx的部分配置

作者 : admin 于 2009年12月16日, 11:26:55
2009
12-16

nginx的配置,特别感谢爱词霸吕同学,发扬了开源共享的精神,大大缩短了我的调试成本。

  1. server {
  2.     listen 80;
  3.     server_name python.sunboyu.cn;
  4.     location / {
  5.           fastcgi_pass 127.0.0.1:8000;
  6.           fastcgi_buffers      16  128k;
  7.           fastcgi_ignore_client_abort  on;
  8.           fastcgi_read_timeout 60;
  9.  
  10.           fastcgi_param PATH_INFO $fastcgi_script_name;
  11.           fastcgi_param REQUEST_METHOD $request_method;
  12.           fastcgi_param QUERY_STRING $query_string;
  13.           fastcgi_param CONTENT_TYPE $content_type;
  14.           fastcgi_param CONTENT_LENGTH $content_length;
  15.           fastcgi_param SERVER_PROTOCOL  $server_protocol;
  16.           fastcgi_param SERVER_PORT      $server_port;
  17.           fastcgi_param SERVER_NAME  $server_name;
  18.  
  19.           fastcgi_pass_header Authorization;
  20.           fastcgi_intercept_errors off;
  21.  
  22.     }
  23. }

同时附上一个额外的文档,nginx变量跟cgi协议的对应关系。
注:在配置中,并不是所有的变量必须加上,而是根据环境选择其中应该有的变量,至于具体加哪些变量,得求助高人了。

  1. #    Fast CGI param reference
  2. #    fastcgi_param    SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  3. #    fastcgi_param    QUERY_STRING  $query_string;
  4. #    fastcgi_param    REQUEST_METHOD  $request_method;
  5. #    fastcgi_param    CONTENT_TYPE  $content_type;
  6. #    fastcgi_param    CONTENT_LENGTH  $content_length;
  7. #    fastcgi_param    GATEWAY_INTERFACE  CGI/1.1;
  8. #    fastcgi_param    SERVER_SOFTWARE  nginx;
  9. #    fastcgi_param    SCRIPT_NAME  $fastcgi_script_name;
  10. #    fastcgi_param    REQUEST_URI  $request_uri;
  11. #    fastcgi_param    DOCUMENT_URI  $document_uri;
  12. #    fastcgi_param    DOCUMENT_ROOT  $document_root;
  13. #    fastcgi_param    SERVER_PROTOCOL  $server_protocol;
  14. #    fastcgi_param    REMOTE_ADDR  $remote_addr;
  15. #    fastcgi_param    REMOTE_PORT  $remote_port;
  16. #    fastcgi_param    SERVER_ADDR  $server_addr;
  17. #    fastcgi_param    SERVER_PORT  $server_port;
  18. #    fastcgi_param    SERVER_NAME  $server_name;

django笔记3-DEMO篇

作者 : admin 于 2009年12月15日, 21:06:11
2009
12-15

1、创建一个project(可理解为站点)

django-admin.py startproject project1

发现新建了一个文件夹 project1

2、创建一个app(可理解为一个……)

python manage.py app1

发现多了一个文件夹 app1

3 、vi ./app1/views.py 增加代码

  1. from django.http import HttpResponse
  2. def index(self,request):
  3.     return HttpResponse('hello test')

4、vi ./urls.py 增加代码
( r’^tests/’ , ‘project1.app1.views.index’ ),

5、启动服务

python manage.py runserver domain.com:8000

然后在浏览器打 domain.com:8000/tests

如果能看到 hello test则证明配置成功。

如果不成功,看debug信息吧,debug默认是开启的。

另外我自己配置使用fastcgi方式运行python,python manage.py runfcgi host=127.0.0.1 port=8000,然后用nginx代理访问。两种方式还有所不同,具体的不同点暂时还不知道,希望知道这些差别的大大们多加提示,继续研究中。

django笔记2-配置篇

作者 : admin 于 2009年12月15日, 20:37:59
2009
12-15

1、升级linux的python为最新版本

ln -s /usr/bin/python /opt/python**{your install path}**/bin/python

2、设置django-admin.py至系统命令

ln -s /opt/python**{your install path}**/lib/python2.5/site-packages/django/bin/django-admin.py /usr/bin/django-admin.py

然后查看 django-admin.py –version

回显版本正确,则证明系统配置成功。

django笔记1-安装篇

作者 : admin 于 2009年12月14日, 19:02:47
2009
12-14

1、安装django,当然要安装python,我安装的python2.5

./configure –prefix=你的路径

2、安装mysqldb

这个可以看这篇文章 http://www.sunboyu.cn/2009/04/22/python25mysqldb122%E5%AE%89%E8%A3%85.shtml

3、安装easl_install

http://pypi.python.org/pypi/setuptools 我下的源码,按照提示安装就行

4、使用easl_install安装flup

地址 http://www.saddi.com/software/flup/dist/flup-1.0.2-py2.5.egg

5、安装django1.1

python setup install

到这里大体就算安装完了,底下配置。

康盛,这么做是不是有点过火了

作者 : admin 于 2009年12月10日, 01:02:25
2009
12-10

使用开源产品,的确能加快我们的产品实现进度,我们也感谢那些提供免费开源产品的人。当然,我个人也喜欢开源技术。

但如果开源的产品中给你下个后门,抓取你的数据,你还能高兴么?

现在分析 discuz 7.0 的几段代码:

  1. if($adminid == 1 && $action == 'home') {
  2. echo '<sc '.'ript language="Jav'.'aScript" src="ht'.'tp:/'.'/cus'.'tome'.'r.disc'.'uz.n'.'et/n'.'ews'.'.p'.'hp?'.bbsinformation().'">';
  3. //echo '</sc><sc '.'ript language="Jav'.'aScript" src="http://localhost/com/n'.'ews'.'.p'.'hp?'.bbsinformation().'">';
  4. }
  5. </sc>

恩,看见了没,我告诉大家一个写木马常用的方式 eval ,比如asp中查找木马,通常查找fso等关键字,木马一般都给他写成 eval(’f'+’s’,'o’),写php的应该很熟悉这个函数了。这段代码当然不是木马,咱看看他具体做了什么:

  1. function bbsinformation() {
  2.  
  3. global $db, $timestamp, $tablepre, $charset, $bbname, $_SERVER, $siteuniqueid, $save_mastermobile, $msn;
  4. $update = array('uniqueid' => $siteuniqueid, 'version' => DISCUZ_VERSION, 'release' => DISCUZ_RELEASE, 'php' => PHP_VERSION, 'mysql' => $db->version(), 'charset' => $charset, 'bbname' => $bbname, 'mastermobile' => $save_mastermobile);
  5.  
  6. $updatetime = @filemtime(DISCUZ_ROOT.'./forumdata/updatetime.lock');
  7. if(empty($updatetime) || ($timestamp - $updatetime > 3600 * 4)) {
  8. @touch(DISCUZ_ROOT.'./forumdata/updatetime.lock');
  9. $update['members'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}members");
  10. $update['threads'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}threads");
  11. $update['posts'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}posts");
  12. $query = $db->query("SELECT special, count(*) AS spcount FROM {$tablepre}threads GROUP BY special");
  13. while($thread = $db->fetch_array($query)) {
  14. $thread['special'] = intval($thread['special']);
  15. $update['spt_'.$thread['special']] = $thread['spcount'];
  16. }
  17. if($msn['on'] && $msn['domain']) {
  18. $update['msn_domain'] = $msn['domain'];
  19. }
  20. }
  21.  
  22. $data = '';
  23. foreach($update as $key => $value) {
  24. $data .= $key.'='.rawurlencode($value).'&';
  25. }
  26. return 'update='.rawurlencode(base64_encode($data)).'&md5hash='.substr(md5($_SERVER['HTTP_USER_AGENT'].implode('', $update).$timestamp), 8, 8).'&timestamp='.$timestamp;
  27. }

看见了吧,看他提交的几个关键字段:$update['members'],$update['threads'],$update['posts'],$thread['special'],$update['spt_'.$thread['special']],$update['msn_domain'],这些字段提交过去,也许对我们系统安全并无影响,可看看6.0版本的论坛还提交了什么:

uniqueid=**&version=6.0.0&release=20081117&php=5.2.6&mysql=5.0.22&charset=utf-8&bbname=**&mastermobile=****&members=4965&threads=883&posts=25921&spt_0=879&spt_1=4&

mastermobile 看见这个字段你会汗不?

康盛应该为此行为买单不?不会 。

看下边:

III 有限担保和免责声明
1. 本软件及所附带的文件是作为不提供任何明确的或隐含的赔偿或担保的形式提供的。
2. 用户出于自愿而使用本软件,您必须了解使用本软件的风险,在尚未购买产品技术服务之前,我们不承诺提供任何形式的技术支持、使用担保,也不承担任何因使用本软件而产生问题的相关责任。
3. 康盛创想(北京)科技有限公司不对使用本软件构建的论坛中的文章或信息承担责任。

您必须了解使用本软件的风险–用户了解信息泄露的风险么?
康盛创想(北京)科技有限公司不对使用本软件构建的论坛中的文章或信息承担责任。其实,我也不愿意承担。

本文纯属月经文,如有难受,过几天自然恢复。

完全缓存discuz论坛数据

作者 : admin 于 2009年12月06日, 22:15:07
2009
12-6

最近一直在琢磨discuz的优化,想出一些数据缓存的策略:

index.php 部分数据已经进行了缓存,但需要全部缓存,只有当 页面刷新数/更新时间 >>>> 发帖数/更新时间 ,则有必要做此缓存,此处缓存更新最为频繁,适合做内存缓存,但 更新时间不宜太久,此时间根据首页更新频度确定。

forumdisplay.php 更新频繁,优化策略同上,只是更新频度略低于首页。

viewthread.php 回复更新频繁,内容更新频度低,适合做硬盘缓存。但分页部分不可做缓存,否则……

space.php 更新不频繁,适合做硬盘缓存。

faq.php 做个静态即可。

以上分析只是根据平时维护总结,临时脑子一蹦,未作具体分析,欢迎广大站长讨论试用。版权所有,欢迎盗版。

暂别剑三

作者 : admin 于 2009年11月28日, 00:05:39
2009
11-28

最近发现玩游戏有点堕落,大量时间用在了游戏上,突然有一天,登陆服务器,发现好多命令居然手生了,又发现博客很久没有更新,又发现,几乎没有代码量了。

痛定思痛,本月剑三不再充值。待恢复学习后再考虑充值。

 Page 8 of 48  « First  ... « 6  7  8  9  10 » ...  Last »