spl_autoload_register、set_exception_handler和set_error_handler、get_include_path等。

spl_autoload_register

__autoload函数一样,但是更灵活。他的功能是当程序找不到当前正在使用的类时,在报错前,会调用此函数,如果找到了,就继续工作。

set_exception_handler

接管了原本的异常处理,可以隐藏或者美化输出,可以用throw new Exception触发。

set_error_handler

同上,接管了错误处理。可以用trigger_error触发。

镜像下载

centos官方 Aliyun Open Source Mirror Site 网易开源镜像站

虚拟化工具

免费的virtualbox,下载地址 KVM Xen

安装

记一次centos最小安装 centos7.0 的最小化安装

优化

分享一个centos6.*优化脚本 CentOS精简命令

后续

关闭防火墙和SELinux

# 关闭防火墙
service iptables stop 
chkconfig iptables off
chkconfig ip6tables off
# SELinux
vi /etc/selinux/config
# change
SELINUX=disabled
#网卡
------
vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
# change
ONBOOT=yes
NM_CONTROLLED=yes
# change
BOOTPROTO=dhcp
or
BOOTPROTO=static
# 加上
# 静态IP
IPADDR=192.168.1.107
# 设置子网
NETMASK=255.255.255.0
# 设置网关
GATEWAY=192.168.1.1
# 设置DNS
DNS1=114.114.114.114
IPV6INIT=no
USERCTL=no
------
service network restart
chkconfig network on
------
# 全局关闭IPv6
vi /etc/sysctl.conf
#加上
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
------
sysctl -p
reboot

crontab

yum install -y vixie-cron
yum install -y crontabs
service crond start

MySQL

yum install -y mysql-server
mysql_db_install
mysql_secure_installation
service mysqld start

ntpdate

yum install -y ntpdate rdate
ntpdate 210.72.145.44

nginx

nginx配置详解

PHP

编译PHP5.6

# 慎用
yum install -y zabbix zabbix-get zabbix-server zabbix-web-mysql zabbix-web zabbix-agent 

打开错误:

ini_set( 'display_errors', 'On' );

这篇文章于昨日早在215路早读时看到,写的很不错!可以作为学习框架或者写自己的框架之前的读物。

ps.文章中提到了一个名词——控制反转。这个词可能经常会考倒刚入门程序员。控制反转其实其实是一种外包的思想,将总做交给各个领域的'专家'去做,而你只负责如何调度他们的工作。明确的分工会给系统带来很多维护上的便利。这个概念常常和依赖注入同时出现,而什么是依赖注入呢?其实他是控制反转的一个实现方式。

如果你对框架这个概念还不是很理解,那么还可以参考一下老高的系列文章THINKPHP框架解析,老高带你深入框架内部,去看看框架到底做了什么,和为什么这么做。希望这篇转帖和老高的文章能够帮助你深入理解框架的作用。

阅读剩余部分

编译安装nginx后,没有将nginx配置为服务,则无法使用诸如service nginx restart的命令,下面我们看看如何将其配置为服务。

编写脚本

vi /etc/init.d/nginx

写入以下内容,并修改nginx路径

#!/bin/sh   
#   
# nginx - this script starts and stops the nginx daemon   
#   
# chkconfig: - 85 15   
# description: Nginx is an HTTP(S) server, HTTP(S) reverse   
# proxy and IMAP/POP3 proxy server   
# processname: nginx   
# chkconfig: 2345 90 91   
# description: nginx web server  
# processname: nginx  
# config: /opt/nginx/conf/nginx.conf  
# pidfile: /opt/nginx/nginx.pid  
  
# Source function library.  
. /etc/init.d/functions  
  
# Source networking configuration.  
. /etc/sysconfig/network  
  
  
if [ -f /etc/sysconfig/nginx ];then  
. /etc/sysconfig/nginx  
fi  
  
# Check that networking is up.   
[ "$NETWORKING" = "no" ] && exit 0  
  
nginx="#改为nginx二进制的路径"   
prog=$(basename $nginx)  
  
NGINX_CONF_FILE="/etc/nginx/nginx.conf"  
  
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx  
  
lockfile=/var/lock/subsys/nginx  
  
start() {   
[ -x $nginx ] || exit 5   
[ -f $NGINX_CONF_FILE ] || exit 6   
echo -n $"Starting $prog: "   
daemon $nginx #-c $NGINX_CONF_FILE   
retval=$?   
echo   
[ $retval -eq 0 ] && touch $lockfile   
return $retval   
}  
  
stop() {   
echo -n $"Stopping $prog: "   
killproc $prog -QUIT   
retval=$?   
echo   
[ $retval -eq 0 ] && rm -f $lockfile   
return $retval   
killall -9 nginx   
}  
  
restart() {   
configtest || return $?   
stop   
sleep 1   
start   
}  
  
reload() {   
configtest || return $?   
echo -n $"Reloading $prog: "   
killproc $nginx -HUP   
RETVAL=$?   
echo   
}  
  
force_reload() {   
restart   
}  
  
configtest() {   
$nginx -t #-c $NGINX_CONF_FILE   
}  
  
rh_status() {   
status $prog   
}  
  
rh_status_q() {   
rh_status >/dev/null 2>&1   
}  
  
case "$1" in   
start)   
    rh_status_q && exit 0   
    $1   
    ;;   
stop)   
rh_status_q || exit 0   
    $1   
    ;;   
restart)   
    $1   
    ;;   
test)   
    configtest   
    ;;   
reload)   
    rh_status_q || exit 7   
    $1   
    ;;   
force-reload)   
    force_reload   
    ;;   
status)   
    rh_status   
    ;;   
condrestart|try-restart)   
    rh_status_q || exit 0   
    ;;   
*)   
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|test}"   
exit 2   
esac

给予执行权

chmod a+x /etc/init.d/nginx

添加并打开服务

chkconfig --add nginx
chkconfig nginx on

测试

service nginx start
service nginx stop 
service nginx reload

转自:

http://binyan17.iteye.com/blog/1688308

自从使用mac以后,ssh连接总是超时成了老高的一个心病啊,只要一小会儿不动电脑,远程就失去相应,或者干脆直接提示broken pipe,然后断掉。现在终于有了算是能接受的解决办法。

方法一:直截了当砍掉法

~.,是的,你没有看错!这个组合命令就是主动断开ssh的命令,不行自己问问man。

方法二:修改配置文件

服务器和客户端每隔一定的时间会发一个KeepAlive请求,避免因为路由器或线路的限制而断线,例子中的60s可以因具体的环境改变。

针对服务器端

修改/etc/ssh/sshd_config,修改ServerAliveInterval一项,而ServerAliveCountMax表示如果失败重试的次数

ServerAliveInterval 60
ServerAliveCountMax 3

针对客户端

vi /etc/ssh_config
ClientAliveInterval 60
ClientAliveCountMax 3

scp命令经常用在主机之间拷贝文件用,但是如果目标机器的sshd的端口不是默认的22,怎么办呢?

scp -P 1111 [email protected]:/home/xxx

这样就可以配合ssh-keygen -t rsa命令将生成的pub重命名为authorized_keys,并拷贝至目标机器的~/.ssh/文件夹下,这样以后就可以无密码登录ssh了。