VMware 无法安装 解决办法

VMware不可以安装在已经安装有VMware产品的windows主机上,VMware是否已经安装在一台Windows主机上,是根据注册表的一些键值来判断的。当卸载VMware的时候,这些键值没有被删除,于是在下次安装VMware的时候,就会出现问题。
解决办法(一):
1.以本地管理员帐户登陆你的主机
2.关闭主机上的所有的防火墙软件,一些防火墙软件会干涉安装的进程
3.利用Windows的“添加删除软件”功能删除VMware,如果VMware在添加删除程序的列表中
4.运行VMware注册表清理脚本,如果卸载不成功,则可以运行VMware_Install_Cleaner.exe也就是我们常说的反安装 软件。这个脚本可以清除 Workstation 3.1, Workstation 3.2, Workstation 4.x, Workstation 5.x, GSX Server 2.x, GSX Server 3.0, GSX Server 3.1, ACE Manager 1.0, ACE 1.0, VmPerl 2.0, VmPerl 3.0, VmCOM 2.0, and VmCOM 3.0安装的时候,写入Windows的注册表键值。 如果你的VMware Workstation 的版本是5系列,则只需在命令行下输入VMware-workstation-<version>.exe /c ,就可以清除由MSI安装包写入注册表的键值。注意:在命令行中要把你的当前目录设置到VMware- workstation-<version>.exe文件所在目录,如果使用这个命令不起作用,则再使用 VMware_Install_Cleaner.exe
下载地址:下载
5.重新启动计算机
当你操作完第4点或者成功安装了VMware的时候请重新启动计算机。
6.使用Microsoft CleanUp utility
具体使用方法support.microsoft.com/default.aspx?scid=kb;en-us;290301.
解决办法(二):手动清除注册表
对注册表进行操作可能会导致系统无法正常启动,请在修改注册表之前备份注册表
1.以管理员的身份登陆本地计算机
2.停止以下服务
VMware Authentication Service
VMware Registration Service
VMware DHCP Service
VMware NAT Service
3.卸载VMware network bridge
开始>设置> 网络连接>右键任何网络适配器>属性
选择VMware Bridge Protocol More >

zend studio for eclipse 6.0 一些配置

最近整理了一下zend studio for eclipse 的一些常用的配置如下:
【已备后用】

window ->preferences->general->workspace,看到右边的text file encoding。设定zend 的初始编码。
window ->preferences->php->templates->New simple PHP file。进行设定自己的一些署名信息及代码介绍等等。
缩进方法 [向右] tab [向右]shift+tab

在XAMPP中开启Zend Optimizer

XAMPP中默认是安装了Zend Optimizer,但是默认并没有打开Zend Optimizer,要想打开Zend Optimizer,你必须将XAMPP中的以下文件:
* \xampp\php\php.ini 中的zend_optimizer.enable_loader = 0改成1,重启Apache,Zend Optimizer就启动了。

ubuntu 安装Lamp

1、获取软件包
httpd-2.2.4.tar.gz
mysql-6.0.0-alpha.tar.gz
php-5.2.2.tar.gz
去相应的官方网站都可以下载到,把它们全部放到 /usr/local/src 下面.
2、安装 mysql
这三个软件包的安装应该没有先后顺序,但我还是习惯先安装mysql:

>tar -zxvf mysql-6.0.0-alpha.tar.gz
>cd mysql-6.0.0-alpha
>./configure –prefix=/usr/local/mysql
>make
>make install
>cp support-files/my-medium.cnf /etc/my.cnf
>cd /usr/local/mysql
>chown -R mysql .
>chgrp -R mysql .
>bin/mysql_install_db –user=mysql
>chown -R mysql var
>bin/mysqld_safe –user=mysql &

到这里mysql就算安装并启动完毕了,但是还有一些工作也是必须要做的,比如设置root密码、让mysql开机自启动:
设置mysql的root密码:

>bin/mysqladmin -u root password 新密码

设置mysql开机自启动:

>cp /usr/local/src/mysql-6.0.0-alpha/support-files/mysql.server /etc/rc.d/init.d/mysql
>chmod +x /etc/rc.d/init.d/mysql
>chkconfig –add mysql

3、安装Apache

>tar -zxvf httpd-2.2.4.tar.gz
>cd httpd-2.2.4
>./configure –prefix=/usr/local/apache –with-mysql=/usr/local/mysql –enable-module=so –enable-shared=max
>make
>make install

4、安装PHP

>tar -zxvf php-5.2.2.tar.gz
>cd php-5.2.2
>./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql –with-apxs2=/usr/local/apache/bin/apxs
>make
>make install
>cp php.ini-dist /usr/local/php/lib/php.ini
>vi /usr/local/php/lib/php.ini
修改 register_globals=On

5、配置httpd.conf

>vi /usr/local/apache/conf/httpd.conf
找到“AddType More >

Ubuntu常用命令 集合

sudo apt-get install 软件名 安装软件命令
sudo nautilus 打开文件(有root权限)
su root 切换到“root”
ls 列出当前目录文件(不包括隐含文件)
ls -a 列出当前目录文件(包括隐含文件)
ls -l 列出当前目录下文件的详细信息
cd .. 回当前目录的上一级目录
cd – 回上一次所在的目录
cd ~ 或 cd 回当前用户的宿主目录
mkdir 目录名 创建一个目录
rmdir 空目录名 删除一个空目录
rm 文件名 文件名 删除一个文件或多个文件
rm -rf 非空目录名 删除一个非空目录下的一切
mv 路经/文件 /经/文件 移动相对路经下的文件到绝对路经下
mv 文件名 新名称 在当前目录下改名
find 路经 -name “字符串” 查找路经所在范围内满足字符串匹配的文件和目录
fdisk fdisk -l 查看系统分区信息
fdisk fdisk /dev/sdb 为一块新的SCSI硬盘进行分区
chown chown root /home 把/home的属主改成root用户
chgrp chgrp root /home More >

PHP面向对象技术OOP(全面讲解)、概念开始

1.面向对象的概念
面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成,OOP达到了软件工程的三个目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。面向对象一直是软件开发领域内比较热门的话题,首先,面向对象符合人类看待事物的一般规律。其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。为编程人员敞开了一扇大门,使其编程的代码更简洁、更易于维护,并且具有更强的可重用性。有人说PHP不是一个真正的面向对象的语言,这是事实。PHP 是一个混合型语言,你可以使用OOP,也可以使用传统的过程化编程。然而,对于大型项目,你可能需要在PHP 中使用纯的OOP去声明类,而且在你的项目里只用对象和类。这个概念我先不多说了,因为有很多朋友远离面向对象编程的主要原因就是一接触面向对象概念的时候就理解不上去, 所以就不想去学下去了。等读者看完整体内容后再去把概念搞明白吧。
2.什么是类,什么是对象,类和对象这间的关系
类的概念:类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。
对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。
类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类。类描述了一组有相同特性(属性)和相同行为(方法)的对象。
上面大概就是它们的定义吧,也许你是刚接触面向对象的朋友,不要被概念的东西搞晕了,给你举个例子吧,如果你去中关村想买几台组装的PC机,到了那里你第一步要干什么,是不是装机的工程师和你坐在一起,按你提供的信息和你一起完成一个装机的配置单呀,这个配置单就可以想象成是类,它就是一张纸,但是它上面记录了你要买的PC机的信息,如果用这个配置单买10台机器,那么这10台机子,都是按这个配置单组成的,所以说这10台机子是一个类型的,也可以说是一类的。那么什么是对象呢,类的实例化结果就是对象,用这个配置单配置出来(实例化出来)的机子就是对象,是我们可以操作的实体,10台机子,10个对象。每台机子都是独立的,只能说明他们是同一类的,对其中一个机做任何动作都不会影响其它9台机器,但是我对类修改,也就是在这个配置单上加一个或少一个配件,那么装出来的9个机子都改变了,这是类和对象的关系(类的实例化结果就是对象)。
3.什么是面向对象编程呢?
就不说他的概念,如果你想建立一个电脑教室,首先要有一个房间, 房间里面要有N台电脑,有N张桌子, N把椅子, 白板,投影机等等,这些是什么,刚才咱们说了, 这就是对象,能看到的一个个的实体,可以说这个电脑教室的单位就是这一个个的实体对象,它们共同组成了这个电脑教室,那么我们是做程序,这和面向对象有什么关系呢?开发一个系统程序和建一个电脑教室类似,你把每个独立的功能模块抽象成类,形成对象,由多个对象组成这个系统,这些对象之间都能够接收信息、处理数据和向其它对象发送信息等等相互作用。就构成了面向对象的程序。

mysql 插件式存储引擎体系结构

14.1. 前言
在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运新的MySQL服务器中。
本章介绍了插件式存储引擎体系结构,概要介绍了与MySQL一起提供的各种存储引擎,介绍了将存储引擎赋给表的方法,以及插入和拔出存储引擎的方法。

14.2. 概述

使用MySQL插件式存储引擎体系结构,允许数据库专业人员为特定的应用需求选择专门的存储引擎,完全不需要管理任何特殊的应用编码要求。采用MySQL服务器体系结构,由于在存储级别上提供了一致和简单的应用模型和API,应用程序编程人员和DBA可不再考虑所有的底层实施细节。因此,尽管不同的存储引擎具有不同的能力,应用程序是与之分离的。
在下图中,以图形方式介绍了MySQL插件式存储引擎体系结构:

图14.1:MySQL插件式存储引擎的体系结构

插件式存储引擎体系结构提供了标准的管理和支持服务集合,它们对所有的基本存储引擎来说是共同的。存储引擎本身是数据库服务器的组件,负责对在物理服务器层面上维护的基本数据进行实际操作。
这是一种高效的模块化体系结构,它为那些希望专注于特定应用需求的人员提供了巨大的便利和益处,这类特殊应用需求包括数据仓储、事务处理、高可用性情形等,同时还能利用独立于任何存储引擎的一组接口和服务。
应用程序编程人员和DBA通过位于存储引擎之上的连接器API和服务层来处理MySQL数据库。如果应用程序的变化需要改变底层存储引擎,或需要增加1个或多个额外的存储引擎以支持新的需求,不需要进行大的编码或进程更改就能实现这类要求。MySQL服务器体系结构提供了一致和易于使用的API,这类API适用于多种存储引擎,通过该方式,该结构将应用程序与存储引擎的底层复杂性隔离开来。

14.3. 公共MySQL数据库服务器层

MySQL插件式存储引擎是MySQL数据库服务器中的组件,负责为数据库执行实际的数据I/O操作,并能允许和强制执行面向特殊应用需求的特定特性集合。使用特殊存储引擎的主要优点之一在于,仅需提供特殊应用所需的特性,因此,数据库中的系统开销较小,最终结果具有更有效和更高的数据库性能。这也是MySQL被始终视为具有高性能的原因之一,在行业标准基准方面,它能匹敌或击败专有的整体式数据库。
从技术角度上看,在存储引擎中,一些独特的支持底层结构的组件是什么呢?一些关键差别包括:
· 并发性:某些应用程序比其他应用程序具有很多的颗粒级锁定要求(如行级锁定)。选择正确的锁定策略能够减少开销,并有助于整体性能的提升。它还包括对多种能力的支持,如多版本并发性控制或“快照”读取等。
· 事务支持:并非所有的应用程序都需要事务,但对的确需要事务的应用程序来说,有着定义良好的需求,如ACID兼容等。
· 引用完整性:通过DDDL定义的 外键,服务器需要强制保持关联数据库的引用完整性。
· 物理存储:它包括各种各样的事项,从表和索引的总的页大小,到存储数据所需的格式,到物理磁盘。
· 索引支持:不同的应用程序倾向于采用不同的索引策略,每种存储引擎通常有自己的编制索引方法,但某些索引方法(如B-tree索引)对几乎所有的存储引擎来说是共同的。
· 内存高速缓冲:与其他应用程序相比,不同的应用程序对某些内存高速缓冲策略的响应更好,因此,尽管某些内存高速缓冲对所有存储引擎来说是共同的(如用于用户连接的高速缓冲,MySQL的高速查询高速缓冲等),其他高速缓冲策略仅当使用特殊的存储引擎时才唯一定义。
· 性能帮助:包括针对并行操作的多I/O线程,线程并发性,数据库检查点,成批插入处理等。
· 其他目标特性:可能包括对地理空间操作的支持,对特定数据处理操作的安全限制等。
每组插件式存储引擎基本组件均采用了相应的设计,能够为特定应用提供可选择的特性集合。从反面角度看,避免使用组件特性集合有助于避免不必要的开销。因此,显而易见,应理解特定应用程序的需求集合,并选择恰当的能大幅度改善系统整体效率和性能的MySQL存储引擎。

14.4. 选择存储引擎

与MySQL一起提供的各种存储引擎在设计时考虑了不同的使用情况。为了更有效地使用插件式存储体系结构,最好了解各种存储引擎的优点和缺点。
在下面的表格中,概要介绍了与MySQL一起提供的存储引擎:
图14.2:存储引擎比较

下述存储引擎是最常用的:
· MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。
· InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。
· BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。
· Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。
· Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。
· Archive:为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。
· Federated:能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。
· Cluster/NDB:MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。
· Other:其他存储引擎包括CSV(引用由逗号隔开的用作数据库表的文件),Blackhole(用于临时禁止对数据库的应用程序输入),以及Example引擎(可为快速创建定制的插件式存储引擎提供帮助)。
请记住,对于整个服务器或方案,你并不一定要使用相同的存储引擎,你可以为方案中的每个表使用不同的存储引擎,这点很重要。
关于MySQL中所包含存储引擎的详细信息,请参见14.4节,“选择存储引擎”。

14.5. 将存储引擎指定给表

可以在创建新表时指定存储引擎,或通过使用ALTER TABLE语句指定存储引擎。要想在创建表时指定存储引擎,可使用ENGINE参数:
CREATE TABLE engineTest(
id INT
) ENGINE = MyISAM;
要想更改已有表的存储引擎,可使用ALTER TABLE语句:
ALTER TABLE engineTest ENGINE = ARCHIVE;
14.6. 存储引擎和事务

下述存储引擎支持事务:· InnoDB:通过MVCC支持事务,允许COMMIT、ROLLBACK和保存点。
· NDB:通过MVCC支持事务,允许COMMIT和ROLLBACK。
· BDB:支持事务,允许COMMIT和ROLLBACK。
14.7. 插入存储引擎

能够使用存储引擎之前,必须使用INSTALL PLUGIN语句将存储引擎plugin(插件)装载到mysql。例如,要想加载example引擎,首先应加载ha_example.so模块:
INSTALL PLUGIN ha_example SONAME ‘ha_example.so’;
文件.so必须位于MySQL服务器库目录下(典型情况下是installdir/lib)。
14.8. 拔出存储引擎

要想拔出存储引擎,可使用UNINSTALL More >

禁止缓存 写法

PHP
header(“Expires: Mon, 26 Jul 1997 05:00:00 GMT”);
header(“Cache-Control: no-cache, must-revalidate”);
header(“Pragma: no-cache”);
JSP:
response.addHeader(“Cache-Control”, “no-cache”);
response.addHeader(“Expires”, “Thu, 01 Jan 1970 00:00:01 GMT”);

正则表达式字符含义介绍

字符 描述
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,’n’ 匹配字符 “n”。’\n’ 匹配一个换行符。序列 ‘\\’ 匹配 “\” 而 “\(” 则匹配 “(“。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如,”do(es)?” More >

mysql 视图介绍

在5.1版MySQL服务器中提供了视图功能(包括可更新视图)。
本章讨论了下述主题:
· 使用CREATE VIEW或ALTER VIEW创建或更改视图。
· 使用DROP VIEW销毁视图。
· 使用SHOW CREATE VIEW显示视图元数据。
关于使用视图方面的限制,请参见附录I:特性限制。
如果你已从不支持视图的较旧版本升级到MySQL 5.1,要想使用视图,应升级授权表,使之包含与视图有关的权限。请参见2.10.2节,“升级授权表”。

22.1. ALTER VIEW语法

ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    VIEW view_name [(column_list)]
    AS select_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]
该语句用于更改已有视图的定义。其语法与CREATE VIEW类似。请参见22.2节,“CREATE VIEW语法”。该语句需要具有针对视图的CREATE VIEW和DROP权限,也需要针对SELECT语句中引用的每一列的某些权限。

22.2. CREATE VIEW语法

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    VIEW view_name [(column_list)]
    AS select_statement
    More >