Drupal7 安装使用笔记

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: 可以把图像和文件字段的内容插入到文本编辑器中去。

 

 

(43)

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

几点说明

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/

总体安装过程

继续阅读“Windows平台下Apache +PHP5.3 +FastCGI +XCache安装笔记 2011版”

(153)

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

测试环境: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

(106)

Eclipse+PDT:PHP内置函数不能正常进行代码提示!

Eclipse+PDT:PHP内置(Core)函数不能正常进行代码提示(Code Assite)!

解决方法:

编辑.project 文件 ,删除<buildSpec>节点,重新关闭打开项目,然后测试下。

.project 文件大概类似如下内容:

	name
		org.eclipse.wst.validation.validationbuilder
		org.eclipse.dltk.core.scriptbuilder
		org.eclipse.php.core.PHPNature
		org.eclipse.wst.jsdt.core.jsNature

(131)

MySql升级及PHP连接库相关问题

PHP 5.3开始使用MySqlND作为默认的MySql访问驱动,而且从这个版本开始将不再支持使用旧的用户接口链接Mysql了,你可能会看到类似的提示:

#2000 - mysqlnd cannot connect to MySQL 4.1+ using old authentication

解决问题的方法不是调整PHP,而是检查你的Mysql,你需要确保两件事:

  • 你使用的Mysql是4.1+以上版本,4.1以前的版本只支持使用老的16位密码存储
  • 你准备用于连接的数据库帐号使用的MySql的新密码格式(41位的数据)

解决问题2的方法是重新设置账户的密码,并确保使用的标准Password()函数设置账户密码,相关指令如下:

-- 选择系统库
USE `mysql`
-- 显示当前的用户和密码,注意新的的密码格式应该是41位的加密字符,老的是16位的
SELECT `user`,`password` from `user`;

-- 更新指定的用户的密码,注意使用函数 password()
-- 有时针对一些特殊需要,你可以使用old_password()函数来建立一个或几个向下兼容的数据库账户
UPDATE `user` SET `password`=password('newpassword') WHERE `user`='UserName';

-- 刷新MySql权限库
FLUSH PRIVILEGES;

-- 最后别忘记了,MySql的命令行连接方式是:
MySql -u username@host -p password

(53)

MySQL的表类型和存储引擎

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。

继续阅读“MySQL的表类型和存储引擎”

(21)

使用Xdebug调试PHP程序

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就很好用,具体不说了,摸索下就可以了

继续阅读“使用Xdebug调试PHP程序”

(77)

Windows系统下WEB服务器自动架设安装包的比较

这是我老早写的一个笔记了,刚才翻出来了,有些内容可能已经过时了,随便看看吧。所有测试均在Win2003Server下进行。

AMP环境架设

WAMP5 1.7.2

o 安装简单,安装过程英文,自动配置界面简单,功能简单
o 默认没有启用Short_tag,gd 等常用功能

XAMPP

o http://www.apachefriends.org/en/xampp-windows.html
o 注意:默认安装完成没有任何安全设置!!必须立即设定一些安全设置,包括:Mysql Root帐号等等!
o 集成软件较多
o 自动配置界面略优于WAMP
o 仅适合于本地测试,调试,如果使用在正式的服务器上,必须仔细进行安全设置!!

AMPServ

APMServ 5.2.0 是一款拥有图形界面的快速搭建Apache 2.2.3、PHP 5.2.0、MySQL 5.0.27&4.0.26、SQLite、ZendOptimizer、OpenSSL、phpMyAdmin、SQLiteManager,以及 ASP、CGI、Perl网站服务器平台的绿色软件。

集成软件:

* Apache 2.2.3          [HTTP服务器]
* NetBox 2.8 Build 4128 [HTTP服务器+ASP脚本解释引擎]
* PHP 5.2.0             [PHP脚本解释引擎]
* MiniPerl 5.8          [Perl脚本解释器]
* MySQL 5.0.27          [MySQL数据库服务器]
* MySQL 4.0.26          [MySQL数据库服务器]
* SQLite 3.3.8          [SQLite数据库服务器]
* phpMyAdmin 2.9.1.1    [MySQL数据库在线管理工具]
* SQLiteManager 1.2.0   [SQLite数据库在线管理工具]
* ZendOptimizer 3.2.0   [PHP脚本加速引擎]
* OpenSSL 0.9.8d        [HTTPS(SSL)安全传输协议]

特点:

* 直接解压安装
* 内置Apache虚拟主机管理
* Myslq5.0 和 Mysql4.0可以方便的并存
* 默认Mysql没有密码!!
* 自动配置界面较乱,功能不少,但仍然缺少很多必须的功能

APM_Setup (推荐)

APM_Setup 5 for Win32 ( http://www.apmsetup.com/ ,http://www.isk.com.cn )
国内软件,与PHP_SETUP_for_IIS是同一个公司出品的。
– Webalizer Version 2.0.1 – http://www.webalizer.org
– MySQL Version 4.0.26 – http://www.mysql.com
– PHP Version 4.4.3-dev – http://www.php.net
– Zend Optimizer Version 2.6.0 – http://www.zend.com
– phpMyAdmin Version 2.7.0-pl2 – http://www.phpmyadmin.net
– Apache HTTP Server Version 1.3.34 – http://httpd.apache.org
文件:APM_Setup5_2006_01_23_CN.exe
说明:

* 似乎是从摸个国外的版本修改过来的
* 自动配置界面较丰富
* 内置了一个服务器管理的WEB界面,但似乎存在一些BUG
* 集成软件版本较旧
* 默认数据库密码是:ampsetup,注意ampsetup配置界面中的Mysql密码填写处并不是用于修改Mysql密码的,而是需要在正常修改完Mysql密码后在此处填写新密码,以便于管理。

IIS环境架设

PHP_Setup_for_IIS_v20060119_CN.exe (mysql 4 + PHP5)

o PHP映射仅影响到默认网站,如果新建网站还需要重新配置映射
o 默认以CGI方式映射
o 默认WWW目录没有可写权限,需专门设置.

* PHP_Setup_for_IIS_v20060119_CN.exe (mysql 4 + PHP4)

o 注意:自动对wwwroot目录增加了一个拒绝权限,禁止IUSR删除文件,必须在高级权限设置中删除这一权限
o 不支持PATH_INFO

* PHP_Setup_for_ISS (Mysql5+PHP5)

注意:自动对wwwroot目录增加了一个拒绝权限,禁止IUSR删除文件,必须在高级权限设置中删除这一权限
o 不支持PATH_INFO

(22)

UML关系定义的解析及思维导向图

对UML的关系定义一直有点感觉混乱,这是一天的学习总结,主要成果是下面的这张图,这张图没有按照一般的 Has a / Use a / Is a的3类法进行分类,而是把 Has a 作为了 Use a的一个子集来分析。因为没有看到任何其他参考资料使用了这种方式,所以这种方法未必完全准确,仅供参考。


UML关系解析思维导向图
UML关系解析思维导向图


继续阅读“UML关系定义的解析及思维导向图”

(64)

Windows平台下Apache+PHP4+PHP5+FastCGI安装笔记

修正:2010.3

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官方推荐的网站。

原文

Go PHP5

很多开发组织已经开始参与到 Go PHP5 的活动中来了,PHP官方也早已经声明于2007年底停止对PHP4的所有技术支持,看来PHP5/6的广泛应用已经是不可抗拒的浪潮了,仅仅是时间问题,而且时间不会太长。

Apache+PHP+FastCGI

对于目前的过渡阶段,很多开发者还是需要一个可以实现PHP4和PHP5共存的开发环境,这两天尝试在Windows下使用APACHE环境配置了一个PHP4和PHP5共存的环境,请注意:此配置使用 CGI 运行方式,而没有使用常见的 Apache modules 方式。我曾经尝试使用 Apache modules方式配置双PHP,但没有成功。

关键特性:

  1. Windows+Apache+PHP(Apache2.0下测试)
  2. PHP4+PHP5共存
  3. FastCGI

以下是配置中用到的Apache Conf:

继续阅读“Windows平台下Apache+PHP4+PHP5+FastCGI安装笔记”

(81)

PHP框架基准测试比较

这篇文章是一个翻译,英文原文在 PHP framework comparison benchmarks,我的英文水平很一般,可能会有翻译不确切的地方(把握不大地方使用斜体进行了标志,并附带了英文原文),请指正,并参看原文。 Emeric.Lee 2008.10.18

为了讨论我在另一篇文章(重新审视PHP框架 CodeIgniter VS Zend)中作出的关于PHP框架性能的比较,我决定公开我所取得的详细结果。我一开始没有公开这个测试结果是因为测试不是在完全隔离的条件下进行的(独立的客户端和服务器),但是每个测试结果应该是准确的,这也是我测试的目的。

另外,我仅仅使用了‘请求数/秒’ 作为性能的衡量标准,我不认为在实际应用中还有其它的因素可以更好的衡量WEB应用程序的相应速度。

工具

测试计算机有1.8G的AMD Sempron CPU,521M 内存,运行Ubuntu Gutsy (7.10) Desktop 操作系统。

我使用 httperf 运行测试,另外也使用apachebench 进行了一些重复测试,测试结果是吻合的。

我使用CakePHP, CodeIgniter, Zend Framework 和Ruby on Rails.分别建立了一个相同的首页,而且我还是用静态HTML和过程化的PHP代码(又称为套管程序)复制实现了相同的功能,以此作为测试基准。

我决定在测试中包含数据访问,测试中应用程序从数据库中提取了4条记录并生成结果页面。

有兴趣的人可以下载测试文件,包括Mysql数据库的SQL文件。测试代码假设数据库有Root用户并且没有密码(如果你准备自己运行测试,也许需要修改相关部分代码)。

测试结果

继续阅读“PHP框架基准测试比较”

(135)

重新审视PHP框架 CodeIgniter VS Zend

这篇文章是一个翻译,英文原文在 PHP frameworks revisited – CodeIgniter vs Zend,我的英文水平很一般,可能会有翻译不确切的地方(把握不大地方使用斜体进行了标志,并附带了英文原文),请指正,并参看原文。 Emeric.Lee 2008.10.17

我们计划从头开始一个新项目,为此评估了一些PHP框架。我们的备选列表有CakePHP , CodeIgniter , Symfony和Zend 。 我们分别使用这4种框架编写了一个相同的小应用(一个简单的Wiki应用),希望我们能尽快选定一个最合适的。

声明:我会努力确保自己的客观性,虽然我是一个ColdeIginter的爱好者。我所工作的公司是Zend的合伙人(我们已经使用了Zend Platform 和 Zend Studio)。I can’t help factoring that in

继续阅读“重新审视PHP框架 CodeIgniter VS Zend”

(63)

开始一个新PHP项目 iZhaoPin-“爱招聘”

现在开始一个新的PHP项目,名称暂定为 iZhaoPin,中文名称 “爱招聘”,名字够土不,呵呵,这叫朴实,跟产品定位有关系。

产品定位:地区和(或)垂直人才招聘系统,要与全国性的系统有明显区别,

产品平台:PHP 5+ / Mysql

产品计划特性:

  • 1、根据国内的人文习惯开发一个具有便捷定制能力的人才招聘系统
  • 2、要适应地区招聘和特色招聘(如专项、专题招聘,校园招聘,行业招聘)的个性表现需求
  • 3、界面朴实,操作简便
  • 4、*充分考虑SEO,适当运用RSS、ping、Trackback等新技术
  • 5、*适当使用AJAX,但还是准备以静态页面为主
  • 6、开源方式发布(可能会加密部分核心代码)
  • 7、OOP导向开发,准备选择使用一款成熟的PHP的开发框架 (那位老大给推荐下哈)

暂时就想到这么多,边做边补充吧。

广告:这是一个应订单需求开发的项目,如果有人想搭顺风车,请尽快联系,可以提供经济的定制开发服务,过期不侯。

(3)