我正在我的 MacBook 上使用 XAMPP 开展我的第一个 Drupal 项目。这是一个原型,并且得到了客户的积极反馈。
两周后我将在 Linux VPS 上部署该项目。除了从头开始重新做一遍,有更好的方法吗?
- 安装 Drupal
- 下载模块(CCK、Views、Date、Calendar)
- 创建内容
- ...
谢谢
我正在我的 MacBook 上使用 XAMPP 开展我的第一个 Drupal 项目。这是一个原型,并且得到了客户的积极反馈。
两周后我将在 Linux VPS 上部署该项目。除了从头开始重新做一遍,有更好的方法吗?
谢谢
一些技巧:
使用源代码控制而非FTP等方式处理文件。不论您使用什么,我们倾向于为每个客户启动一个Unfuddle.com子版本控制帐户,以便他们有一个记录错误的地方,但至关重要的第一步是将网站的完整源代码树置于版本控制中。当在测试服务器或预发布服务器上进行更改时,您可以查看它们是否起作用,然后提交,然后在运行服务器上进行更新。回滚和部署变得简单多了。对于多个Web头的集群,您可以重复该过程,或从单个'规范'服务器rsync。
如果您使用SVN,则还可以使用Drupal和其他模块/主题的CVS检出,而SVN/CVS元数据将能够愉快地共存。
对于文件夹之类的庞大文件夹,如文件目录,请在“适当”的位置使用符号链接指向Webroot外部的服务器端目录。这使得您的源代码控制存储库包括所有代码和符号链接,而不是所有代码和所有用户上传的文件。
数据库更棘手;清理开发/预发布数据库并将其推送到生产环境最容易进行初次推出,但在增量数据库更新时进行操作时,如果生产环境的用户也正在生成内容,则存在一些问题。
去年我做了一个关于Drupal部署最佳实践的演示。随时欢迎查看幻灯片。
Features.module是管理Drupal配置更改的强大工具。
内容类型、CCK设置、视图、Drupal变量、上下文、Imagecache预设、菜单、分类法和权限都可以被整合进一个特性中,并且可以被提交到版本控制。从那里,使用Features UI或Drush轻松地管理部署新网站或推送更改到现有网站。
确保安装Strongarm.module以导出存储在变量表中的drupal配置。还可以通过安装uuid_features.module将静态内容/节点(例如:关于我们,常见问题等)放入Features中。
毫不夸张地说,这是与其他开发人员在同一网站上工作的最佳方式,也是将您的网站从开发移动到测试、暂存和生产的最佳方式。
我很惊讶没有人提到部署模块。以下是其项目页面的摘录:
……旨在允许用户轻松地将内容从一个Drupal网站传输到另一个。Deploy自动管理实体之间的依赖关系(如节点引用)。它被设计为具有丰富的API,可以轻松扩展以在各种内容分期情况中使用。
我不熟悉Drupal,但我经常使用Joomla。我通过将网站根目录中的所有文件打包(在我的情况下是tar和gzip,但您也可以使用zip),然后上传并解压缩该归档文件来部署。然后我会进行SQL转储(mysqldump -u用户-h主机-p数据库名称> dump.sql),上传该文件,并使用反向命令插入数据(mysql -u produser -h prodDBserver -p prodDatabase < dump.sql)。如果您没有Shell访问权限,则可以逐个上传文件并编写PHP脚本以导入dump.sql。
如果您是部署(或Drupal)的新手,则务必一次性完成所有操作。在您正在处理另一个副本时,当用户影响内容时,您必须非常小心。
可以保留与实际内容、分类法、用户等相关的表,而不是它们的结构。然后推送与配置相关的表。但是,这将增加一个数量级的复杂性。
如果部署对您来说是老生常谈的问题,则此处可能有些冒犯,请见谅。