跳转到主要内容
你行网

Main navigation

  • 首页
  • Drupal
  • 编程与开发
  • 数据库
  • 操作系统与应用
  • 服务器与运维
  • 社区
User account menu
  • 登录

面包屑

  1. 首页

drupal

drupal 图书教程

由 hrs, 23 七月, 2019

通过Drush更新核心

标签
drupal

在你开始之前

建议使用Composer来管理Drupal依赖项; 阅读将Composer与Drupal一起使用以获取更多信息。Drush 9不再支持更新Drupal并将工作留给Composer。因此,建议使用Composer更新Drupal。但是,如果您是Drush的长期用户,您仍然可以使用Drush 8(8.14或更高版本)来更新Drupal 8。

PS! 这些说明的介绍总结了您可以选择的所有更新选项。

在更新过程中出现致命错误时,始终恢复为备份。

# 更新Drupal 8核心

使用Drush  8.x 更新Drupal 8核心的步骤。Drush是Drupal Shell。

  1. 备份您的文件和数据库。使用Drush,输入并执行此命令。

    drush archive-dump

    • 笔记

      • 在更新之前创建备份很重要。因此,如果在更新期间或之后出现意外情况,您将能够快速轻松地还原更新。

      • 上面的“drush archive-dump”命令创建了.tar.gz文件和数据库。这是一个传统的Drush命令。预计将在Drush中删除。此命令仅涵盖位于/ web目录下的文件。

  2. 检查可用的更新

    drush ups

    • 注意:上面的命令是简短的 drush pm-updatestatus
  3. 激活  维护模式

    drush sset system.maintenance_mode 1

  4. 清除缓存

    drush cr

    • 笔记
      • “cr”是“缓存重建”的缩写
      • 此命令清除Drupal数据库中的cache_ * bin,然后重建站点的容器
  5. 选择以下一个或多个选项以执行更新。您选择哪个选项取决于所需的更新类型。
    • 选项:更新Drupal 8核心

      drush up drupal

    • 选项:将 Drupal 8核心更新到开发分支,仅用于测试和补丁创建(不是生产)

      drush up drupal-8.5.x-dev

    • 选项:更新单个模块

      drush up module_name

    • 选项:仅更新安全更新

      drush up --security-only

  6. 如果适用,请对文件重新应用任何手动修改。例如.htaccess,composer.json或robots.txt。因为Drush不会自动执行此操作。
  7. 重新应用升级前使用的所有核心补丁(假设尚未合并这些补丁)。
    1. 通过良好的提交消息很容易找到它们。
      • % git log --oneline --reverse core
      • ee2bf8dd Issue #18: Updated Drupal core from 8.3.4 to 8.3.5.
      • 267e3ad0 Issue #27: Applied patch from https://www.drupal.org/project/drupal/issues/2174633#comment-12291691.
      • 718ecba5 Issue #9: Applied patch from https://www.drupal.org/project/drupal/issues/2906229#comment-12496488.
    2. 对于自上次核心更新以来每个先前应用的补丁,请按时间顺序使用git cherry-pick命令(如果失败则修复冲突)。
      • % git cherry-pick 267e3ad0
      • % git cherry-pick 718ecba5
      • ...
  8. 如果使用Composer来管理PHP库(例如,因为某些贡献的模块需要它),请使用以下命令更新/ vendor目录:
    • composer update drupal/core --with-dependencies
  9. 如果需要任何所需的数据库更新,请更新数据库

    drush updb

  10. 检查您的网站是否正常。为此:
    1. 使用Drupal,查看状态报告页面
    2. 使用浏览器访问重要页面来测试您的网站
  11. 停用维护模式 

    drush sset system.maintenance_mode 0

  12. 再次清除缓存

    drush cr

  13. 完成。您已使用Drush成功更新了Drupal 8 :)

评论

由 hrs, 23 七月, 2019

手动更新核心

标签
drupal

在你开始之前

如果尚未完成,建议您阅读本简介,其中总结了您在更新Drupal 8时可供选择的所有选项。

PS!“用户指南”中也介绍了此更新过程。

# 警告

如果您使用Composer安装了任何带有第三方依赖关系的贡献模块,则需要使用其他更新选项,因为这些说明将覆盖您的供应商/目录。

在更新过程中出现致命错误时,始终恢复为备份。

# 更新Drupal 8核心

使用手动安装和命令行(shell)更新Drupal 8核心的步骤:

  1. 备份文件和数据库。如果更新失败,拥有完整备份可以轻松恢复到以前的版本。

    (可选)如果您对.htaccess,composer.json或robots.txt等文件进行了手动修改,请将它们复制到易于查找的位置。因为在安装了新的Drupal核心之后,您需要重新应用这些更改。例如,Acquia Dev Desktop将.htaccess文件放在顶级目录中,如果没有它,只有您网站上的主页可以使用。

  2. 使用Drupal,以具有“管理软件更新”权限的任何用户身份登录。

  3. 使用Drupal,将您的站点置于维护模式。为此:

    1. 将管理界面导航到管理>配置>开发>维护模式。

    2. 选中“将站点置于维护模式”复选框。

    3. 单击“保存配置”。

  4. 选择以下两个选项之一来删除顶级目录中的文件以及“核心”和“供应商”目录,留下“模块”,“配置文件”,“网站”,“主题”目录:

    • 使用shell
      1. 导航到您的Drupal安装。

        cd /path/to/your/drupal/directory

      2. 删除“核心”和“供应商”目录。

        rm -rf core vendor

      3. 删除顶级目录中的所有文件。

        rm -f *.* .[a-z]*

    • 使用FTP客户端
      1. 导航到您的Drupal目录。
      2. 选择顶级目录中的所有文件(也是以点开头的隐藏文件)以及“核心”和“供应商”目录,然后删除它们。请务必不要删除“模块”,“个人资料”,“网站”和“主题”目录。
  5. (有时)更新包括对default.settings.php  文件的更改。这将在发行说明中注明。您可以在https://www.drupal.org/project/drupal找到适用于您的版本的发行说明。在“下载”部分下的项目页面底部,使用您的Drupal版本的链接查看发行说明。如果未列出您的版本,请使用“ 查看所有版本”  链接。在此页面中,您可以向下滚动或使用过滤器查找您的版本及其发行说明。如果更新包含对default.settings.php文件的更改,请按照下列步骤操作:

    1. 将自定义和特定于站点的条目从您创建的备份复制到新的settings.php文件中。您肯定需要提供数据库信息的行,您还需要复制已添加的任何其他自定义项。
    2. 制作新的default.settings.php文件的副本,并将副本命名为settings.php(覆盖以前的settings.php文件)。
    3. 使用不同的文件名制作settings.php文件的备份副本。
    4. 在/ sites / *目录中找到settings.php文件。(通常是网站/默认。)
  6. 选择以下两个选项之一,将新文件放入顶级目录以及“核心”和“供应商”目录:

    • 使用shell
      1. 在典型的Unix / Linux命令行上,使用以下命令下载和解压缩:

        wget https://ftp.drupal.org/files/projects/drupal-x.y.z.tar.gz tar zxf drupal-x.y.z.tar.gz

      2. 上面的命令创建了一个新目录drupal-xyz /,包含所有Drupal文件和目录。输入新目录,并将“core”和“vendor”目录以及顶级目录中的文件复制到Drupal安装目录中:

        cd drupal-x.y.z cp -R core vendor /path/to/your/drupal/directory cp *.* .[a-z]* /path/to/your/drupal/directory

    • 使用浏览器和FTP客户端
      1. 将最新的Drupal 8.xx版本从https://www.drupal.org/download下载到Web根目录之外的目录中。
      2. 提取存档。
      3. 使用FTP客户端将“核心”和“供应商”目录以及顶级目录中的文件上传到Drupal目录。
  7. (可选)对文件(例如.htaccess,composer.json或robots.txt)重新应用任何手动修改。

  8. 使用浏览器,访问http://www.example.com/update.php(用您的域名替换www.example.com)运行update.php 。这将更新核心数据库表。

    • (可选)如果您未以具有“管理软件更新”权限的用户或站点维护帐户(在安装期间创建)登录,则您将无法访问update.php。以下是绕过此限制的步骤:

      1. 使用文本编辑器打开settings.php。
      2. 找到这一行:

        $settings['update_free_access'] = FALSE;

      3. 将FALSE值更改为TRUE:

        $settings['update_free_access'] = TRUE;

      4. 再次访问/update.php页面。
      5. 完成上述所有步骤后,为了安全起见,将设置更改回FALSE 非常重要。
  9. 使用浏览器登录Drupal管理员并导航到管理>报告>状态报告。验证一切是否按预期工作。
  10. 仍在使用浏览器,登录Drupal管理员并导航到  管理>配置>开发>维护模式。取消选中“将网站置于维护模式”复选框,然后单击“保存”按钮。
  11. 更新后,删除您之前下载和解压缩的Drupal版本:

    rm drupal-x.y.z.tar.gz rm -rf drupal-x.y.z/

  12. 完成。您已使用手动安装和shell /浏览器成功更新了Drupal 8核心。:)

评论

由 hrs, 23 七月, 2019

更新Drupal 8 - 选项概述

标签
drupal

在你开始之前

更新  Drupal站点意味着从一个次要版本更新到另一个次要版本,例如从“8.4.4”到“8.4.5”。本文档指南是关于更新Drupal 8站点的。

升级  Drupal站点意味着更改主要版本,例如从 Drupal 6到8或从  Drupal 7到8 

更新Drupal 8 Core

下表列出了更新Drupal核心时的各种选项。如果不确定哪个选项最符合您当前的需求,请阅读“建议”栏目。

听众摘要建议

新人/
中级
手册

对于以下人士:

  • 还不熟悉Drupal 8的更新
  • 对使用命令行操作不感兴趣
  • 对学习Drush或Composer,或没有shell访问权限不感兴趣

高级Drush

对于具有高级技能的人:

  • 熟悉Drupal 8更新
  • 有兴趣专门使用Drush命令行操作
  • 对使用Composer不感兴趣
  • 有shell访问权限。

高级作曲家
(推荐)

对于具有高级技能的人:

  • 熟悉Drupal 8更新
  • 有兴趣使用Composer命令行操作 
  • 如果Composer中没有命令,您有兴趣使用Drush
  • 并且有shell访问权限。

更新Drupal 8模块

查找此文档

评论

由 hrs, 23 七月, 2019

更新Drupal 8

标签
drupal

在你开始之前

更新Drupal 8时,有多个选项可供选择。如果您还不熟悉所有这些选项,为了获得更轻松,更愉快的体验,建议您从本入门文档开始。其中总结了您可供选择的所有选项。

更新Drupal 8 - 选项概述

您可以选择更新Drupal 8的选项概述

手动更新核心

使用UI和命令行中的手动安装更新Drupal 8核心。

通过Drush更新核心

使用Drush,Drupal Shell更新Drupal 8核心。

通过Composer更新核心

使用Composer依赖项管理器更新Drupal 8核心。

更新模块

更新Drupal 8模块

评论

由 hrs, 22 七月, 2019

可信主机设置

标签
drupal

防止HTTP HOST标头攻击(防止您的网站认为是其他人)

Drupal 7在核心中添加了一个新功能,而不是直接面向用户,但有时也称为穷人的cron。该功能触发Drupal站点的周期性任务,如清空日志文件,发送电子邮件和清除缓存。此功能与动态检测“基本URL”(在Drupal 4.7中添加)结合使用时,可能会导致一些棘手的情况。本文描述了某些模块或两者都出现的一些棘手情况,以及您可以采取哪些措施来防止它们。下面的评论假设一些默认配置 - 我将在最后讨论如何摆脱这些默认配置以防止这些问题。

方案1:获取/发送看似用于其他域的用户电子邮件

这种行为很容易复制:

  1. 将新域指向现有站点的IP - 让我们调用现有站点http://www.example.com,并指向该IP的新名称为http://other-site.example.org
  2. 访问网址:http://other-site.example.org/user/password
  3. 提交可能在网站上使用的用户名。

结果是,在第2步中,$ base_url检测认为您的站点是http://other-site.example.org以及包含[user:one-time-login-url]等电子邮件的所有令牌您网站的链接将更改为使用http://other-site.example.org作为基本网址。收到此电子邮件的用户将看到他们的用户名和example.com的电子邮件现在在http://other-site.example.org上以某种方式使用,这通常只是令人困惑。但是,可能会出现两个不好的情况:

  • 在最糟糕的情况下,可能会导致他们点击密码重置链接,恶意网站可以使用该链接以该用户身份登录该网站。
  • 他们可能会将他们的用户名/密码输入http://other-site.example.org--一种所谓的社会工程攻击 - 然后可以在主站点上使用。

方案2:缓存包含错误域的条目

当用户使用错误的域来发出请求时,可能会发生类似的问题,而这恰好是使用动态的完全限定域填充缓存条目的请求。从该缓存中检索信息的后续访问将获得错误的域名。Drupal核心的页面缓存使用域作为缓存ID的一部分,防止出现此问题,但其他缓存机制可能不会对此问题具有强大的功能。

场景3:包含错误域的通知邮件

在使用在cron运行期间发送电子邮件的模块的站点上可能会出现另一个问题。这种情况需要穷人的cron与动态base_url检测。如果用户碰巧通过访问错误的域名在队列中发出通知时触发了穷人的cron,则会通过该错误的域发送通知。用户将非常困惑为什么他们希望从example.com的电子邮件地址收到的邮件包含指向http://other-site.example.org域的链接。

使用Drupal动态base_url检测混淆体验的解决方案

这个问题至少有四种可能的解决方案,但并非所有这些都是解决问题的必要条件。您应该根据您的环境挑选。

  1. 您可以在sites / default / settings.php中将特定域设置为$ base_url。虽然动态检测可以是一个方便的功能,但它也可能导致问题。阻止它的一种方法就是设置永久值。
  2. 使用特定的sites / example.com / settings.php并动态检测$ base_url - 这意味着让Drupal响应example.com的所有子域,这可能是一个好处,也可能不是。
  3. 配置您的Web服务器,以便在传入请求不是您的默认Drupal安装之外(例如错误页面)时提供默认页面。
  4. 将您的网络服务器配置为重定向到达您的服务器但不适合相应域的所有请求转发到正确的域名。

Drupal 8中的可信主机安全设置

截至2015年1月,Drupal 8支持“可信主机模式”,您可以(并且应该)指定传入请求中的域必须匹配的一组正则表达式。示例配置将读取:settings.php

$settings['trusted_host_patterns'] = [
  '^www\.example\.com$',
];

有关详细信息,请参阅上述更改记录。请注意,如果您正在进行本地开发,则可能会通过上述配置自行(暂时)锁定您的站点。您应该添加信任的主图案为'^localhost$'在这种情况下。

MAMP 3的可信主机设置

关于本地开发,MAMP(3.5.2)'^ localhost $'设置给出错误消息“提供的主机名对此服务器无效”,并且不加载站点。找到一个解决方案,用站点名称更改它,没有端口号。在我的测试网站“drupal8”中:

$settings['trusted_host_patterns'] = [
  '^drupal8$',
];

使可信主机处于活动状态。

注意:在MAMP 4.2'^ localhost $'工作得很好。

Acquia Dev Desktop 2的可信主机设置(使用Drupal 8.6.2和PHP 7.2.8测试)

如果您使用的是Acquia Dev Desktop 2,请尝试以下可信主机模式。将“sitename”更改为您网站的名称:

$settings['trusted_host_patterns'] = array(
    '^sitename\.dd$',
);

XAMPP的可信主机设置(使用Drupal 8.4.0和PHP 7.1.8测试)

要启用可信主机机制,我们需要在$ settings ['trusted_host_patterns']中启用允许的主机。

打开“settings.php”文件并更新以下代码以启用可信主机设置:

$settings['trusted_host_patterns'] = [
'^localhost$',                              
'^192\.168\.00\.52$',
'^127\.0\.0\.1$',
];

这里,

  • '^ localhost $',:这将允许该站点仅从localhost运行。
  • '^ 192 \ .168 \ .00 \ .52 $',:这将允许站点仅从系统IP运行(不同的系统具有不同的IP)。
  • '^ 127 \ .0 \ .0 \ .1 $',:这将允许该站点仅从127.0.0.1而不是localhost运行。

注意:如果有人运行多站点,那么在这种情况下只需指定站点允许的所有主机模式。

评论

由 hrs, 22 七月, 2019

Drupal 8快速启动命令

标签
drupal

快速启动命令是Drupal-8.6.x的新命令。它不适用于生产用途。但是,它将在您自己的计算机上使用PHP的内置Web服务器安装和运行Drupal。

重要:快速启动命令仅用于启动Drupal的本地演示版本。如果您需要安装Drupal 8以供生产使用,请参阅本指南其余部分中的说明

步骤1

MacOS High Sierra及以后

MacOS 10.13(High Sierra)以及后来的PHP 7开箱即用。不需要PHP配置! 

MacOS Sierra和更早

MacOS 10.12(Sierra)和更早版本的PHP 5.x. 它们需要更新到PHP 7  才能支持Drupal 8。 

Linux的

安装curl,PHP和所需的包。在基于Debian的Linux平台(包括Ubuntu)上,使用以下命令:

sudo apt-get install curl php7.0 php7.0-curl php7.0-dom php7.0-gd php7.0-mbstring php7.0-sqlite3

Todo:为Windows添加说明。

第2步

将下面的两行粘贴到命令行中以下载并解压缩Drupal包并启动它:

mkdir drupal && cd drupal && curl -sSL https://www.drupal.org/download-latest/tar.gz | tar -xz --strip-components=1
php core/scripts/drupal quick-start demo_umami

安装可能需要一两分钟。成功安装将导致在浏览器中打开新站点并在终端中输出相关信息。

18/18 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓]
Congratulations, you installed Drupal!
Username: admin
Password: PM_kRw1i1xtPGeoT
Drupal development server started: <http://127.0.0.1:8888>
This server is not meant for production use.
One time login url: <http://127.0.0.1:8888/user/reset/1/1536313723/49dSy9t55aC-zaOwP5DcQo8Sa_ZLnRkvXpd3K8ndHnU/login>
Press Ctrl-C to quit the Drupal development server.

可选:运行以下命令以获取可能需要配置快速启动的可用选项列表:

$ php core/scripts/drupal quick-start --help

评论

由 hrs, 22 七月, 2019

将Composer添加到现有站点

标签
drupal

此页面是一个分步指南,用于手动将Composer支持添加到以前未安装Composer的现有站点。如果您从tarball手动安装了Drupal 8站点,或者使用了像drupal / drupal这样的废弃Composer模板,那么这个方法适合您。

目前附带从https://www.drupal.org/download下载的tarball的composer.json文件   不适用于作曲家管理的站点。虽然这可能听起来有点令人困惑,但它允许Drupal使用Composer来管理其依赖关系,而无需管理员手动安装的站点来使用Composer。 

如果要从手动管理切换到使用Composer来安装和更新Drupal核心和贡献模块,则必须首先修改站点的composer.json文件。这将在未来发生变化,在Core Initiative的Composer支持中了解更多信息  。

可以指示错误的composer.json文件的典型Composer错误消息是:

Nothing to install or update (even though updates exist)

Installation request for drupal/drupal No version set (parsed as 1.0.0) -> satisfiable by drupal/drupal[No version set (parsed as 1.0.0)].

don't install drupal/core 8.x.x | remove drupal/drupal No version set (parsed as 1.0.0)

Your requirements could not be resolved to an installable set of packages.

有时可以通过在运行之前删除编写器锁定文件和供应商目录(和)来解决Composer模板的问题,但是将现有的Drupal 8站点转换为使用Drupal 8安装指南中建议的Composer模板管理的项目(3.5。使用更新Drupal时,下载和更新文件的编写器将成为更可持续的解决方案。composer.lockvendor/composer update

工具gocomposer和composerize drupal尝试自动化将旧站点转换为Composer项目的过程,但即使对于大量站点而言,手动转换也非常简单,并且不需要很多时间。

在流程结束时,您的项目将具有当前推荐的目录结构。Composer配置(,等)和供应商目录将放在您的Web根目录之外。您的原始Web根目录将包含一个名为的新文件夹,实际网站位于该文件夹中。如果您的项目当前使用不同的目录布局,则必须更新Web服务器配置以指向新目录。我们稍后会再次讨论这个问题。composer.jsoncomposer.lockdrushweb/web/

TL; DR?

  1. 使用新目录中的当前Composer模板安装新的Drupal站点。
  2. 将所有自定义主题,模块,文件和设置复制到新项目。(仔细检查目录结构。)
  3. 将设置传输到新项目。
  4. 将所有提供的模块添加到新文件并运行。composer.jsoncomposer install
  5. 更新数据库并清除缓存()drush updb;drush cr
  6. 更新Web服务器配置。

完整的故事

这些说明假定您的现有网站位于目录中,并且您将在其中创建新网站。调整实际目录的路径。/var/www/sites/html//var/www/sites/new_html/

1.安装新的Drupal站点

从drupal-composer / drupal-project模板创建一个新的Drupal项目:


 
cd /var/www/sites 
composer create-project drupal-composer/drupal-project:8.x-dev new_html --no-interaction 

这将在当前目录中创建目录new_html /,其中包含供应商和web(= web root)目录以及您的文件等。如果您的旧项目没有使用此目录结构,那么您可能希望习惯于能够直接从此目录运行drush和composer,而不仅仅是从web根目录中运行。composer.json

2.将文件复制到新的Composer项目

然后将旧项目目录中的自定义模块,主题和库复制到新项目。确保将文件放在新项目的正确目录中,因为旧文件夹结构可能不同。

正确的路径可以在您的“ installer-paths ”部分找到:composer.json

"extra": {
        "composer-exit-on-patch-failure": ...
        "patchLevel": {
            ...
        },
        "installer-paths": {
            "web/core": ["type:drupal-core"],
            "web/libraries/{$name}": ["type:drupal-library"],
            "web/modules/contrib/{$name}": ["type:drupal-module"],
            "web/profiles/contrib/{$name}": ["type:drupal-profile"],
            "web/themes/contrib/{$name}": ["type:drupal-theme"],
            "drush/Commands/{$name}": ["type:drupal-drush"]
        },
        "drupal-scaffold": {
            ...
        }
    }

在您的旧网站中,可能会找到模块。在新站点中,它们必须放在上面的installer-paths部分中提到的目录中:。/var/www/sites/html/modules//var/www/sites/new_html/web/modules/

  • 自定义主题转到/var/www/sites/new_html/web/themes/

  • 自定义模块转到/var/www/sites/new_html/web/modules/custom/

  • 图书馆去了/var/www/sites/new_html/web/libraries/

  • 您上传的文件和图片会转到/var/www/sites/new_html/web/sites/default/files/

仔细检查Web服务器是否具有文件目录的写权限,就像安装新的Drupal站点时一样。如果您想了解有关目录权限的更多信息,请通读。确保文件权限和所有权的安全。

假设您的Web服务器用户是www-data,并且您的ftp服务器用户是vftp。您应该从命令提示符运行类似这样的设置文件和目录权限:


 
#Set group of the files folder to the webserver user
sudo chown -R vftp:www-data /var/www/sites/new_html/web/sites/default/files 

#Allow the webserver user group to edit and access folders in the files directory
sudo find /var/www/sites/new_html/web/sites/default/files -type d -exec chmod u=rwx,g=rwx,o= '{}' \; 

#Allow the webserver user group to edit all files in the files directory.
sudo find /var/www/sites/new_html/web/sites/default/files -type f -exec chmod u=rw,g=rw,o= '{}' \;

您的文件目录包含用户上传到旧站点的所有文件,以及包含压缩样式表或缓存树枝模板等临时文件的一些文件夹。如果将这些文件夹与旧站点中的临时文件一起复制到新文件目录中,请确保手动删除它们。这些文件夹是新目录中的php /,js /和css /。/var/www/sites/new_html/web/sites/default/files

3.将设置传输到新项目

将数据库连接信息等从旧的settings.php复制到新项目。基本上这将是和数组,可能是你做的一些自定义设置。只需将两个文件区分开来即可查看需要复制的内容。还要确保指向现有目录。这可能应该在您的Web根目录之外,找到的位置。如果你以另一种方式安装Drupal,这也可能指向目录中的某个文件。$databases['default']['default']$settings['trusted_host_patterns']settings.php$config_directories['sync']composer.jsonsites/default/files/

另外,不要忘记拷贝你的发展设置文件和新项目。settings.local.phpdevelopment.services.yml

4.将提供的模块添加到新的Composer配置中

现在,您需要将所有项目的模块添加到新Web根目录中的新composer.json文件中。

在新项目根目录中编辑(例如),并将旧的“require”和“require-dev”部分的包列表复制到新文件中。composer.json/var/www/sites/new_htmlcomposer.jsoncomposer.json

如果您之前没有使用composer来管理该项目,则必须手动收集所有贡献(非自定义)模块的列表。你可以通过获取你或目录的目录列表来实现这一点(取决于你的设置)。在您将只是前面的每个模块的目录名称。例如,成为。确保你把开发包一样还是在“规定,开发”部分,在这里你应该已经发现。modules/contrib/modules/composer.jsondrupal/modules/contrib/devel/drupal/develdrupal/develdrupal/kintwebflo/drupal-core-require-dev

您可以为每个必需的模块运行,而不是手动将模块名称和版本添加到composer.json  。您可以一次性添加所有模块。使用   一个模块添加到的要求-dev的部分文件。composer require drupal/<module name>composer require drupal/module-name-1 drupal/module-name-2 drupal/module-name-icomposer require --dev drupal/<module name>composer.json

完成Composer安装

运行composer install在你的项目目录(例如,)。这将安装您之前添加的所有模块。如果遇到问题,只需删除和供应商目录,然后重试。/var/www/sites/new_html/composer.jsoncomposer.lock

5.更新数据库并清除缓存

确保通过运行应用所有可用的数据库更新drush updb。

然后通过drush cr从项目目录()运行清除Drupal缓存。/var/www/sites/new_html

6.更新Web服务器配置

更新您的Web服务器配置以指向新的Web根目录。在我们的例子中。如果您正在使用某些php-fpm设置,还要确保更新php-fpm设置(例如)以指向新的Web根目录。更新配置后,不要忘记重新加载或重新启动服务。/var/www/sites/new_html/web//etc/php/7.2/fpm/pool.d/yoursite.conf

评论

由 hrs, 22 七月, 2019

第6步:状态检查

标签
drupal

安装后,在管理>报告>状态报告()中检查站点的状态。如果此页面报告任何问题,请解决它们。/admin/reports/status

值得信赖的主机

除非您创建了文件(在目录中,除非您使用的是多站点安装),否则它是由安装脚本为您创建的。但是,生成的不包括“可信主机”配置。settings.phpsites/default/settings.php

有一个问题需要更改:允许使用安装程序配置可信主机。

有关此设置重要原因的说明,请参阅“ 可信主机”设置。

确保settings.php是可写的

安装脚本尝试使其成为只读。在具有shell访问权限的类UNIX系统上,您可以使用以下命令进行更改settings.php

chmod u+w sites/default/settings.php

如果您只有(S)FTP访问服务器,那么您应该能够使用它来更改权限,或在本地编辑文件然后上传它。

编辑settings.php

搜索“可信主机配置”部分并阅读其中的注释。添加列出主机名允许模式的行(文件中的其他位置或其他位置)。例如,如果您的网站位于,则可以添加settings.phpwww.example.com

$settings['trusted_host_patterns'] = [ '^www\.example\.com$', ];

此数组中的条目是正则表达式,因此.必须进行转义,^并且$字符标记匹配的字符串的开头和结尾。

如果要允许任何子域,可以使用正则表达式:或第二个匹配项以及子域。如果要同时允许和,可以使用正则表达式或列出两种模式:example.com\.example\.com$(^|\.)example\.com$example.comexample.comwww\.example\.com^(www\.)?example\.com$

$settings['trusted_host_patterns'] = [ '^www\.example\.com', '^example\.com$', ];

重置settings.php的权限

如果您在前面的步骤中写入了可写,则将其设置为只读:settings.php

chmod a-w sites/default/settings.php

设置文件目录

在大多数情况下,安装脚本会为您创建files目录。如果Drupal无法创建目录(很可能是由于缺少必需的权限),请按照以下说明操作。

在目录中创建一个名为的新子目录。将新目录的读取,写入和执行权限授予Web服务器(通常或)。大多数FTP程序将允许您创建新目录并设置其权限。sites/defaultfiles/apachenginx

排除基于Apache的Web服务器故障

如果目录files不是由Web服务器“拥有”,则有两种方法可以继续。这些说明假定您具有对服务器的shell访问权限以及您apache用作Web服务器的shell访问权限。如果您没有shell访问权限,那么您应该能够使用FTP程序更改目录权限。

在类Unix服务器上,您可以通过发出以下命令来验证Web服务器正在运行的“谁”。

对于Apache 2.x:

$ ps aux | grep apache

对于Apache 1.x:

$ ps aux | grep httpd

根据您的Web服务器,其中一个命令将返回一系列这样的行:

www-data 13612 0.1 0.9 50640 20340 ? S 12:29 0:08 /usr/sbin/apache2 -k start

第一列是您的Web服务器正在运行的“用户”。在这种情况下,用户是。要使您的文件目录可由Web服务器写入,您可以使用该命令更改其所有权www-data

$ chown -R www-data sites/default/files

如果您的服务器上没有足够的权限来更改文件夹的所有权,则下一个最佳选择是使用以下命令提供对该文件夹的组写访问:

$ chmod -R 0770 sites/default/files

评论

由 hrs, 22 七月, 2019

第5步:运行安装程序

标签
drupal

通过网络浏览器访问您的网站。您应该被重定向到安装程序页面。在Drupal 8用户指南的第3.7节中有一个详细的演练,其中有截图。/core/install.php

评论

由 hrs, 22 七月, 2019

第4步:配置您的安装

标签
drupal

让本地Web服务器使用完全集成的虚拟化AMP(Apache,MySQL,PHP)堆栈,模拟可能需要部署Drupal的开发,登台和生产服务器。 

AMP堆栈在本地机器上

开发人员工作流程首先在基于Windows,Mac或Linux的系统上安装和配置AMP(Apache,MySQL,PHP)堆栈。根据操作系统的不同,可以使用许多不同的方法在系统上建立理想的环境。但是,当涉及到选择时,只有三个:

  1. 本机AMP堆栈:此选项指的是通常预先配置了Apache,MySQL和PHP的系统,或者具有通常简单的安装路径来下载和配置这三个要求。关于如何实现此工作流程有很多很棒的教程,但这需要熟悉操作系统。
  2. 打包的AMP堆栈:此选项指的是第三方解决方案,例如
    1. MAMP(https://www.mamp.info/en/),
    2. WAMP(http://www.wampserver.com/en/),或
    3. Acquia Dev Desktop(https://dev.acquia.com/downloads)。 

    这些解决方案附带一个通常可在Windows和Mac上运行的安装程序,并且是一个独立的AMP堆栈,允许进行一般的Web服务器开发。在这三个中,只有Acquia Dev Desktop是Drupal特有的。

  3. 虚拟机(VM):此选项通常是最佳解决方案,因为它紧密代表实际的开发,登台和生产Web服务器。但是,这也可能是最初设置最复杂的,并且需要一些如何配置AMP堆栈特定部分的知识。有一些记录良好的虚拟机可以帮助减少所需的经验。

要查看的两个很棒的虚拟机是DrupalVM(https://www.drupalvm.com/)和Vagrant Drupal Development(VDD)(https://www.drupal.org/project/vdd)。

最后,我的建议是选择一个足够灵活的环境来快速安装,设置和配置Drupal实例。前面的选择都是好的开始。

如果您是一个单独的开发人员,那么打包的AMP堆栈,例如用于Mac机器的MAMP,用于Linux的LAMP,用于跨平台的XAMPP。通过使用此软件,您可以在本地系统上测试Web应用程序。但是,如果您处于团队环境中,我强烈建议您使用前面提到的VM选项之一,或者考虑创建可以分发给您团队的VM环境。

您可以从单个代码库运行多个站点。如果要执行此操作,请参阅Multisite Drupal。

评论

分页

  • 首页
  • 前一页
  • …
  • Page 10
  • Page 11
  • Page 12
  • Page 13
  • 当前页 14
  • Page 15
  • Page 16
  • Page 17
  • Page 18
  • …
  • 下一页
  • 末页
drupal
RSS源

友情链接 网站地图 版权信息 联系我们 网址导航 社区

Copyright © 2019 - 2021 你行网 版权所有  粤ICP备19072650号