使用 Zend Opcache 加速 PHP

Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具。现在,Zend 科技公司将 Optimizer+ 在 PHP License 下开源成为 Zend Opcache。

Zend OPcache 通过 opcode 缓存和优化提供更快的 PHP 执行过程。它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。 Continue reading

centos 6关闭ipv6

通过网卡属性查看

命令:ifconfig

注释:有 “inet6 addr:。。。。。。。“ 的表示开启了ipv6功能.使用下面的方法可以关闭ipv6

1.修改/etc/modprobe.d/dist.conf

#vi /etc/modprobe.d/dist.conf

添加下面两行内容

alias net-pf-10 off
alias ipv6 off

保存退出,并且重新启动系统

2.验证ipv6模块是否加载

#lsmod|grep ipv6

4.开机不启动

#chkconfig ip6tables off

重启 用命令“lsmod | grep v6”查看,是否启动加载!

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

1.修改/etc/sysconfig/network,追加:

NETWORKING_IPV6=no

2.修改/etc/hosts文件,把ipv6的那句本地主机名解析的也注释掉:

#::1   localhost localhost6 localhost6.localdomain6

IPv6是默认支持的,所以当你要重新开起IPv6支持时,将/etc/modprobe.d/dist.conf中的两条指令注释掉就可以了。

更多参考:http://hi.baidu.com/404656204/item/848f29d2f9231014d68ed0db

DDoS deflate – Linux下防御/减轻DDOS攻击

http://deflate.medialayer.com/

前言

互联网如同现实社会一样充满钩心斗角,网站被DDOS也成为站长最头疼的事。在没有硬防的情况下,寻找软件代替是最直接的方法,比如用iptables,但是iptables不能在自动屏蔽,只能手动屏蔽。今天要说的就是一款能够自动屏蔽DDOS攻击者IP的软件:DDoS deflate

DDoS deflate介绍

DDoS deflate是一款免费的用来防御和减轻DDoS攻击的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限 制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP. Continue reading

curl网站开发指南(转)

作者: 阮一峰

日期: 2011年9月 4日

我一向以为,curl只是一个编程用的函数库。

最近才发现,这个命令本身,就是一个无比有用的网站开发工具,请看我整理的它的用法。

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

curl网站开发指南

阮一峰 整理

curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。

它支持多种协议,下面举例讲解如何将它用于网站开发。 Continue reading

测试golang中的多核多线程

"并发 (concurrency)" 和 "并行 ( parallelism)" 是不同的。在单个 CPU 核上,线程通过时间片或者让出控制权来实现任务切换,达到 "同时" 运行多个任务的⺫的,这就是所谓的并发。但实际上任何时刻都只有一个任务被执行,其他任务通过某种算法来排队。

多核 CPU 可以让同个进程内的 "多个线程" 做到真正意义上的同时运,它们之间不需要排队 (依然会发生排队,因为线程数量可能超出 CPU 核数量,还有其他的进程等等。这里说的是一个理想状况),这才是并行。除了多核,并行计算还可能是多台机器上部署运行。 Continue reading

golang中的Array 、Slices 和 Maps

https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/02.2.md

注意slice和数组在声明时的区别:声明数组时,方括号内写明了数组的长度或使用...自动计算长度,而声明slice时,方括号内没有任何字符。

arr1 := [10]int{1,2,3,4} //数组,长度为10,只有4个元素指定,其它的元素值默认为0
arr2 := [...]string{"a","b","c"} //数组,长度自适应,这里长度为3
s1 := []int{1,2,3,4} //slice,目前长度为4,可能通过append来动态添加元素个数

示例:


package main

import (
 "fmt"
)

func main() {

//array example
 arr := [10]int{1, 2, 3} //array 指定前三个值,其它值使用默认类型值0
 fmt.Println(len(arr))
 fmt.Println(arr)
 //a1 := append(arr, 4, 5) //数组不支持append,只有slice才支持append
 //fmt.Println(a1)

//slice example
 slice := []string{"a", "b", "c"} // slice
 s1 := append(slice, "d")
 fmt.Println(s1)

slice2 := []string{"x", "y", "x"}
 len1 := len(slice2)
 cap1 := cap(slice2)
 fmt.Println(slice2) // [x y x]
 fmt.Println("len:", len1, "cap:", cap1) //len: 3 cap: 3

s2 := append(slice, slice2...)
 len2 := len(slice2)
 cap2 := cap(s2)
 fmt.Println(s2) //[a b c x y x]
 fmt.Println("len:", len2, "cap:", cap2) //len: 3 cap: 6

}

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

数组定义方式 "[n]<type>" 有点古怪。长度下标 n 必须是编译期正整数常量 (或常量表达式)。 Continue reading

golang中包的用法

将d:/gotest/ 目录加入到GOPATH中.这里会涉及到包和结构体还有一些方法的用法,可以再深入的了了解一下

注意一下一些struct和 func 名称的大小写问题.

首先要在 $GOPATH/src 目录里创建一个包名目录,这里包名目录为stu,与文件名一样(也可以不一样),大概流程参考:
GO_package

d:/gotest/src/main/main.go

package main

import (
	"fmt"
	"stu"
)

func main() {

	//sxf := new(stu.Stu)
	sxf := &stu.Stu{}

	sxf.SetName("zhangli")
	a := sxf.GetName()

	fmt.Println(a)
}

d:/gotest/src/stu/stu.go

package stu

type Stu struct {
	name string
	//age int
}

func (s *Stu) SetName(name string) {
	s.name = name

}

func (s *Stu) GetName() string {

	return s.name
}

在cmd中执行

go run main.go

会看到输出结果 zhangli 

centos下更新Python版本的步骤

准备安装gitlab,发现系统目前的python版本为2.4.3版本.太低了, 虽然目前最高版本为3.3.0版本.但gitlab不支持这个版本.没有办法,我们这里将python升级到2.7.6版本.

更新python千万不要把老版本的删除!新老版本是可以共存的,很多基本的命令、软件包都要依赖预装的老版本python的,比如yum。

Continue reading