解压缩PHP压缩包到C:\php目录下(这里假设C:盘是系统盘,如果系统盘是D盘,则解压缩到D:\php目录下,以此类推)。
打开“我的电脑”->“属性”->“高级”->“环境变量”->“系统变量”->“path”,编辑其值,在前面增加下面的路径地址:
C:\php;C:\php\dlls;C:\php\extensions;C:\php\sapi;
将php.ini-dist 复制到C:\Windows 目录下,并改名为php.ini,下面配置php.ini,不说了。
打开“我的电脑”->“属性”->“高级”->“环境变量”->“系统变量”->“path”,编辑其值,在前面增加下面的路径地址:
C:\php;C:\php\dlls;C:\php\extensions;C:\php\sapi;
将php.ini-dist 复制到C:\Windows 目录下,并改名为php.ini,下面配置php.ini,不说了。
我们在解析域名时经常出现 TTL 这个字段,里面默认写的是 3600 。
另外,有时候我们PING某域名或IP的时候,会出现TTL= XXX 今天就这个问题叙说如下:
什么是域名的TTL值?
TTL(Time-To-Live),就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。
TTL值设置的应用:
一.增大TTL值,以节约域名解析时间,给网站访问加速。
一般情况下,域名的各种记录是极少更改的,很可能几个月、几年内都不会有什么变化。我们完全可以增大域名记录的TTL值让记录在各地DNS服务器中缓存的时间加长,这样在更长的一段时间内,我们访问这个网站时,本地ISP的DNS服务器就不需要向域名的NS服务器发出解析请求,而直接从缓存中返回域名解析记录。
国内和国际上很多平台的TTL值都是以秒为单位的,很多的默认值都是3600,也就是默认缓存1小时,这个值实在有点小了,难道会有人一个小时就改一次域名记录吗?您可以根据自己的需要把这个值适当的扩大,例如要缓存一天就设置成86400。Godaddy的TTL设置比较直观,但总共只有5个值可以选定,即时切换到高级设置模式也是如此,有点死板了。网站赢利
环境所迫,LifeTyper.com的TTL值是设置成了最大值1周,设置成更大的值可能会有写不必要的麻烦,例如当您要更换空间时,这些旧的记录要很久才过期并被更新。
二.减小TTL值,减少更换空间时的不可访问时间。
更换空间99.9%会有DNS记录更改的问题,因为缓存的问题,新的域名记录在有的地方可能生效了,但在有的地方可能等上一两天甚至更久才生效。结果就是有的人可能访问到了新服务器,有的人访问到了旧服务器。仅仅是访问的话,这也不是什么大问题,但如果涉及到了邮件发送,这个就有点麻烦了,说不定哪封重要信件就被发送到了那已经停掉的旧服务器上。
为了尽可能的减小这个各地的解析时间差,合理的做法是:
1.先查看域名当前的TTL值,我们假定是1天。
2.修改TTL值为可设定的最小值,可能的话,建议为1分钟,就是60。
3.等待一天,保证各地的DNS服务器缓存都过期并更新了记录。
4.设置修改新记录,这个时候各地的DNS就能以最快的速度更新到新的记录。
5.确认各地的DNS已经更新完成后,把TTL值设置成您想要的值,TTL=60还是太小了点。
记住,这一切都能起作用的前提,是那些DNS服务器完全遵守这些标准和规范,否则NS服务器上怎么设置TTL都是白搭,但目前来看还没发现这么不讲规矩的DNS服务器。
问题是,没有真正意义上的高速NS和DNS服务器。就像这里提到的,在国内速度表现尚可的万网,在国外的评测网站中得分很低,而在国外评测拿到最高分的Godaddy,在国内使用时速度比万网快不了多少。如果您有钱像Google、微软那样在全世界部署大量的CDN加速服务器和NS服务器,那当然没问题,问题是这对绝大部分网站来说都不可能,国内国外不是不可兼得,而是很难。网站赢利
也许有人以为可以通过给域名指定两个NS记录(一个国内一个国外)来提高解析速度,但这也是不可能的,只有在DNS服务器从第一个NS服务器那里获取记录失败时才会向第二个NS服务器发送解析请求。我所知道的一个最廉价和有效的提速方法,就是修改刚才上面说的域名记录的TTL值。
返回结果PING命令,修改其TTL值来防护安全:
在一般情况下我们通过ping对方让对方返回给您的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,通常Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,例如PING www.ieeye.com返回的TTL是240,对方的系统很可能是Linux,而第二个目标的TTL是120,那么说明它使用的系统也许是Windows。
阅读全文
另外,有时候我们PING某域名或IP的时候,会出现TTL= XXX 今天就这个问题叙说如下:
什么是域名的TTL值?
TTL(Time-To-Live),就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。
TTL值设置的应用:
一.增大TTL值,以节约域名解析时间,给网站访问加速。
一般情况下,域名的各种记录是极少更改的,很可能几个月、几年内都不会有什么变化。我们完全可以增大域名记录的TTL值让记录在各地DNS服务器中缓存的时间加长,这样在更长的一段时间内,我们访问这个网站时,本地ISP的DNS服务器就不需要向域名的NS服务器发出解析请求,而直接从缓存中返回域名解析记录。
国内和国际上很多平台的TTL值都是以秒为单位的,很多的默认值都是3600,也就是默认缓存1小时,这个值实在有点小了,难道会有人一个小时就改一次域名记录吗?您可以根据自己的需要把这个值适当的扩大,例如要缓存一天就设置成86400。Godaddy的TTL设置比较直观,但总共只有5个值可以选定,即时切换到高级设置模式也是如此,有点死板了。网站赢利
环境所迫,LifeTyper.com的TTL值是设置成了最大值1周,设置成更大的值可能会有写不必要的麻烦,例如当您要更换空间时,这些旧的记录要很久才过期并被更新。
二.减小TTL值,减少更换空间时的不可访问时间。
更换空间99.9%会有DNS记录更改的问题,因为缓存的问题,新的域名记录在有的地方可能生效了,但在有的地方可能等上一两天甚至更久才生效。结果就是有的人可能访问到了新服务器,有的人访问到了旧服务器。仅仅是访问的话,这也不是什么大问题,但如果涉及到了邮件发送,这个就有点麻烦了,说不定哪封重要信件就被发送到了那已经停掉的旧服务器上。
为了尽可能的减小这个各地的解析时间差,合理的做法是:
1.先查看域名当前的TTL值,我们假定是1天。
2.修改TTL值为可设定的最小值,可能的话,建议为1分钟,就是60。
3.等待一天,保证各地的DNS服务器缓存都过期并更新了记录。
4.设置修改新记录,这个时候各地的DNS就能以最快的速度更新到新的记录。
5.确认各地的DNS已经更新完成后,把TTL值设置成您想要的值,TTL=60还是太小了点。
记住,这一切都能起作用的前提,是那些DNS服务器完全遵守这些标准和规范,否则NS服务器上怎么设置TTL都是白搭,但目前来看还没发现这么不讲规矩的DNS服务器。
问题是,没有真正意义上的高速NS和DNS服务器。就像这里提到的,在国内速度表现尚可的万网,在国外的评测网站中得分很低,而在国外评测拿到最高分的Godaddy,在国内使用时速度比万网快不了多少。如果您有钱像Google、微软那样在全世界部署大量的CDN加速服务器和NS服务器,那当然没问题,问题是这对绝大部分网站来说都不可能,国内国外不是不可兼得,而是很难。网站赢利
也许有人以为可以通过给域名指定两个NS记录(一个国内一个国外)来提高解析速度,但这也是不可能的,只有在DNS服务器从第一个NS服务器那里获取记录失败时才会向第二个NS服务器发送解析请求。我所知道的一个最廉价和有效的提速方法,就是修改刚才上面说的域名记录的TTL值。
返回结果PING命令,修改其TTL值来防护安全:
在一般情况下我们通过ping对方让对方返回给您的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,通常Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,例如PING www.ieeye.com返回的TTL是240,对方的系统很可能是Linux,而第二个目标的TTL是120,那么说明它使用的系统也许是Windows。
阅读全文
线程池的原理:
来看一下线程池究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。可能你也许会问:为什么要搞得这么麻烦,如果每当客户端有新的请求时,我就创建一个新的线程不就完了?这也许是个不错的方法,因为它能使得你编写代码相对容易一些,但你却忽略了一个重要的问题??性能!就拿我所在的单位来说,我的单位是一个省级数据大集中的银行网络中心,高峰期每秒的客户端请求并发数超过100,如果为每个客户端请求创建一个新线程的话,那耗费的CPU时间和内存将是惊人的,如果采用一个拥有200个线程的线程池,那将会节约大量的的系统资源,使得更多的CPU时间和内存用来处理实际的商业应用,而不是频繁的线程创建与销毁。
数据库连接池:
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。
一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的 性能低下。 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应该在请求队列中排队等待。并且应用程序可以根据池中连接的使用率,动态增加或减少池中的连接数。
连接池技术尽可能多地重用了消耗内存地资源,大大节省了内存,提高了服务器地服务效率,能够支持更多的客户服务。通过使用连接池,将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。
1) 最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费;
2) 最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。
有空写写rpc来做c++ mysql实现连接池!
Sun提出rpc后,rpc应用很少。。。
幸运的是,Sun公司通过JDBC-2.0“可选”接口,完成了JDBC中连接池概念的标准化实施,所有主要应用服务器均实施了能够与MySQL Connector/J一起良好工作的这类API。
阅读全文
来看一下线程池究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。可能你也许会问:为什么要搞得这么麻烦,如果每当客户端有新的请求时,我就创建一个新的线程不就完了?这也许是个不错的方法,因为它能使得你编写代码相对容易一些,但你却忽略了一个重要的问题??性能!就拿我所在的单位来说,我的单位是一个省级数据大集中的银行网络中心,高峰期每秒的客户端请求并发数超过100,如果为每个客户端请求创建一个新线程的话,那耗费的CPU时间和内存将是惊人的,如果采用一个拥有200个线程的线程池,那将会节约大量的的系统资源,使得更多的CPU时间和内存用来处理实际的商业应用,而不是频繁的线程创建与销毁。
数据库连接池:
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。
一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的 性能低下。 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应该在请求队列中排队等待。并且应用程序可以根据池中连接的使用率,动态增加或减少池中的连接数。
连接池技术尽可能多地重用了消耗内存地资源,大大节省了内存,提高了服务器地服务效率,能够支持更多的客户服务。通过使用连接池,将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。
1) 最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费;
2) 最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。
有空写写rpc来做c++ mysql实现连接池!
Sun提出rpc后,rpc应用很少。。。
幸运的是,Sun公司通过JDBC-2.0“可选”接口,完成了JDBC中连接池概念的标准化实施,所有主要应用服务器均实施了能够与MySQL Connector/J一起良好工作的这类API。
阅读全文
HTPC机箱:多彩MS-126
技嘉 MA78GPM-UD2H
魅影h920机箱
多彩DL-K1000U
索泰 魅酷主机
http://item.taobao.com/item.htm?id=12333546791
http://item.taobao.com/item.htm?id=13279078580&_u=l6nuj2a391a
技嘉 MA78GPM-UD2H
魅影h920机箱
多彩DL-K1000U
索泰 魅酷主机
http://item.taobao.com/item.htm?id=12333546791
http://item.taobao.com/item.htm?id=13279078580&_u=l6nuj2a391a
一、环境描述
硬件设备:IBM X3650 M2
操作系统:CentOS 5.4
数据库:Oracle 10g 10.2.0.1
PS:此安装文档在上述真实环境下测试成功。
二、系统安装时需要的软件包
·桌面
-X窗口系统
-Gnome桌面环境
·开发
-开发工具
·系统
-管理工具
-系统工具(在细节中选上sysstat)
三、安装Oracle 10g时检查的软件包
binutils-2.17.50.0.6-12.el5
compat-db-4.2.52-5.1
control-center-2.16.0-16.el5
gcc-4.1.2-46.el5_4.1
gcc-c++-4.1.2-46.el5_4.1
glibc-2.5-42
glibc-common-2.5-42
libstdc++-4.1.2-46.el5_4.1
libstdc++-devel-4.1.2-46.el5_4.1
make-3.81-3.el5
pdksh-5.2.14-36.el5
sysstat-7.0.2-3.el5
libaio-0.3.106-3.2
openmotif22-2.2.3-18
libXp-1.0.0-8.1.el5
如果系统里没有上面的任何软件包,均可在安装光盘中找到。
三、配置内核参数
#cat >> /etc/sysctl.conf <<EOF
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
EOF
运行sysctl -p命令使内核生效
四、增加用户组和用户
#groupadd oinstall
#groupadd dba
#useradd -m -g oinstall -G dba oracle
#passwd oracle
五、建立目录并授权
#mkdir -p /opt/oracle
#chown -R oracle:oinstall /opt/oracle
#chmod 775 /opt/oracle
六、设置oracle用户的环境变量
#vi .bash_profile
ORACLE_BASE=/opt/oracle;export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/Db_1;export ORACLE_HOME
ORACLE_SID=mven;export ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH; export PATH
TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN
NLS_LANG='simplified chinese'_china.ZHS16GBK;export NLS_LANG
DISPLAY=:0.0;export DISPLAY
七、修改操作系统版本
#cat > /etc/redhat-release << EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF
八、配置Xwindow
#xhost +
九、准备工作已完成,开始安装Oracle。
来源:http://eryin.blog.51cto.com/320220/244313
硬件设备:IBM X3650 M2
操作系统:CentOS 5.4
数据库:Oracle 10g 10.2.0.1
PS:此安装文档在上述真实环境下测试成功。
二、系统安装时需要的软件包
·桌面
-X窗口系统
-Gnome桌面环境
·开发
-开发工具
·系统
-管理工具
-系统工具(在细节中选上sysstat)
三、安装Oracle 10g时检查的软件包
binutils-2.17.50.0.6-12.el5
compat-db-4.2.52-5.1
control-center-2.16.0-16.el5
gcc-4.1.2-46.el5_4.1
gcc-c++-4.1.2-46.el5_4.1
glibc-2.5-42
glibc-common-2.5-42
libstdc++-4.1.2-46.el5_4.1
libstdc++-devel-4.1.2-46.el5_4.1
make-3.81-3.el5
pdksh-5.2.14-36.el5
sysstat-7.0.2-3.el5
libaio-0.3.106-3.2
openmotif22-2.2.3-18
libXp-1.0.0-8.1.el5
如果系统里没有上面的任何软件包,均可在安装光盘中找到。
三、配置内核参数
#cat >> /etc/sysctl.conf <<EOF
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
EOF
运行sysctl -p命令使内核生效
四、增加用户组和用户
#groupadd oinstall
#groupadd dba
#useradd -m -g oinstall -G dba oracle
#passwd oracle
五、建立目录并授权
#mkdir -p /opt/oracle
#chown -R oracle:oinstall /opt/oracle
#chmod 775 /opt/oracle
六、设置oracle用户的环境变量
#vi .bash_profile
ORACLE_BASE=/opt/oracle;export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/Db_1;export ORACLE_HOME
ORACLE_SID=mven;export ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH; export PATH
TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN
NLS_LANG='simplified chinese'_china.ZHS16GBK;export NLS_LANG
DISPLAY=:0.0;export DISPLAY
七、修改操作系统版本
#cat > /etc/redhat-release << EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF
八、配置Xwindow
#xhost +
九、准备工作已完成,开始安装Oracle。
来源:http://eryin.blog.51cto.com/320220/244313
在CentOS5 下的nginx+php+mysql的解决方案有多个,本文介绍其中的解决方案之一。
本文基于64位的CentOS 5 ,如果是32位的,请在相应部分做修改。
本解决方案使用瑞豪开源自己编译的最新稳定版本的Nginx,fastcgi进程管理使用spawn-fcgi,还有CentOS 5自带的5.0.45版本的MySQL和5.1.6版本的php。
优缺点
本方案的优点是使用CentOS5自带的php和mysql,扩展性好,php的各种扩展yum库里面都有,都可以直接使用;另外,由于使用系统自带的php和mysql,安全性要好一些,如果有什么漏洞都可以直接升级为centos官方的最新版本。由于使用spawn-fcgi,所以无须重新编译php。
本方案的缺点有:
php和mysql都是centos自带的版本,不是最新版本,万一用到php最新版本的某些特性则就不行了。
安装Nginx
到 http://rashost.com/download 下载nginx-0.7.61-1.x86_64.rpm
#rpm -ivh nginx-0.7.61-1.x86_64.rpm
service nginx start
ntsysv nginx on
rpm -ql nginx
上面的rpm -ql nginx命令是看看nginx的文件都安装在哪些目录下面了,可以看到nginx的缺省网页目录应该是/usr/share/nginx/html/
通过浏览器访问,应该能看到nginx的缺省网页了,说明nginx正常工作了!
安装MySQL
#yum -y install mysql-server
##ntsysv
选中mysql
#service mysql start
或者 /etc/init.d/mysqld start
改密码
/usr/bin/mysqladmin -u root password '123456'
安装PHP
yum install -y php-cgi php-mysql
安装spawn-fcgi
到http://rashost.com/download 下载 spawn-fcgi-1.6.2-1.32.x86_64.rpm
rpm -ivh spawn-fcgi-1.6.2-1.32.x86_64.rpm
然后在/etc/rc.local里面加入spawn-fcgi的启动命令:
#spawn-fcgi -C 10 -a 127.0.0.1 -p 9000 -u nginx -d /tmp -f php-cgi
其中的-C 10参数是指启动的php fastcgi的进程数目,这个数值可以根据网站的访问量和内存大小修改。
然后先手工启动一下php:
spawn-fcgi -C 10 -a 127.0.0.1 -p 9000 -u nginx -d /tmp -f php-cgi
整合
首先在/usr/share/nginx/html目录下创建文件test.php,其内容很简单,只要下面一行:
通过浏览器访问http://192.168.1.5/test.php是得不到正确的显示结果的。
修改nginx的配置文件/etc/nginx/nginx.conf,在文件内搜索fastcgi_pass,修改该部分内容为:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
然后重启nginx:
/etc/init.d/nginx/restart
然后在浏览器中访问test.php页面,就应该能正确显示了,reboot 测试一下,各个模块应该都能自带启动。
来源:http://rashost.com/blog/centos5-vps-nginx-solution1
本文基于64位的CentOS 5 ,如果是32位的,请在相应部分做修改。
本解决方案使用瑞豪开源自己编译的最新稳定版本的Nginx,fastcgi进程管理使用spawn-fcgi,还有CentOS 5自带的5.0.45版本的MySQL和5.1.6版本的php。
优缺点
本方案的优点是使用CentOS5自带的php和mysql,扩展性好,php的各种扩展yum库里面都有,都可以直接使用;另外,由于使用系统自带的php和mysql,安全性要好一些,如果有什么漏洞都可以直接升级为centos官方的最新版本。由于使用spawn-fcgi,所以无须重新编译php。
本方案的缺点有:
php和mysql都是centos自带的版本,不是最新版本,万一用到php最新版本的某些特性则就不行了。
安装Nginx
到 http://rashost.com/download 下载nginx-0.7.61-1.x86_64.rpm
#rpm -ivh nginx-0.7.61-1.x86_64.rpm
service nginx start
ntsysv nginx on
rpm -ql nginx
上面的rpm -ql nginx命令是看看nginx的文件都安装在哪些目录下面了,可以看到nginx的缺省网页目录应该是/usr/share/nginx/html/
通过浏览器访问,应该能看到nginx的缺省网页了,说明nginx正常工作了!
安装MySQL
#yum -y install mysql-server
##ntsysv
选中mysql
#service mysql start
或者 /etc/init.d/mysqld start
改密码
/usr/bin/mysqladmin -u root password '123456'
安装PHP
yum install -y php-cgi php-mysql
安装spawn-fcgi
到http://rashost.com/download 下载 spawn-fcgi-1.6.2-1.32.x86_64.rpm
rpm -ivh spawn-fcgi-1.6.2-1.32.x86_64.rpm
然后在/etc/rc.local里面加入spawn-fcgi的启动命令:
#spawn-fcgi -C 10 -a 127.0.0.1 -p 9000 -u nginx -d /tmp -f php-cgi
其中的-C 10参数是指启动的php fastcgi的进程数目,这个数值可以根据网站的访问量和内存大小修改。
然后先手工启动一下php:
spawn-fcgi -C 10 -a 127.0.0.1 -p 9000 -u nginx -d /tmp -f php-cgi
整合
首先在/usr/share/nginx/html目录下创建文件test.php,其内容很简单,只要下面一行:
通过浏览器访问http://192.168.1.5/test.php是得不到正确的显示结果的。
修改nginx的配置文件/etc/nginx/nginx.conf,在文件内搜索fastcgi_pass,修改该部分内容为:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
然后重启nginx:
/etc/init.d/nginx/restart
然后在浏览器中访问test.php页面,就应该能正确显示了,reboot 测试一下,各个模块应该都能自带启动。
来源:http://rashost.com/blog/centos5-vps-nginx-solution1
1、尽量不要选购过于廉价的产品,因为价格将决定移动硬盘盒的用料情况,而用料过于简省则无法保证移动硬盘的稳定运行,为将来应用带来隐患,建议大家多考虑做工优秀且有品质保证的产品。阅读全文
text-decoration:none 没有下划线.
color 字体颜色.
font-size 字体大小
background-color 字体的背影颜色。
链接文字的变化,就是初始状态和激发状态的颜色变化。
将如下的代码,插入<head></head>就可以啦
<style type="text/css">
a {text-decoration:none; color:#000000; font-size:14px;}
a:hover {text-decoration:none;color:#ff0000; font-size:14px}
</style>
a: link 设置 a 对象在未被访问前的样式。
a: hover 设置对象在其鼠标悬停时的样式。
a: active 设置对象在被用户激活(在鼠标点击与释放之间发生的事件)时的样式
a: visited 设置 a 对象在其链接地址已被访问过时的样式
<style>
a:link {color: #FF0000} /* 未被访问的链接 */
a:visited {color: #00FF00} /* 已被访问的链接 */
a:hover {color: #FF00FF} /* 当有鼠标悬停在链接上 */
a:active {color: #0000FF} /* 被选择的链接 */
</style>
macbook也支持这个参数:
背景:有时装lamp后会有一堆的那个目录,想对安装包如tar.gz的打包,于是要删除解压安装时生成的源码目录,于是涉及到少还成,多了得用脚本删除了。
f:表示文件:
find . -name "*rpm*" -type d //这一块如果查找目录d或文件f,必须要有一个-name "xxxnamexxx",直接查目录是不行的:find . "*rpm*" -type d。
查找目录:find /(查找范围) -name '查找关键字' -type d
查找文件:find /(查找范围) -name 查找关键字 -print
find . -type f -maxdepth 3
./d/3f/b89e893d32ff442e1384491f999ce3fd
./d/4d/51c84a9975c482b8ec9f75dc727894dd
./d/c1/be2597fe2aab031a1e3ef12700ea8c1d
./d/ce/740cccf3e5d339e34c5c635ba94bfced
./d/9e/2ba071f358130974c562aa5a81dd69ed
用find查找一个层级下的文件并通过grep过滤掉一些后缀文件:
find -type f -maxdepth 1|grep -vE "tar.gz|tgz|gz"
d:表示目录
[/home/jackxiang/ccc]# find . -type d -print
.
./a
查找第一个层级的文件里包含com的文件名列表:
—————————————————————————————————————————————————————————————————————
一:
[root@emulMachine 20120207]# find . -maxdepth 1 -type d
./mysql-5.6.13
./mysql-5.6.14
./php-5.3.27-bak
./libmcrypt-2.5.7
./memcache-3.0.6
二:
换个位置会提醒:
find . -type d -maxdepth 1
find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
-maxdepth<目录层级> 设置最大目录层级。
摘自:http://blog.csdn.net/windone0109/article/details/2817792
背景:有时装lamp后会有一堆的那个目录,想对安装包如tar.gz的打包,于是要删除解压安装时生成的源码目录,于是涉及到少还成,多了得用脚本删除了。
f:表示文件:
find . -name "*rpm*" -type d //这一块如果查找目录d或文件f,必须要有一个-name "xxxnamexxx",直接查目录是不行的:find . "*rpm*" -type d。
查找目录:find /(查找范围) -name '查找关键字' -type d
查找文件:find /(查找范围) -name 查找关键字 -print
find . -type f -maxdepth 3
./d/3f/b89e893d32ff442e1384491f999ce3fd
./d/4d/51c84a9975c482b8ec9f75dc727894dd
./d/c1/be2597fe2aab031a1e3ef12700ea8c1d
./d/ce/740cccf3e5d339e34c5c635ba94bfced
./d/9e/2ba071f358130974c562aa5a81dd69ed
用find查找一个层级下的文件并通过grep过滤掉一些后缀文件:
find -type f -maxdepth 1|grep -vE "tar.gz|tgz|gz"
[/home/jackxiang/ccc]# find . -type f -print
./a/a.txt
./a.txt
./b.txt
./c.txt
./a/a.txt
./a.txt
./b.txt
./c.txt
d:表示目录
[/home/jackxiang/ccc]# find . -type d -print
.
./a
查找第一个层级的文件里包含com的文件名列表:
—————————————————————————————————————————————————————————————————————
一:
[root@emulMachine 20120207]# find . -maxdepth 1 -type d
./mysql-5.6.13
./mysql-5.6.14
./php-5.3.27-bak
./libmcrypt-2.5.7
./memcache-3.0.6
二:
换个位置会提醒:
find . -type d -maxdepth 1
find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
-maxdepth<目录层级> 设置最大目录层级。
摘自:http://blog.csdn.net/windone0109/article/details/2817792
xargs
大多数 Linux 命令都会产生输出:文件列表、字符串列表等。但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file 命令显示文件类型(可执行文件、ascii 文本等);您可以处理输出,使其仅显示文件名,现在您希望将这些名称传递给 ls -l 命令以查看时间戳记。xargs 命令就是用来完成此项工作的。它允许您对输出执行其他某些命令。记住下面这个来自于第 1 部分中的语法:
file -Lz * | grep ASCII | cut -d":" -f1 | xargs ls -ltr阅读全文
大多数 Linux 命令都会产生输出:文件列表、字符串列表等。但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file 命令显示文件类型(可执行文件、ascii 文本等);您可以处理输出,使其仅显示文件名,现在您希望将这些名称传递给 ls -l 命令以查看时间戳记。xargs 命令就是用来完成此项工作的。它允许您对输出执行其他某些命令。记住下面这个来自于第 1 部分中的语法:
file -Lz * | grep ASCII | cut -d":" -f1 | xargs ls -ltr阅读全文
下载模块:http://www.nowhere-land.org/programs/mod_vhost_limit/
安装:
apxs -c mod_vhost_limit.c -o /path/to/libexec/mod_vhost_limit.so
在 httpd.conf 加入:
LoadModule vhost_limit_module libexec/mod_vhost_limit.so
AddModule mod_vhost_limit.c
阅读全文
安装:
apxs -c mod_vhost_limit.c -o /path/to/libexec/mod_vhost_limit.so
在 httpd.conf 加入:
LoadModule vhost_limit_module libexec/mod_vhost_limit.so
AddModule mod_vhost_limit.c
阅读全文
1、在“linux下批量修改文件名”中使用到了此命令,将源文件批量mv的时间,将上一个命令的输出作为参数传入下一命令,比你个执行下一命令。
find -name ‘*.jpg’ -printf %f \\n|grep -v ^[0-9] |grep -v logo.jpg|awk -F ‘.’ ‘{print $1}’|
xargs -i{} mv {}.jpg `date +%Y%m%d`{}.jpg
find ./ -name tmp -type f -print | xargs /bin/rm -f
找到tmp文件,删除。
find ./ -name tmp -type f -print | xargs -0 /bin/rm -f
找到tmp文件,删除。当文件名字包含新行或空格时使用。
cut -d: -f1 < /etc/passwd | sort | xargs echo
列举用户。
find ./ -type f -print | xargs -i mv -f {} `date +%Y%m%d`{}
文件重命名的批量方法,加上时间戳。阅读全文
find -name ‘*.jpg’ -printf %f \\n|grep -v ^[0-9] |grep -v logo.jpg|awk -F ‘.’ ‘{print $1}’|
xargs -i{} mv {}.jpg `date +%Y%m%d`{}.jpg
find ./ -name tmp -type f -print | xargs /bin/rm -f
找到tmp文件,删除。
find ./ -name tmp -type f -print | xargs -0 /bin/rm -f
找到tmp文件,删除。当文件名字包含新行或空格时使用。
cut -d: -f1 < /etc/passwd | sort | xargs echo
列举用户。
find ./ -type f -print | xargs -i mv -f {} `date +%Y%m%d`{}
文件重命名的批量方法,加上时间戳。阅读全文
ls 命令可以说是linux下最常用的命令之一。它有众多的选项,其中有很多是很有用的,你是否熟悉呢?下面列出了 ls 命令的绝大多数选项。
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。
-c 输出文件的 i 节点的修改时间,并以此排序。
-d 将目录象文件一样显示,而不是显示其下的文件。
-e 输出时间的全部信息,而不是输出简略信息。
-f -U 对输出的文件不排序。
-g 无用。
-i 输出文件的 i 节点的索引信息。
-k 以 k 字节的形式表示文件的大小。
-l 列出文件的详细信息。
-m 横向输出文件名,并以“,”作分格符。
-n 用数字的 UID,GID 代替名称。
-o 显示文件的除组信息外的详细信息。
-p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通
文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套
接字(sockets)。
-q 用?代替不可输出的字符。
-r 对目录反向排序。
-s 在每个文件名后输出该文件的大小。
-t 以时间排序。
-u 以文件上次被访问的时间排序。
-x 按列输出,横向排序。
-A 显示除 “.”和“..”外的所有文件。
-B 不输出以 “~”结尾的备份文件。
-C 按列输出,纵向排序。
-G 输出文件的组的信息。
-L 列出链接文件名而不是链接到的文件。
-N 不限制文件长度。
-Q 把输出的文件名用双引号括起来。
-R 列出所有子目录下的文件。
-S 以文件大小排序。
-X 以文件的扩展名(最后一个 . 后的字符)排序。
-1 一行只输出一个文件。
--color=no 不显示彩色文件名
--help 在标准输出上显示帮助信息。
--version 在标准输出上输出版本信息并退出。
只列出子目录
1. ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux)
2. ls -l | grep "^d" 或者 ls -lL | grep "^d" (Solaris)
计算当前目录下的文件数和目录数
下面命令可以分别计算当前目录下的文件和目录个数:
# ls -l * |grep "^-"|wc -l ---- to count files
# ls -l * |grep "^d"|wc -l ----- to count dir
显示彩色目录列表
打开/etc/bashrc, 加入如下一行:
alias ls="ls --color"
下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:
1. 蓝色-->目录
2. 绿色-->可执行文件
3. 红色-->压缩文件
4. 浅蓝色-->链接文件
5. 灰色-->其他文件
ls -tl --time-style=full-iso sshd
ls -ctl --time-style=long-iso
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。
-c 输出文件的 i 节点的修改时间,并以此排序。
-d 将目录象文件一样显示,而不是显示其下的文件。
-e 输出时间的全部信息,而不是输出简略信息。
-f -U 对输出的文件不排序。
-g 无用。
-i 输出文件的 i 节点的索引信息。
-k 以 k 字节的形式表示文件的大小。
-l 列出文件的详细信息。
-m 横向输出文件名,并以“,”作分格符。
-n 用数字的 UID,GID 代替名称。
-o 显示文件的除组信息外的详细信息。
-p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通
文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套
接字(sockets)。
-q 用?代替不可输出的字符。
-r 对目录反向排序。
-s 在每个文件名后输出该文件的大小。
-t 以时间排序。
-u 以文件上次被访问的时间排序。
-x 按列输出,横向排序。
-A 显示除 “.”和“..”外的所有文件。
-B 不输出以 “~”结尾的备份文件。
-C 按列输出,纵向排序。
-G 输出文件的组的信息。
-L 列出链接文件名而不是链接到的文件。
-N 不限制文件长度。
-Q 把输出的文件名用双引号括起来。
-R 列出所有子目录下的文件。
-S 以文件大小排序。
-X 以文件的扩展名(最后一个 . 后的字符)排序。
-1 一行只输出一个文件。
--color=no 不显示彩色文件名
--help 在标准输出上显示帮助信息。
--version 在标准输出上输出版本信息并退出。
只列出子目录
1. ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux)
2. ls -l | grep "^d" 或者 ls -lL | grep "^d" (Solaris)
计算当前目录下的文件数和目录数
下面命令可以分别计算当前目录下的文件和目录个数:
# ls -l * |grep "^-"|wc -l ---- to count files
# ls -l * |grep "^d"|wc -l ----- to count dir
显示彩色目录列表
打开/etc/bashrc, 加入如下一行:
alias ls="ls --color"
下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:
1. 蓝色-->目录
2. 绿色-->可执行文件
3. 红色-->压缩文件
4. 浅蓝色-->链接文件
5. 灰色-->其他文件
ls -tl --time-style=full-iso sshd
ls -ctl --time-style=long-iso
find . -type f -iregex ".*" -exec egrep -li "WINDOWS XP" {} \;
建立了测试目录,以下是当前目录的结构
-----------------------------------------------------------
.
|-- boot.ini
|-- test folder
| `-- boot.ini
`-- testfolder
`-- boot.ini
2.执行结果
------------------------------------------------------------
find . -type f -iregex ".*" -exec egrep -li "WINDOWS XP" {} \;
./testfolder/boot.ini
./test folder/boot.ini
./boot.in
甲骨文/SUN交易案最新动向:甲骨文向MySQL用户、开发者、客户做出十项承诺。
甲骨文公司与欧盟委员会就甲骨文SUN公司的交易案进行了建设性的讨论,并承诺将保持MySQL在数据库市场的竞争力。为了进一步获得欧盟的批准,甲骨文公司公开其十项承诺,内容如下:
1、保证存储引擎API持续可用性。阅读全文
甲骨文公司与欧盟委员会就甲骨文SUN公司的交易案进行了建设性的讨论,并承诺将保持MySQL在数据库市场的竞争力。为了进一步获得欧盟的批准,甲骨文公司公开其十项承诺,内容如下:
1、保证存储引擎API持续可用性。阅读全文
create table Tbl_User_Bak_09_12_15 (select * from Tbl_User);//先备份表
mysqldump -uroot -t DB_Maestro_2009 Tbl_User_Bak_09_12_15 >Tbl_User_Bak_09_12_15.sql;//只导出显示数据到线下二次功能开发
mysqldump -uroot -t DB_Maestro_2009 Tbl_User_Bak_09_12_15 >Tbl_User_Bak_09_12_15.sql;//只导出显示数据到线下二次功能开发
在asp中页面的包含很简单,使用以下语句就可以:<!-- include file="要包含的页面" ->
但是在 html 静态页面中则需要用其他的方法。可以使用1.框架 来实现,但是那样占用线程较多,速度慢;也可以使用2. js 脚码来实现,即在脚码中写出要实现的内容,我觉得这样也没有必要,反而感觉很乱。最好能有一种方法,就像asp页面包含其他页面时那样,用一小段包含语句就可以实现,不要将需要包含的内容出现在本页面内,而是分割出去到另外一个自己的页面。下面是一种实现方法:
<span id=showImport1></span>
<IE:Download ID="oDownload1" STYLE="behavior:url(#default#download)" />
<script>
function onDownloadDone(downData){
showImport1.innerHTML=downData
}
oDownload1.startDownload('top.htm',onDownloadDone)
</script>
注:包含的页面为 top.htm 只要把需要包含的页面改掉就可以了!其中id=showimport 不能改为其他,这种写法为一次包含一个文件。
阅读全文
但是在 html 静态页面中则需要用其他的方法。可以使用1.框架 来实现,但是那样占用线程较多,速度慢;也可以使用2. js 脚码来实现,即在脚码中写出要实现的内容,我觉得这样也没有必要,反而感觉很乱。最好能有一种方法,就像asp页面包含其他页面时那样,用一小段包含语句就可以实现,不要将需要包含的内容出现在本页面内,而是分割出去到另外一个自己的页面。下面是一种实现方法:
<span id=showImport1></span>
<IE:Download ID="oDownload1" STYLE="behavior:url(#default#download)" />
<script>
function onDownloadDone(downData){
showImport1.innerHTML=downData
}
oDownload1.startDownload('top.htm',onDownloadDone)
</script>
注:包含的页面为 top.htm 只要把需要包含的页面改掉就可以了!其中id=showimport 不能改为其他,这种写法为一次包含一个文件。
阅读全文