手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:godaddy

APC支持php5.4了

时隔一年多,APC终于又更新了,这次更新最大的就是支持PHP5.4:
- Add PHP 5.4 support (Dmitry, Anatoliy, Pierre)
- Fixed bug #22679: Fix apc_bin_dump for constants. Use IS_CONSTANT_TYPE_MASK to handle all the constants, including the unqalified ones (instead of ~IS_CONSTANT_INDEX check)
- Fixed bug #23822, php crashes on apache restart

下载地址在这里:
http://pecl.php.net/package/APC

配置完后还得加入这些信息:

XML/HTML代码
  1. ; alternative php cache 用于缓存和优化php中间代码  
  2.   
  3. apc.cache_by_default = on  
  4. ;sys  
  5. ; 是否默认对所有文件启用缓冲。  
  6. ; 若设为off并与以加号开头的apc.filters指令一起用,则文件仅在匹配过滤器时才被缓存。  
  7.   
  8. apc.enable_cli = off  
  9. ;sys  
  10. ; 是否为cli版本启用apc功能,仅用于测试和调试目的才打开此指令。  
  11.   
  12. apc.enabled = on  
  13. ; 是否启用apc,如果apc被静态编译进php又想禁用它,这是唯一的办法。  
  14.   
  15. apc.file_update_protection = 2  
  16. ;sys  
  17. ; 当你在一个运行中的服务器上修改文件时,你应当执行原子操作。  
  18. ; 也就是先写进一个临时文件,然后将该文件重命名(mv)到最终的名字。  
  19. ; 文本编辑器以及 cp, tar 等程序却并不是这样操作的,从而导致有可能缓冲了残缺的文件。  
  20. ; 默认值 2 表示在访问文件时如果发现修改时间距离访问时间小于 2 秒则不做缓冲。  
  21. ; 那个不幸的访问者可能得到残缺的内容,但是这种坏影响却不会通过缓存扩大化。  
  22. ; 如果你能确保所有的更新操作都是原子操作,那么可以用 0 关闭此特性。  
  23. ; 如果你的系统由于大量的io操作导致更新缓慢,你就需要增大此值。  
  24.   
  25. apc.filters =  
  26. ;sys  
  27. ; 一个以逗号分隔的posix扩展正则表达式列表。  
  28. ; 如果源文件名与任意一个模式匹配,则该文件不被缓存。  
  29. ; 注意,用来匹配的文件名是传递给include/require的文件名,而不是绝对路径。  
  30. ; 如果正则表达式的第一个字符是"+"则意味着任何匹配表达式的文件会被缓存,  
  31. ; 如果第一个字符是"-"则任何匹配项都不会被缓存。"-"是默认值,可以省略掉。  
  32.   
  33. apc.ttl = 0  
  34. ;sys  
  35. ; 缓存条目在缓冲区中允许逗留的秒数。0 表示永不超时。建议值为7200~36000。  
  36. ; 设为 0 意味着缓冲区有可能被旧的缓存条目填满,从而导致无法缓存新条目。  
  37.   
  38. apc.user_ttl = 0  
  39. ;sys  
  40. ; 类似于apc.ttl,只是针对每个用户而言,建议值为7200~36000。  
  41. ; 设为 0 意味着缓冲区有可能被旧的缓存条目填满,从而导致无法缓存新条目。  
  42.   
  43. apc.gc_ttl = 3600  
  44. ;sys  
  45. ; 缓存条目在垃圾回收表中能够存在的秒数。  
  46. ; 此值提供了一个安全措施,即使一个服务器进程在执行缓存的源文件时崩溃,  
  47. ; 而且该源文件已经被修改,为旧版本分配的内存也不会被回收,直到达到此ttl值为止。  
  48. ; 设为零将禁用此特性。  
  49.   
  50. apc.include_once_override = off  
  51. ;sys  
  52. ; 关于该指令目前尚无说明文档,参见:http://pecl.php.net/bugs/bug.php?id=8754  
  53. ; 请保持为off,否则可能导致意想不到的结果。  
  54.   
  55. apc.max_file_size = 1m  
  56. ;sys  
  57. ; 禁止大于此尺寸的文件被缓存。  
  58.   
  59. apc.mmap_file_mask =  
  60. ;sys  
  61. ; 如果使用–enable-mmap(默认启用)为apc编译了mmap支持,  
  62. ; 这里的值就是传递给mmap模块的mktemp风格的文件掩码(建议值为"/tmp/apc.xxxxxx")。  
  63. ; 该掩码用于决定内存映射区域是否要被file-backed或者shared memory backed。  
  64. ; 对于直接的file-backed内存映射,要设置成"/tmp/apc.xxxxxx"的样子(恰好6个x)。  
  65. ; 要使用posix风格的shm_open/mmap就需要设置成"/apc.shm.xxxxxx"的样子。  
  66. ; 你还可以设为"/dev/zero"来为匿名映射的内存使用内核的"/dev/zero"接口。  
  67. ; 不定义此指令则表示强制使用匿名映射。  
  68.   
  69. apc.num_files_hint = 1000  
  70. ;sys  
  71. ; web服务器上可能被包含或被请求的不同源文件的大致数量(建议值为1024~4096)。  
  72. ; 如果你不能确定,则设为 0 ;此设定主要用于拥有数千个源文件的站点。  
  73.   
  74. apc.optimization = 0  
  75. ; 优化级别(建议值为 0 ) 。  
  76. ; 正整数值表示启用优化器,值越高则使用越激进的优化。  
  77. ; 更高的值可能有非常有限的速度提升,但目前尚在试验中。  
  78.   
  79. apc.report_autofilter = off  
  80. ;sys  
  81. ; 是否记录所有由于early/late binding原因而自动未被缓存的脚本。  
  82.   
  83. apc.shm_segments = 1  
  84. ;sys  
  85. ; 为编译器缓冲区分配的共享内存块数量(建议值为1)。  
  86. ; 如果apc耗尽了共享内存,并且已将apc.shm_size指令设为系统允许的最大值,  
  87. ; 你可以尝试增大此值。  
  88.   
  89. apc.shm_size = 30  
  90. ;sys  
  91. ; 每个共享内存块的大小(以mb为单位,建议值为128~256)。  
  92. ; 有些系统(包括大多数bsd变种)默认的共享内存块大小非常少。  
  93.   
  94. apc.slam_defense = 0  
  95. ;sys(反对使用该指令,建议该用apc.write_lock指令)  
  96. ; 在非常繁忙的服务器上,无论是启动服务还是修改文件,  
  97. ; 都可能由于多个进程企图同时缓存一个文件而导致竞争条件。  
  98. ; 这个指令用于设置进程在处理未被缓存的文件时跳过缓存步骤的百分率。  
  99. ; 比如设为75表示在遇到未被缓存的文件时有75%的概率不进行缓存,从而减少碰撞几率。  
  100. ; 鼓励设为 0 来禁用这个特性。  
  101.   
  102. apc.stat = on  
  103. ;sys  
  104. ; 是否启用脚本更新检查。  
  105. ; 改变这个指令值要非常小心。  
  106. ; 默认值 on 表示apc在每次请求脚本时都检查脚本是否被更新,  
  107. ; 如果被更新则自动重新编译和缓存编译后的内容。但这样做对性能有不利影响。  
  108. ; 如果设为 off 则表示不进行检查,从而使性能得到大幅提高。  
  109. ; 但是为了使更新的内容生效,你必须重启web服务器。  
  110. ; 这个指令对于include/require的文件同样有效。但是需要注意的是,  
  111. ; 如果你使用的是相对路径,apc就必须在每一次include/require时都进行检查以定位文件。  
  112. ; 而使用绝对路径则可以跳过检查,所以鼓励你使用绝对路径进行include/require操作。  
  113.   
  114. apc.user_entries_hint = 100  
  115. ;sys  
  116. ; 类似于num_files_hint指令,只是针对每个不同用户而言。  
  117. ; 如果你不能确定,则设为 0 。  
  118.   
  119. apc.write_lock = on  
  120. ;sys  
  121. ; 是否启用写入锁。  
  122. ; 在非常繁忙的服务器上,无论是启动服务还是修改文件,  
  123. ; 都可能由于多个进程企图同时缓存一个文件而导致竞争条件。  
  124. ; 启用该指令可以避免竞争条件的出现。  
  125.   
  126. apc.rfc1867 = off  
  127. ;sys  
  128. ; 打开该指令后,对于每个恰好在file字段之前含有apc_upload_progress字段的上传文件,  
  129. ; apc都将自动创建一个upload_的用户缓存条目(就是apc_upload_progress字段值)。  

这样就差不多OK了

Tags: php, apc, eacceraltra, xcache

TIPS:利用rewrite来规避注入漏洞

PHP的新手在开发的时候不可避免的会遇到SQL注入的问题,很多老手在介绍的时候是叮嘱叮嘱再叮嘱啊。其实有个简单的方法就可以减少这种问题的过失。
1、rewrite 规则
2、很多框架的路由
这两种方式都是将GET方法做了一个简单正则处理,也只有符合规则的情况下,GET值才会被赋值到变量中。如果将ID等做一个\d的判断,那么非数字的已经经过一次过滤了。
而且,你在采用rewrite规则的时候,很多sql语句就无法通过URL被传递进来,因为他们不能被正则正常解析。
当然,你也可以想象,如果你的URL是1-0-0-1-0-1-0-1-1-1.html你能知道这些位数是干嘛的不?这种情况用于搜索比较常见,因为搜索的条件会比较复杂,也会比较容易被用来做注入。
如果根据ID取文章之类的,你show-1-1.html别人是知道你的ID为多少,但已经不太容易注入了吧?
新手只是要学习一下rewrite规则了。了解一下正则也好HOHO

Tags: 注入, rewrite

Google菜市场(Android Market)上不去的解决方法

这两天,使用android操作系统的手机用户,都会发现突然上不了菜市场,也不能gmail同步了。这对于普通用户来说,简直是一个灾难,要知道,使用google手机本来就是为了看中他的contact同步。菜市场我还真没过多在意。如果没有contact同步,我不知道gooogle手机还有多大优势。

对于我们这些略懂的人来说,还能直接用rootexplorer修改hosts文件,添加一些ip/域名映射进去。普通用户怎么办呢?

有两篇文章原理都不变,只是一篇是用adb一篇 是用root explorer来修改的。

第一篇 :http://www.cnblogs.com/nokiaguy/archive/2010/06/15/1758590.html

     最近几天,突然手机(我的是G3,估计其他android手机也有类似的情况)上不了android market了,甚至连gmail也出现网络问题(通过gprs、3g和wifi都不好使)。一开始还以为是手机的问题,后经过多次重启,刷机,还是存在 问题。最后经过验证,google更改了服务设置,相关服务(包括android market)已成了限制服务(原因吗,大家都知道,这里就不说了),但还是有办法解决地。首先下载下面的zip文件。

http://files.cnblogs.com/nokiaguy/process.zip

     解压后,将两个以adb开头的文件复制到windows操作系统的System32目录下。然后运行process.cmd文件。在运行该文件之前要注意 两件事。一是在机器上不要启动android模拟器,否则会出现发现多个android设备的提示。无法更新了。 另一个注意的是要先用usb数据线将手机和PC相连。成功执行process.cmd后(中间可能要按几下回车键),手机会自动重启。重启后 android market和gmail就好使用。这个原理就是修改android系统的hosts文件,更换一个ip。可以打开hosts文件看看就知道了。

第二篇 :http://hiapk.com/bbs/thread-278678-1-1.html

原因:Google於近日有更改其於中國地區所提供的相關服務設定, Android話機無法透過GPRS/3G或Wi-Fi網路進行Gmail的同步連線動作,此為Google所限制服務,故於中國地區目前無法以手機連結Gmail帳號進行同步

此方法适用于所有因为无法连接google服务器而导致无法绑定和同步的机型!

市场软件下载、GMAIL同步 绑定,都可以正常使用
先将解决办法发布如下:

方法一:
一:下载Root Explorer 修改系统文件(建议事先备份Hosts文件)


二:替换/SYSTEM/ETC内的Hosts文件
如果有ROOT权限并且安装ROOTEXPLORER可以将压缩包内的Hosts文件复制到手机的/SYSTEM/ETC内覆盖原Hosts文件。

要记得把权限的勾都选上。


修改所需文件下载:

1Root ExplorerRoot_Explorer.rar

2:Hosts文件 hosts.rar

方法二:
用root explorer 更改/etc/hosts的权限为可写,用终端的VI编辑器在其下添加如下:【膘叔,其实,用root explorer在文件上长按后可以选择用文本模式编辑,会更方便一点。用vi,还真不是每个人都会用。】
127.0.0.1                           localhost
72.14.254.100                clients2.google.com
72.14.254.100                android.l.google.com
72.14.254.100                android.clients.google.com

保存,再用RE改变为只读,重启。

注意:二种方法选择其中任意一种均可,看个人能力来选择!

Tags: android, htc, google

Yii 笔记二

Yii的用户登录,如果不算上权限的话,恐怕真的是很简单的登录。
简单的判断,简单的处理一下就完事了。
但我今天还真的被简单的折腾了一下。
User登录,需要写几个地方
1、components目录下的UserIdentity.php中,需要加一个判断用户的方法,返回errorCode,当然没有错的话就返回0,这是常用ERROR_NONE
2、model目录下的loginForm,里面有简单的判断处理,如果登录成功,调用CWebUser中的login方法。起初的时候,我一直没找到Yii::app()->user是哪个类。。
3、由于Yii::app()->user->login方法的特殊性,因此,必须要在UserIdentity.php中设定好getId,getName,和states变量。当然最简单的就是判断是否取到用户数据,如果取到的话,直接$this->setPersistentStates($usermodel->getAttributes());如果没有id,name的变量,那么即使你登录了,还是会显示没有登录的。我就是在这里被折腾了好久。

over。。。

Tags: yii, 重构

javascript:void(0);

我看的这篇文章介绍的很少,只是一个简单的说明,在网页中,很多人把void当成了一个阻止默认事件发生的工具,因为他没有返回值,所以使用的时候可以肆无忌惮一点。

原文如下:

Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。

void 操作符用法格式如下:
1. javascript:void (expression)
2. javascript:void expression
注:expression 是一个要计算的 Javascript 标准的表达式,圆括号是可选的。

当使用 void 操作符指定的超链接时,表达式会被计算但是不会在当前文档处装入任何内容。

举例:

XML/HTML代码
  1. <A HREF="javascript:void(0)">单此处什么也不会发生</A>  
  2. <A HREF="javascript:void(document.form.submit())">单此处提交表单</A>  

跳转的几种办法:

XML/HTML代码
  1. 1.window.open("url")  
  2.   
  3. 2. 用自定义函数  
  4.          <script>  
  5.          function openWin(obj,target,args)  
  6.          {  
  7.              obj.target="_blank";  
  8.              obj.href = target+"?stationno="+args;  
  9.              obj.click();  
  10.          }  
  11.         </script>  
  12.   
  13. <a href="javascript:void(0)" onclick="openWin(this,"…………",3)">XXXX</a>  
  14.   
  15. 3.window.location.href="";  

 

上述第二种就是所谓利用void来阻止默认链接事情的发生。
还有一种情况就是在href里加入"###",即href="###",为什么是3个而不是一个?这也有一个缘故,请查看:FORM不能跳转,当找不到相应的锚点时,页面才不会往上滚动,如果指定锚点,而锚点名称为空,页面会滚动到顶部。###,其实只是指定一个不存在的锚点而已(又写的乱了)

Tags: void, window.open

Records:712