Jul 14
    我已经不是第一次介绍Heatbeat,通过yum可轻松安装Heartbeat 2.x,网上的资料(包括我以前的多篇日志)都已很详细的介绍了Heartbeat 2.x 的部署方式。而自2月Heartbeat 3.0.2,作为首个3.x Final Release 版本发布后,官方网站已改版,并建议从2.x更新到3.0.2,导致很多老的配置文档、说明等都很难找到链接。此外,触发我考虑使用Heartbeat 3,也正是前几天用Heartbeat 2.1.3+DRBD+Oracle配置时遇到大量的Bug,可见这里。虽然最终解决问题,但缺少官方的支持,今后的维护可能会遇到困难。为长远考虑,使用Heartbeat 3是势在必行的。
    幸亏,Heartbeat 3对比Heartbeat 2.x实际区别并不大,甚至可把Heartbeat 3理解为Heartbeat 2.x 按模块拆分后的版本,配置方式类同。所以,实际部署时,遇到的最大困难是安装问题。官方资料提供的都是源码,我不喜欢以源码方式来在生成系统上部署软件,这会给后续的维护带来很大的问题。通过努力,我终于成功编译一套heartbeat 3.0.3,带GUI管理方式的rpm。
Tags: ,
Jul 13
在 64位版本的 CentOS 5.4 上使用 yum 安装软件包的时候如果不小心的话会同时安装 i386 和 x86_64 版本的软件,如下面安装的 httpd-devel 就有 i386 和 x86_64 两个版本:
Tags:
Jul 9
    我已经写过不止一篇关于Heartbeat 2.x 配置方法的文档,包括1.x style和2.x style的配置方式、GUI 配置、双机互备集群等等,详细可见分类中“HA”部分。那为什么今天我还要再次重复类似的内容呢?原因有几个,例如:Heartbeat 2.1.3 中的Bug、DRBD resource agent 的Bug,Heartbeat 2.x 与 DRBD 的配合等。这些内容在我下面的文档中都会提到。
    另外,特别需要说明的是,目前Heartbeat 最新版本是3.x,已停止对2.x 的支持(包括官网都已改版)。这也是导致我在使用Heartbeat 2.x 时遇到问题,可供参考资料较少的原因之一。当然,Heartbeat 2.x 与 3.x 的区别实际并不是特别大,很多东西还是可以相互借鉴、参考的。
Tags: , , ,
Jul 7
    在高可用解决方案(HA)中,为了实现集群中数据的共享,常见两种架构:1、利用SAN等架构的盘柜存放共享数据;2、在每台集群中的机器本地磁盘中划分一个空间出来,并利用网络等方式,往集群中其他机器同步,以保证每台机器上的数据是一致的。当然,为了令第二种架构也能用于数据库等应用,同步应以数据块方式,而非文件拷贝的方式进行,而DRBD就是可用于实现第二种架构的软件。本文就模拟一个简单的架构来说明DRBD的配置方法。
Tags: ,
Jul 6
    Eclipse 是常见的开源IDE工具,通过增加插件,可用于PHP开发。下文参考CakePHP的bakery中一文:Setting up Eclipse to work with Cake,搭建一个Windows 7下面用于调试CakePHP的环境。特标注一些需留意的地方。
Tags: ,
Jun 12
    在测试某Web应用时,其中有段函数,用于动态的插入合适大小的图片到当前页面中。原理是:先利用JavaScript的Image对象读入图片,然后判断图片大小,当图片尺寸过大(超过阀值)时,给页面插入的HTML代码中,加入width和height的属性值。测试时发现,该功能有时候会失效,这时,width和height都会等于0。经分析,问题在于创建Image对象,并读入图片的过程会有延迟,不能立即得到图片的属性。而JavaScript是异步处理机制的,在图片未读完前,即继续往下执行。所以,导致获得的图片大小均为0。
    既然知道原因,那么处理方法很简单,就是在读取图片后,做个延时的处理,详细可参考:这里
    没想到,在调整我的代码时,发现对setTimeout()方法的使用还有不少误解的地方,特整理如下。
Jun 11
    在编写JavaScript时,遇到一个常见的问题“如何判断某值是否数组中的元素”?这让我想起了PHP中的in_array()函数和Python中in 操作符。但JavaScript似乎没有内置类似的函数,而其in 操作符的作用也有点不同。通过查询相关的资料,我发现JavaScript的in 操作符还是挺有用的。
Jun 7
    某Web应用,为了方便浏览,使用表格进行汇总时,初始化状态仅显示概要,若点击该行才用显示下面的详细内容。用jQuery 来实现本来是很简单的事情,在IE 7 测试时很顺利。但Win 7下发现,IE 8中动作失效了。经查找原因,原来是jQuery 1.3.2的Bug。该问题早在网上有不少介绍:这里,转载如下:
Tags: , , ,
Jun 5
    前一篇日志提到的PHP Notice警告导致Ajax请求失效的情况。深究其原因,还是在13行的switch语句上。因此,我做了一些关于PHP变量使用大括号的测试,也发现了一下使用中需注意的地方。
Jun 4
    今天,把程序部署到红旗Linux平台上,遇到一个问题:原来在Windows XAMPP环境中好好的一个用Ajax提交请求的页面,在Linux下失效了。经查看后台日志,发现如下的Notice信息:
引用
PHP Notice:  Use of undefined constant action - assumed 'action' in /var/www/html/phpcrm/inc/xml_projects.php on line 13
PHP Notice:  Use of undefined constant child - assumed 'child' in /var/www/html/phpcrm/inc/xml_projects.php on line 13

问题也正是出在这里。
Tags: , ,
Jun 3
    Smarty 中可用的变量一般有三种:1、来自PHP页面,通过assign()方法传递的变量;2、保留变量,即相当于PHP中预定义的变量;3、从配置文件中读取的变量。引用方法很简单,我就不详细说明了,具体可见:这里。不过,我遇到一个问题,就是在模板中引用保留变量时,其值为空(null )。开始感觉比较奇怪,后发现是其引用于PHP的php.ini中register_long_arrays设置、Smarty对象的request_use_auto_globals 属性有关。
Tags: ,
May 25
    无论是PHP,还是其他的服务端脚本都提供了文件上传功能,实现起来也比较简单。而利用JavaScript来配合,即可实现Ajax方式的文件上传。虽然jQuery本身没有提供这样的简化函数,但有不少插件可以实现。其中,Phpletter.com提供的ajaxfileupload.js是一个轻量的插件,而且编写方式与jQuery提供的全局方法$.post()非常相似,简单易用。
    不过,该插件实在太简化了,除了可提供需上传文件的路径外,也就不能传递额外的值到后台服务端。所以,我修改了一下该脚本,增加个一个data对象参数。
Tags: , ,
分页: 14/50 第一页 上页 9 10 11 12 13 14 15 16 17 18 下页 最后页 [ 显示模式: 摘要 | 列表 ]