修复php-5.2.x和php-5.3.x hash dos漏洞
最近爆发出来的hash dos漏洞威力十足,杀伤力很大。随便一台服务器就可以发起ddos攻击,导致cpu长期占用100%,从而使服务器down机。下面给出php-5.2.x和php-5.3.x的修复方法。
php-5.2.x:
到这里https://github.com/laruence/laruence.github.com/tree/master/php-5.2-max-input-vars下载对应的补丁版本,进入php目录,执行patch -p1 < php-5.2.*-max-input-vars.patch打上补丁,之后make 和make install即可。
php-5.3.x:
php-5.3.x没有提供相应的补丁版本,laruence建议使用php5.3.x的升级到5.3.9RC4或者按照php5.2.x的补丁修改适应成php5.3.x的补丁。下面我们提供直接修改文件的方法,虽然比较麻烦。
1、修改/main/main.c文件,把STD_PHP_INI_ENTRY宏加到main.c的PHP_INI_BEGIN()和PHP_INI_END()宏之间来注册PHP INI指令:
- STD_PHP_INI_ENTRY(" max_input_vars", "1000", PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateLongGEZero, max_input_vars, php_core_globals, core_globals)
2、修改文件/main/php_globals.h,_php_core_globals结构体内加上:
- long max_input_vars;
3、修改文件/main/php_variables.c,在:
- zend_symtable_update(symtable1, escaped_index, index_len + 1, &gpc_element, sizeof(zval *), (void **) &gpc_element_p);
之前加入:
- if (zend_hash_num_elements(symtable1) >= PG(max_input_vars)) {
- php_error_docref(NULL TSRMLS_CC, E_ERROR, "Input variables exceeded %ld. To increase the limit change max_input_vars in php.ini.", PG(max_input_vars));
- }
一共有两处,第一处数组中的键时的操作,而第二处是普通变量时的操作。
Zend Studio 9 破解方法
第一步:如果已经安装过Zend Studio 9.0的,请打开Zend Studio 9.0,在菜单中“help>Unregister”,如果显示是灰的跳过此步退出Zend Studio。如果显示可以点击的请点击,这时Zend Studio会重启,重启到要求你填注册码时点“QUIT”按钮
第二步:下载com.zend.php.core_9.0.0.201111081531文件,下载成功后复制到你安装Zend Studio 9.0的plugins目录下,覆盖同名文件。
第三步:启动Zend Studio 9.0,输入如下注册码License key:(注意没有空格也没有换行) 34E606CF10C3E4CF202ABCEAA9B0B7A64DD2C5862A514B944AAAB38E3EB8A5F2CD735A2AB4CF9B952590EFA62BA0AB2B3E5D99C33C55309EE143165AC7F1817D626574615F3B32312F31312F323031313B392E303B3030313B313B3330
Zend Studio 9.0.0 正式版官方下载地址
Zend Studio 9.0.0 正式版官方下载地址(未包含IBM i edition下载)
- windows版:http://downloads.zend…ZendStudio-9.0.0.msi
- linux版(32位):http://downloads.zend…/ZendStudio-9.0.0-x86.tar.gz
- linux版(64位):http://downloads.zend…ZendStudio-9.0.0-x86_64.tar.gz
- 适用于Mac_OS_X的DMG安装格式:http://downloads.zend…ZendStudio-9.0.0.dmg
zend studio 8 注册码(适用于7.0、8.0所有版本) Username: zendstudio.net Serial Number: 3727234F6095F72034F6095F
Unix Domain套接字的Java包 junixsocket
junixsocket 是一个通过 Java JNI (Java本地接口)实现的基于 Unix Domain 套接字(AF_UNIX )进行通讯的 Java 开发包。
junixsocket 扩展了 Java 的 Socket API ,支持基于 AF_UNIX 的 RMI 通讯,还可以使用 Unix Domain 套接字直接连接本地的 MySQL 服务器。
下面是一段使用 junixsocket 连接 MySQL 的代码示例:
import org.newsclub.net.mysql.AFUNIXDatabaseSocketFactory;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Properties props = new Properties();
props.put("user", "test");
props.put("password", "test");
props.put("socketFactory", AFUNIXDatabaseSocketFactory.class.getName());
props.put("junixsocket.file", "/tmp/mysql.sock");
Connection conn = DriverManager.getConnection("jdbc:mysql:///库名", props);
需要在/opt/newsclub/lib-native 目录下添加
libjunixsocket-linux-1.5-amd64.so
libjunixsocket-linux-1.5-i386.so
libjunixsocket-macosx-1.5-i386.dylib
libjunixsocket-macosx-1.5-x86_64.dylib
以上四个文件可以在以下压缩包中获取到,目录在 junixsocket-1.3\lib-native
需要JAR包,可通过下面链接下载
http://junixsocket.googlecode.com/files/junixsocket-1.3-bin.tar.bz2
PHP FastCGI Server: php5-fpm的配置
FPM配置文件位于/etc/php5/fpm下,包含main.conf(全局配置)和pool.d/*.conf。主要设定在pool.d下的*.conf文件,例如创建一个配置文件www.conf:
其中pm, pm.max_children等设置Fastcgi process manager能创建的child processes的个数。可以根据服务器的内存大小和网站所要承受的负载来调整恰当的值。
如果内存有限(例如使用VPS),则可以考虑将max_children设置得小一些以节省内存。
pm = dynamic
pm.max_children = 8
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
或者设置成静态个数:
pm = static
pm.max_children = 2
完后重启php5-fpm FastCGI server: sudo /etc/init.d/php5-fpm reload
Office 2010 Toolkit(Office2010激活工具)V2.2.3绿色版
Office 2010 Toolkit是一个简单的好用的MS Office2010激活工具。office2010密钥生成器原理就是利用KMS来激活,不是新的激活技术:( 180天后必须手工再次激活一次。网上流传的MAK密钥激活甚称完美,但有次数限制,激活后要备份激活信息,以便重装系统恢复激活。Office2010 Toolkit也有备份激活信息功能,建议下载一个Office 2010 Toolkit备用。
解压后以管理员身份运行,点击工具界面的“Main” 选项, 单击下面的“EZ-Activator” 按钮,工具会自动检测系统安装的Office程序并进行激活,稍后片刻,Office was successfully actived。
重新打开Office2010,查看激活状态你会发现已经激活了。
http://www.mediafire.com/?r90ffd2h80cj6
mysql远程访问的设置
登陆以后运行以下命令,给予远程访问客户端权限..
grant all on *.* to 'remote'@'172.16.21.39' identified by 'password';
remote表示用户名.
'172.16.21.39' 远程ip地址
password表示远程登陆密码.
Nginx下WordPresss URL静态化配置
在nginx.conf下添加以下配置,然后
serivce nginx restart
location / {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
