EZ Publish/EZ Publish手动安装
EZ Publish | EZ Publish安装与卸载 | EZ Publish的使用 | EZ Publish常见问题 | EZ Publish其他 |
手动安装
这种安装方法只适用于高级用户,因为它的技术要求极强,初次接触者建议还是使用“EZ Publish正常安装”来进行安装。 手动安装需要一个已经安装了WEB 服务器,数据库等必须软件的系统。需要下载并解压eZ Publish。与安装向导不同,所有的配置均通过系统的命令行完成。
系统需求[ ]
eZ Publish 需要五个软件系统:
web 服务器
- 服务器端PHP 脚本引擎
- eZ Components 库
- 数据库
- 图像处理系统(可选)
前四个系统在安装eZ Publish 之前就必须已经存在。图像处理系统是可选的并且只有在需要eZ Publish 动态处理图像时才需要。web 服务器与PHP 引擎必须运行在同一台服务器。数据库可以运行于不同的服 务器。目前,可以使用以下软件解决方案:
web 服务器
目前,只支持Apache 服务器。在Linux/UNIX 系统,推荐使用最新的2.x 版本,但是Apache 必须运行 于"prefock"模式,而不是"threaded"模式。因为某些PHP 库或扩展不是线程安全的。
在windows 平台,建议使用最新的1.3 版本。(Apache2.x 在Windows 平台只支持"threaded"模式) Apache 是一款自由,开源的软件,它是最广泛使用的web 服务器。可以从阿帕奇官网 下载。
- 服务器端的PHP 脚本引擎
eZ Publish 主要使用PHP 脚本语言,PHP(hypertext preprocessor)服务器端引擎是必须的。确保已安装 PHP5.1.6 以上版本。建议使用最新的5.x 版本,因为eZ Publish 在更新的PHP 版本上运行得更快, 而且某些扩展(如:eZ Flow)需要PHP5.2 以上的版本。确保您的PHP 版本符合所有软件模块的需求。 PHP 是自由软件。可以从PHP官网 下载。
下表列出了需要编译的PHP 模块。
模块名称 | 简介 |
MySQLi(建议使用)或MySQL | 需要,如果使用MySQL 数据库 |
PostgreSQL | 需要,如果您使用PostgreSQL 数据库 |
Zlib | 需要 |
DOM | 需要 |
Session | 需要 |
PCRE | 需要 |
GD2 | 需要,如果ImageMagick 没有安装 |
CLI | 建议 |
CURL | 建议 |
mbstring | 建议 |
Exif | 建议 |
确保PHP 支持zlib,否则安装向导无法解压下载的软件包。
大多数情况下,PHP 支持DOM,因为PHP 内核已经包含了对DOM的支持。但是,某些Linux 发行版本的PHP 没有预编译对DOM的支持,需要安装一个称为"php-xml"的RPM包。这个RPM包会安装一个 共享模块来支持DOM。
- PHP CLI
建议安装PHP CLI,否则您将无法使用某些系统特性如:通知,延迟的检索索引,升级脚本,协作系统,从命令行清除缓存,等等。
建议支持CURL,否则将无法使用某些系统特性如:通过代理服务器连接,eZSoap 的SSL 支持。
- PHP 内存限制
eZ Publish 的安装向导至少需要64MB 的内存。如果使用的是PHP5.2.0 或更早的版本,需要在"php.ini"中增加"memory_limit"的值。(修改之后,需要重启Apache 服务器)
然而,建议保留64MB 或更高的内存限制,因为eZ Publish 在运信某些任务(如:重建索引,执行升级脚本等)时会消耗很多内存。另外,多语言的站点也需要至少64MB 内存。
如果使用的是PHP5.2.1 或更新的版本,不需要修改"memory_limit"(系统默认值为128MB)。
- PHP 时区
需要在"php.ini"中设置"date.timezone"。如果不指定时区,在用PHP5 运行eZ Publish 时,很有可能收到“依赖系统时区并不安全”之类的错误。PHP 时区配置示例:
date.timezone = Asia/Shanghai
参考http://www.php.net/timezones 了解所有支持的时区代码。修改后,需要重启Apache 服务器。
- eZ Components 库
eZ Publish 是一个面向对象的应用程序。每一个类的定义保存在一个独立的PHP 源文件中。eZ Publish 4用__autoload()来装载所需要的类。eZ Publish 安装之后,所有eZ Publish 内核类文件的路径都被包含在"autoload/ezp_kernel.php"中。除此以外,"autoload/ezp_extension.php"将用来保留扩展中类定义文件的路径。这些路径很可能需要被修改(例如:如果安装了一个新的扩展或通过后台“设置-扩展”来配置现有的扩展)。需要安装 eZ Components 2007.1.1 或更高版本来支持对autoload path 的更新。特别需要注意的是,至少需要安装File 和Base 组件("ezcBase"与"ezcFile"),否则eZ Publish 无法更新autoload path。
eZ Components 是一套基于PHP 的企业级通用组件库,它可以单独或与其他库共同用于PHP 应用程序的开发。可以从http://ezcomponents.org/download 下载。将来,eZ Components 将与eZ Publish 绑定。参阅http://ezcomponents.org/docs/install 了解如何安装eZ Components。
数据库
- eZ Publish 用数据库保存多种数据结构与数据。这意味着您的数据库必须一直可用。eZ Publish 默认支持
以下数据库:
- MySQL4.1 以上版本,5.x(推荐)
- PostgreSQL7.3 以上版本
- 如果数据库与安装向导运行于同一台服务器,安装向导会自动检测数据库类型。eZ Publish 4 需要使用UTF-8 数据库。
- eZ Publish 4 不支持基于PostgreSQL 的集群。集群代码针对使用InnoDB 存储引擎的MySQL 数据库性能做过专门的优化。
- 如果不需要在集群环境运行eZ Publish,虽然InnoDB 不是必须的,但是仍推荐使用。
- InnoDB 支持事务,因此可以在MySQL 数据库中使用事务安全型表(eZ Publish 默认支持数据库事务。这一特性能保证数据库的完整性不会被错误或异常中断的处理破坏)。
- 如果希望使用PostgreSQL,确保"pgcrypto"模块已经安装。在Linux/UNIX 平台中,可能需要安装一个单独的软件包-"postgresql-contrib","pgcrypto"模块提供了用于PostgreSQL 的加密函数,包括"digest",后者是eZ Publish 需要的。在为eZ Publish 配置PostgreSQL 数据库的时候,需要在数据库中注册这些函数。
eZ Publish Oracle® 扩展1.8 版本(http://ez.no/doc/extensions/database)将在eZ Publish 4.0.1 以上版本中支持Oracle 数据库。注意:之前的版本不能用于eZ Publish 4。
为了缩放,变换或修改图片,eZ Publish 需要调用图像处理系统。可以选择使用以下系统中的一种(均为自由软件):
- GD2 (由PHP 提供)
- ImageMagick (http://www.imagemagick.org)
Linux/UNIX 安装[ ]
确保系统满足手动安装的系统需求。确保系统运行于Linux/UNIX,并且已经安装Apache,PHP,MySQL 或PostgreSQL。如前所述,数据库可与WEB 服务器运行于不同服务器。手动安装需要以下几个步骤:
- 配置数据库(MySQL 或PostgreSQL)
- 下载eZ Publish
- 解缩eZ Publish
- 手动配置eZ Publish
手动安装与正常安装的不同只在于最后一步。手动安装通过手动配置若干文件来配置eZ Publish,而不启动安装向导。不同之处在手动配置一节中描述。
Windows 安装[ ]
确保系统满足手动安装的系统需求。确保系统运行于Windows,并且已经安装Apache,PHP,MySQL 或PostgreSQL。如前所述,数据库可与WEB 服务器运行于不同服务器。
手动安装需要以下几个步骤:
- 配置数据库(MySQL 或PostgreSQL)
- 下载eZ Publish
- 解缩eZ Publish
- 手动配置eZ Publish
手动安装与正常安装的不同只在于最后一步。手动安装通过手动配置若干文件来配置eZ Publish,而不启动安装向导。不同之处在手动配置一节中描述。
手动配置[ ]
以下步骤适用于Linux/UNIX 与Windows。
1、初始化数据库
2、可以通过导入两个重要的SQL 脚本("kernel_schema"和"cleandata")来初始化eZ Publish 数据库。
注意:运行这两个脚本之前,需要创建一个空数据库
3、第一个脚本创建必要的数据库结构,第二个脚本导入预定义的数据。
4、使用哪一个"kernel_schema"脚本取决于使用的数据库。"cleandata"脚本适用于 MySQL与PostgreSQL 数据库。
MySQL
用以下命令行执行MySQL 的"kernel_schema"脚本:
$ mysql -u USERNAME -pPASSWORD DATABASE < PATH/kernel/sql/mysql/kernel_schema.sql
这个脚本将使用InnoDB 存储引擎创建数据表。确保数据库的默认存储引擎也被设置为InnoDB,否则将来的系统升级将会造成混合的表类型。
使用以下脚本运行通用的"cleandata“脚本:
$ mysql -u USERNAME -pPASSWORD DATABASE < PATH/kernel/sql/common/cleandata.sql
USERNAME | MySQL 用户名 |
PASSWORD | MySQL 密码 |
DATABASE | 数据库名 |
PATH | eZ Publish 的安装的绝对路径 例:/opt/ezp |
文件权限
Windows 用户可以跳过这一步。如果eZ Publish 安装于Linux/UNIX 系统,某些文件的权限需要重新设置。
可以使用eZ Publish 自带的脚本来设置文件权限。这个脚本必须被执行,否则eZ Publish 无法正常运行。
这个脚本需要在eZ Publish 的安装目录中运行。
$ cd /opt/ezp $ bin/modfix.sh
把"/opt/ezp"替换为您eZ Publish 安装目录的绝对路径。
"modifx"脚本递归地修改eZ Publish 安装目录中以下目录的权限:
var/* settings/* design/*
如果知道WEB 服务器的用户与用户组,建议使用以下的权限: <pew>
- chown -R user.usergroup var/
- chmod -R 770 var/
"user.usergroup"必须被替换为WEB 服务器的用户与用户组。
配置eZ Publish
eZ Publish 目录中的"settings/override/site.ini.append.php"必须被修改,否则eZ Publish 不能正常运行。这个文件是site.ini 文件的一个全局的重设文件。这个文件中有很多选项需要配置(数据库,邮件发送系统,var 目录等等)。以下是一个通用的site.ini.append.php 示例:
<?php /* #?ini charset="iso-8859-1"? [DatabaseSettings] DatabaseImplementation=ezmysql Server=localhost User=root Password=Database=my_database [FileSettings] VarDir=var/example [Session] SessionNameHandler=custom [SiteSettings] DefaultAccess=example SiteList[] SiteList[]=example [SiteAccessSettings] CheckValidity=false AvailableSiteAccessList[] AvailableSiteAccessList[]=example AvailableSiteAccessList[]=example_admin RelatedSiteAccessList[] RelatedSiteAccessList[]=example RelatedSiteAccessList[]=example_admin MatchOrder=host;uri # Host matching HostMatchMapItems[]=www.example.com;example HostMatchMapItems[]=admin.example.com;example_admin [InformationCollectionSettings] EmailReceiver=webmaster@example.com [MailSettings] Transport=sendmail AdminEmail=webmaster@example.com EmailSender=test@example.com [RegionalSettings] Locale=eng-GBContentObject Locale=eng-GBText Translation=disabled */ ?>
在上例中,"[SiteAccessSettings]"章节中的"AvailableSiteAccessList[]"数组定义了两个可用的站点入口:"example" 和"example_admin"。"CheckValidity"应设置为false,否则访问这个站点时安装向导会被触发。
除此以外,还需创建两个站点入口的配置文件。一个公共站点入口("example"),一个管理站点入口("examle_admin")。在eZ Publish 根目录下创建以下站点入口目录:
• settings/siteaccess/example
• settings/siteaccess/example_admin
两个站点入口都需要一个独立的"site.ini.append.php"文件。
公共站点入口
<?php /* #?ini charset="iso-8859-1"? [SiteSettings] SiteName=Example SiteURL=www.example.com LoginPage=embedded [SiteAccessSettings] RequireUserLogin=false ShowHiddenNodes=false [DesignSettings] SiteDesign=example [ContentSettings] ViewCaching=disabled [TemplateSettings] TemplateCache=disabled TemplateCompile=disabled #ShowXHTMLCode=enabled #Debug=enabled [DebugSettings] DebugOutput=enabled Debug=inline #DebugRedirection=enabled [RegionalSettings] SiteLanguageList[] SiteLanguageList[]=eng-GB ShowUntranslatedObjects=disabled */ ?>
管理站点入口
<?php /* #?ini charset="iso-8859-1"? [SiteSettings] SiteName=Example SiteURL=admin.example.com LoginPage=custom [SiteAccessSettings] RequireUserLogin=true ShowHiddenNodes=true [DesignSettings] SiteDesign=admin [ContentSettings] CachedViewPreferences[full]=admin_navigation_content=0;admin_navigation_details=0;admin_navi gation_languages=0;admin_navigation_locations= 0;admin_navigation_relations=0;admin_navigation_roles=0;admin_navigation_policies=0;admin_na vigation_content=0;admin_navigation_translatio ns=0;admin_children_viewmode=list;admin_list_limit=1;admin_edit_show_locations=0;admin_url_l ist_limit=10;admin_url_view_limit=10;admin_sec tion_list_limit=1;admin_orderlist_sortfield=user_name;admin_orderlist_sortorder=desc;admin_s earch_stats_limit=1;admin_treemenu=1;admin_boo kmarkmenu=1;admin_left_menu_width=13 [DebugSettings] DebugOutput=disabled Debug=inline [RegionalSettings] SiteLanguageList[] SiteLanguageList[]=eng-GB ShowUntranslatedObjects=enabled */ ?>
注意: 在"settings/override/site.ini.append.php"中定义的数据库配置,邮件配置,区域配置与其它配置适用于所 有的站点入口。在本例中,"Database=my_database"在这个文件中的"[DatabaseSettings]“定义,因 此"example"与"example_admin"均会使用这个数据库。参阅“基本概念”中的“站点管理”与“配置” 两个章节了解更多内容。
Unicode 支持
不需要重设"i18n.ini"文件,因为eZ Publish 4 默认启用对unicode 的支持。
语言
可用语言与优先级可以通过修改每个站点入口中的"site.ini.append.php"中的"[RegionalSettings]"章节中 的"SiteLanguageList"配置来定义。如果不指定,系统会使用旧的"ContentObjectLocale“配置,因此只有默 认语言会被显示。参阅“配置站点语言”章节了解更多内容。
"cleandata.sql"脚本只创建一种英式英文(eng-GB)一种语言。 其它语言需要通过管理界面的“设置- 语言”来添加(在本例中:http://admin.example.com)。
动态树状菜单
如果站点有很多节点,建议为管理站点入口启用"Dynamic"选项。这会使管理界面左侧的树状 菜单速度更快并减少对网络带宽的消耗。
系统管理员的登录名与密码
"cleandata.sql"会创建以下的管理员登录名与密码。
登录名: admin
密码:publish
建议立即修改管理员的密码。
注意: 如果需要另外的管理员帐号,可以创建新的管理员帐号;用新帐号登录管理界面; 删除旧管理员帐号。