存档

‘WEB应用开发’ 分类的存档

Drupal7 安装使用笔记

2011年10月18日

Drupal 是一个开放、集成、开源、插件化、先进的CMS平台。

Drupal is an open source content management platform powering millions of websites and applications. It’s built, used, and supported by an active and diverse community of people around the world.

安装:很简单了,下载、上传,直接访问URL,自动进入安装过程。

第一次使用:

  • 通过 内容>添加内容 来建立一些网页和文章,在添加内容的同时你还可以指定让“内容”自动建立一个菜单项目
  • 通过 结构>区块 定义网站各功能区块的位置,表现形式。
  • 通过 结构>内容类型 可以创建、修改内容类型,默认的有 Article 和 Basic Page,注意在内容类型定制中可以充分体会到Drupal的强大,可以为内容类型创建新的字段,并指定字段配置、显示方式,这些字段包括 文本、数字、日期,也包括图片、附件、媒体等
  • 通过 结构>分类 来建立维护网站的分类(Texonomy 术语) 列表,这些分类可以说Tags形式的平面分类,也可以支持树状的层次分类。分类列表可以通过 内容类型定制来指定某个字段使用某个分类列表。
  • 通过 外观>配置 来选择模板,定义模板的一些基本外观参数,比如颜色。
  • 至此Drupal已经完成一个简单网站的定制搭建了!你可能在寻找如何建立一个分类(分级)的目录列表,似乎因为文化的差异,Drupal对这个需求似乎不是很重视,你可以在 结构>分类 中发现,每个数术语条目都是可以点击并打开一个简单的文档列表页面的,打开地址类似于:”…./taxonomy/term/x"。你可以复制这些地址,并且用这些地址建立菜单条目,很遗憾,基本的(没有插件支持的)Drupal不能自动完成这项工作。

 

刚安装完的Drupal具备了一些基本功能,但是如果准备用来建立一个基本的网站的话,我们会发现还缺少一些东西,所以我们需要各种各样“模块”(类似于插件),很快你会发现Drupal有着数量众多的模块,包括编辑器、电子商务、长篇手册、项目管理、电子支付、图片库、媒体库、论坛等等,种类繁多,必有满足你需求的东西。

介绍一些必要模块吧,这个列表类似于装机必备:

  • Views:视图定制,可以对各种内容的呈现形式进行深度定制,主要用来实现(定制)各种各样的列表,包括页面列表、区块类别、分类列表等等。
  • Taxonomy Menu / Taxonomy Menu Trails :这一组合可以实现把树状分类结构自动挂接到某个菜单上,并且可以根据当前访问的内容页来正确高亮(HighLight)菜单条目,生成导航路径 (Breadcrumb)。注意:Taxonomy Menu Trails 的配置在内容类型定制页面里面。
  • Wysiwyg:强大的可视化编辑器集成,支持Ckeiditor,Fckeditor,TinyMCE等等至少8种主流编辑器
  • IMCE: 媒体浏览器,一般用来配合Wysiwyg来实现编辑器插入各种媒体,图片、Flash等等。它还需要一个 IMCE Wysiwyg API bridge ,才能实现和 Wysiwyg 的配合。
  • Localization update : 可以自动检测下载、升级Drupal 核心和各模块的翻译数据
  • Media: 类似于IMCE,和IMCE之间选择一个就行了,主要多支持了一个名为“ Media Selector ”的字段控件
  • PlUpload: 强大的第三方上传组件集成,支持拖拽上传,进度条等等,但是似乎目前和Drupal7的兼容还有问题。
  • insert: 可以把图像和文件字段的内容插入到文本编辑器中去。

 

 

IT前沿, WEB应用开发, 深入PHP

Windows平台下Apache+PHP5.3+FastCGI+XCache安装笔记 2011版

2011年3月25日

几点说明

1.PHP自5.3版起默认不在支持针对Windows的VC6编译版本,只提供VC9版本的,而APAche官方提供的Apache Windows编译包都是VC6的。所以我们需要使用第三方编译的VC9版本的Apache。

2.PHP 的 None Thread Safe 版本适用于CGI/FastCGI方式,而相应的Thread Safe版本适用于SAPI和Mod方式

3. http://www.apachelounge.com/download/ 这里提供了大量适用于Windows的LAMP有关预编译包,包括VC9版本的Apache和FastCGI,这个网站也是PHP官方推荐的网站。

版本选择及安装包获取

Apache 2.2 VC9   来源: http://www.apachelounge.com/download/
mod_fcgid-2.3.6-win32-x86  http://www.apachelounge.com/download/

PHP 5.3.6 nts vc9  来源:php.com
VC 2008 RunTime vcredist_x86 来源:php.com
XCache-1.3.0-php-5.3.0-nts-Win32-VC9-x86.zip 来源:http://xcache.lighttpd.net/pub/Releases/

安装过程

  1. 下载准备好有关安装包,解压apache,php到规划好的目录,比如:d:\server\
  2. 按照说明分别把 mod_fcgid.so 和php_xcache.dll 解压到相应的目录
  3. 安装 VC 2008 RunTime vcredist_x86
  4. 建立配置文件目录,比如 d:\server\confs
  5. 分别编辑/建立有关的配置文件,有关配置文件详见下面实例,(配置文件中涉及的路径及具体配置请根据实际情况修改)
  6. 使用 httpd -k install -n "service name" 方式手动安装服务

基本目录结构

d:\server
        \apache
        \php5
        \confs
              \apache
              \php5
        \logs
   \wwwroot

 

阅读全文…

WEB应用开发, 深入PHP

Windows下Apache 2.2+PHP 5.3安装及性能调优

2011年3月25日

测试环境:Windows 2003 Apache2.2(VC9) PHP 5.3(VC9 Non Thread Safe)
测试参数:ab -c 10 -t 10 http://adress

性能测试:静态HTML

测试结果:

Concurrency Level:      10
Time taken for tests:   10.000 seconds
Complete requests:      6554
Failed requests:        0
Write errors:           0
Total transferred:      2157253 bytes
HTML transferred:       288508 bytes
Requests per second:    655.40 [#/sec] (mean)
Time per request:       15.258 [ms] (mean)
Time per request:       1.526 [ms] (mean, across all concurrent requests)
Transfer rate:          210.67 [Kbytes/sec] received

性能测试:CIG方式

配置:

<directory>
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</directory>
 
ScriptAlias /php5/ "E:/Servers/Php5.3/"
Action application/x-httpd-fastphp5 "/php5/php-cgi.exe"
AddType application/x-httpd-fastphp5 .php

测试结果:

Concurrency Level:      10
Time taken for tests:   10.016 seconds
Complete requests:      167
Failed requests:        0
Write errors:           0
Total transferred:      9958014 bytes
HTML transferred:       9931338 bytes
Requests per second:    16.67 [#/sec] (mean)
Time per request:       599.738 [ms] (mean)
Time per request:       59.974 [ms] (mean, across all concurrent requests)
Transfer rate:          970.95 [Kbytes/sec] received

性能测试:fcgid方式

配置:

LoadModule fcgid_module modules/mod_fcgid.so

    AddHandler fcgid-script .fcgi .php
    #php.ini的存放目录
    FcgidInitialEnv PHPRC "e:/Servers/Apache-confs/"
    # 设置PHP_FCGI_MAX_REQUESTS大于或等于FcgidMaxRequestsPerProcess,防止php-cgi进程在处理完所有请求前退出
    FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 500
    #php-cgi每个进程的最大请求数
    FcgidMaxRequestsPerProcess 500
    #php-cgi最大的进程数
    FcgidMaxProcesses 5
    #最大执行时间
    FcgidIOTimeout 120
    FcgidIdleTimeout 120
    #php-cgi的路径
    FcgidWrapper "e:/Servers/Php5.3/php-cgi.exe" .php
    AddType application/x-httpd-php .php

	Options Indexes FollowSymLinks ExecCGI
	Order allow,deny
	Allow from all
	AllowOverride All

测试结果:

Concurrency Level:      10
Time taken for tests:   10.016 seconds
Complete requests:      375
Failed requests:        336
   (Connect: 0, Receive: 0, Length: 336, Exceptions: 0)
Write errors:           0
Total transferred:      20406982 bytes
HTML transferred:       20340934 bytes
Requests per second:    37.44 [#/sec] (mean)
Time per request:       267.083 [ms] (mean)
Time per request:       26.708 [ms] (mean, across all concurrent requests)
Transfer rate:          1989.76 [Kbytes/sec] received

结论

可以看到fcgid方式对比CGI方式,完成请求数位160:370,平均相应时间:599ms:267ms

有关PHP优化:http://www.vpser.net/opt/apc-eaccelerator-xcache.html

http://www.woniu.us/php_basic/123.html

目前使用的版本组合:
Apache 2.2 VC9
PHP 5.3.6 nts vc9
mod_fcgid-2.3.6-win32-x86
XCache-1.3.0-php-5.3.0-nts-Win32-VC9-x86.zip
VC 2008 RunTime vcredist_x86

IT前沿, WEB应用开发, 深入PHP

OSGEO4W 在 Win2003 Server X64 的安装

2010年5月7日

试图在 Win2003 Server X64 R2下安装OSGEO4W,但遇到很多问题,似乎OSGEO4W这这个版本的Windows有兼容性问题。主要表现在安装过程的组件选择部分

Express不能正常安装,会出现没有相应的现象

Advance 安装中组件依赖关系选择和版本选择都会出错,反复手动选择安装,运行出现一些错误:R6034 等等,特别是Mapserver的安装

 

解决方法:

在一台Windows XP下安装OSGeo4W的全部需要的组件,然后复制到Win2003下,注意两个系统下的目录位置要相同

在2003下Reintstall一下Apache

 

完成…

后续关于MapServer的配置

安装的MapServer Itasca Demo Application存在一些问题,需要修改配置

1. D:\OSGeo\apps\mapserv-demo 下的 IMAGEPATH ,"\"和“/"问题,否则有临时文件读写错误

2.所有涉及的template文件需要增加一行”<!– MapServer Template –>“放在文件第一行,否则有模板错误提示

3.D:\OSGeo\apache\conf下httpd.conf,<Directory "d:\OSGeo/tmp/ms_tmp/"> 红色部分补上,否则看不到图

IT前沿, WEB应用开发

Javascript中的this详解

2009年12月14日

*本文代码中使用的 function dump(v,title), 是一个自己写的输出变量描述的函数。

如果你准备在JavaScript中写类,那么你必需对关键字 this 的使用有深刻的理解:

这是JavaScript手册中对 this的简单解释:

this:指当前对象。

对于 JScript 的客户版本,如果在其他所有对象的上下文之外使用 this,则它指的是 window 对象。

阅读全文…

WEB应用开发

Javascirpt IE中的HTMLElement

2009年12月14日

在DOM标准中,每个HTML元素都是继承自HTMLElement。这是DOM的继承关系树:

200981518213488

阅读全文…

WEB应用开发

Javascript类的原型对象和继承

2009年12月13日

基本对象分析

JavaScript中所有的东西都是对象,包括函数、字符、数字等等等。但是JavaScript没有Class这个概念。

JavaScript使用Function来模拟类,任何一个function都有一个对应的prototype对象来存储和扩展这个function的定义,也就是说原型对象是关联于函数的

我们计划使用new关键字来调用并生成新对象的函数,我们称为“构造函数”

一个基本的函数分析

function Car(){
	color = 'red';
};

echo(Car);
echo(Car.constructor);
echo(Car.prototype);
echo(Car.prototype.constructor);

输出结果 阅读全文…

WEB应用开发

Javascript-类的基本定义方式

2009年12月12日

经典模式

直接生成对象实例,并操作实例

//定义
var aCar = new Object();
aCar.color = "red";
aCar.doors = 4;
aCar.showColor = function() {}
//调用
aCar.showColor();

阅读全文…

WEB应用开发

Javascript类-构造方法和原型方法的区别

2009年12月12日

对Javascript来说,方法在本质上也是一种属性。

构 造方法 和构造属性一样,它是分别存储于每个实例之中的,相互之间是完全独立。

原型方法 和原型属性一样,他是存储于原型中的,每个实例中存储的实际上一 个指向原型的指针。

所有对原型方法的修改会影响到所有实例,而构造方法实际上只能通过实例来访问和修改,也只会影响到相应的实例。

先写结论:方法通常应该使用原型模式定义,并且在必要时通过原型来动态重定义,避免使用构造模式定义方法。

阅读全文…

WEB应用开发

Javascript类- 几种属性的定义方式及区别

2009年12月12日

几种属性:

先看代码,这段代码中出现了类定义中可能使用到5种属性或者变量

function car(param1,param2){
    //构造变量
    var varProperty = 'This is a var Perperty';
    //构造属性
    this.constructProperty = 'This is a construct Property'
}

//原形属性
car.prototype.prototypeProperty = 'This is a prototype property';

//静态属性
car.staticProperty = 'This is a static property';

阅读全文…

WEB应用开发

Debian+ISPCP 环境下 eAccelerator效果测试

2009年10月30日

硬件:CPU 2.5 / 1G内存 / VMEsxi虚拟环境 :roll:

软件:Debian Lenny 5.0 + ISPCP 1.0.2 stable

工具:apache 里的AB

声名:这是在一个非标准环境下的测试,测试结果不具有普遍可比性,仅供参考

eAccelerator的对比测试结果

测试应用网站:3个

  • A 一个简单的模拟PHPINFO类页面,提取系统信息,显示,单文件程序
  • B 一个自己开发的CMS系统
  • C Wordpress BLOG,加载了一些常见插件

测试方式:使用 ab -t 60 -c 5 参数测试,每阶段2次测试取评价值,分2个阶段

  • P1 没有安装eAcceleratr
  • P2  安装了eAccelerator
AB 测试结果表 (请求处理/秒)
       P1 P2  
Req/S CPU%  Req/S  CPU%
A INFO   73 40   75  20
B CMS   8.72  100  16.77  95
C WordPress  1.22  100  1.76 100 

分析:

阅读全文…

WEB应用开发

从Etach到Lenny,Debian+ISPCP升级笔记

2009年10月30日

本来有一台Linux服务器,运行Debian 4.0 Etach 和 ISPCP 1.0.0 RC6

近期看到ISPCP正式版已经发布好久了,就决定升级.升级路线是首先 升级Debian 到 Lenny (5.0),然后再升级ISPCP

A 升级Linux

升级的方法很简单

1) (可选的) 检查你的更新源列表(sources.list)

apt-spy -d stable -t 5 update #是用Stable或者Lenny现阶段效果应该是一样的

有些指南让你加上国家和地区参数,时间没有必要,事实上我们访问最快的源往往都在国外。

你也可以手动去更新 /etc/apt/sources.list

2) 更新系统

aptitude update && aptitude upgrade

这一步可能需要反复运行几次,如果有软件版本冲突提示,你需要运行 aptitude 手动选择冲突解决方案

一直运行到aptitude update && aptitude upgrade提示没有需要更新软件包了,系统升级完成

3)可能遇到的问题

我遇到问题是:Mysql升级到5.2以后不能自动启动了,检查 /etc/log/daemon.log发现一个提示

/etc/init.d/mysql[2130]: ERROR: Using expire_logs_days without log_bin crashes the server. See README.Debian.gz

log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10

修改 /etc/mysql/my.cnf 解决问题

#log_bin = /var/log/mysql/mysql-bin.log #这一行本来是被注释掉的

expire_logs_days = 10

完成上述步骤后服务器及ISPCP应该仍然可以正常工作,检查处理完可能存在的问题后,准备升级ISPCP

B) 更新 ISPCP到 1.0.2

安装ISCP官方说明逐步操作

http://www.isp-control.net/documentation/doku.php?id=start:upgrade:rc

几点说明:

阅读全文…

IT前沿, WEB应用开发 , , , ,

WordPress乱码问题完美解决方案

2009年10月16日

迁移了我的WordPress到一台新的服务器,并升级到最新版本,遇到的乱码问题,搜索了一下,解决方法有几种,修改 wp-inludes/wp-db.php,转换数据库编码等等,但都不完美,先提供完美解决方案如下:

1.指定新目标数据库的编码为 utf8_unicode_ci ,需要你的Mysql版本为4.1+,通过 数据库->操作 来操作

2.导入数据备份文件

3.修改wp-config.php 文件,增加一行: define(‘DB_CHARSET’,'utf8′);

OK,完成!

顺便提一下,低版本数据库导入高版本数据库时,先根据源数据编码指定好新的目标数据库默认编码(通过 数据库->操作 来操作),可以解决大部分数据升级到乱码问题。

WEB应用开发

MySQL的表类型和存储引擎

2009年7月6日

MySQL的表类型由存储引擎(Storage Engines)决定,类型包括MyISAM、innoDB、BDB等。

常用的存储引擎

MySQL 数据表主要支持六种类型 ,分别是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB。

这六种又分为两类,一类是”事务安全型”(transaction-safe),包括BDB和InnoDB;其余都属于第二类,称为”非事务安全型”(non-transaction-safe)。

BDB 全称是”Brekeley DB”,它是Mysql最早的具有事务能力的表的类型,由Sleepycat Software (http://www.sleepycat.com)开发。它提供了事务控制能力功能,它确保一组命令全部执行成功,或者当任何一个命令出现错误时所有命令的结果都被回退,可以想像在电子银行中事务控制能力是非常重要的。支持COMMIT、ROLLBACK和其他事务特性。最新版本的Mysql已经计划移除对BDB的支持,转而全力发展InnoDB。

阅读全文…

WEB应用开发, 深入PHP

使用Xdebug调试PHP程序

2009年7月1日

XDebug是个好东西啊,用来调试PHP程序的,可以和Eclipse配合。

配置步骤:(Windows+Apache+php环境)

1.下载和PHP版本环境相适应的XDebug版本,放置于PHP目录,主要None-ThreadSafe版似乎是用来在CLI方式下使用的,一般不需要

2.修改php.ini文件,参考如下

[Xdebug]
;zend_extension_ts	= "D:\server\php5\ext\php_xdebug-2.0.5-5.3-vc6.dll"
;发现在PHP5.3+Apache(CGI)方式下,似乎必须使用 zend_extension 加载才能成功
zend_extension		= "D:\server\php5\ext\php_xdebug-2.0.5-5.3-vc6-nts.dll"
 
xdebug.auto_trace		= off		;开启自动跟踪
 
xdebug.remote_autostart		= off		;开启远程调试自动启动
xdebug.remote_enable		= 1
xdebug.remote_host		= 10.5.184.251
xdebug.remote_port		= 9000
;xdebug.remote_handler		= “dbgp”
 
xdebug.show_exception_trace	= On		;开启异常跟踪
 
xdebug.collect_vars		= On		;收集变量
xdebug.collect_return		= On		;收集返回值
xdebug.collect_params		= On		;收集参数

注意:remote_host应该填写远程调试机的地址,而不是PHP服务器的地址,在Xdebug运行方式下,调试工具实际是调试过程的服务端,Xdebug会主动连接指定的remoete_host,从而建立调试通讯。所以要注意调试机的防火墙问题


3.配置调试工具,Eclipse就很好用,具体不说了,摸索下就可以了

阅读全文…

WEB应用开发, 深入PHP , ,