CentOS 7 上安装 Drupal 8

说明:本文也适用于 Drupal 7 安装 Drupal 8 之前,你需要在 CentOS 7 上安装 LEMP ,没有安装的话请参考《CentOS7 上安装 LEMP》。 第一步: 下载 Drupal 从官方站点直接下载 Drupal,当前版本 8.2.2。 wget http://ftp.drupal.org/files/projects/drupal-8.2.2.tar.gz 解压 tar zxvf drupal-8.2.2.tar.gz 把解压后文件移动到默认 web 目录 sudo mv drupal-8.2.2  /usr/share/nginx/html 第二步: 配置 切换到 Drupal 目录 cd /usr/share/nginx/html/drupal-8.2.2 基于 default.settings.php 创建 settings.php cp sites/default/default.settings.php sites/default/settings.php 为配置文件及 default 目录增加写权限 chmod a+w sites/default/settings.php chmod a+w […]

Continue Reading

CentOS 7 上安装 LEMP (四):性能优化

本节内容主要参考了:https://tweaked.io/guide/nginx/ Nginx 是一款小而快地 Web 服务器,但仍有优化的余地。 一般性优化 恰当设置 worker_processes 的值 Nginx 使用固定数量的 Worker,每个 Worker 都会参与请求的处理。一般的经验是把 Worker 的数量设置为与服务器的 CPU 内核数相同。 取得 CPU 内核数的方法如下: $ grep ^processor /proc/cpuinfo | wc -l 四核处理器的配置类似这样: # 每个处理器一个 Worker worker_processes 4; events { worker_connections 8096; multi_accept on; use epoll; } http { # Your content here .. } 调高 worker_connections worker_connections 是每个 […]

Continue Reading

CentOS 7 上安装 LEMP (三):安装 phpMyAdmin 及安全设置

原文:How To Install and Secure phpMyAdmin with Nginx on a CentOS 7 Server 我们仍然使用 yum 安装 phpMyAdmin。 $ sudo yum install phpmyadmin 为了使 Nginx 找到 phpMyAdmin,需要创建一个从安装目录到 Nginx 文档根目录的符号链接。 $ sudo ln -s /usr/share/phpMyAdmin /usr/share/nginx/html 重起 php-fpm $ sudo systemctl restart php-fpm 测试 phpMyAdmin 运行: http://域名或IP地址/phpMyAdmin [注意:] 如果运行 phpMyAdmin 显示空白页,请设置缓存目录写权限: chmod -R 777 /var/lib/php/session 安全设置 变更 […]

Continue Reading

CentOS 7 上安装 LEMP(二):安装 Nginx,MariaDB 和 PHP

原文:How To Install Linux, Nginx, MySQL, PHP (LEMP) stack On CentOS 7 安装 Nginx 增加 CentOS 7 EPEL 库 $ sudo yum install epel-release 安装 Nginx $ sudo yum install nginx 启动 Nginx $ sudo systemctl start nginx 如果运行了防火墙,运行以下命令允许 http 和 https 传输 $ sudo firewall-cmd –permanent –zone=public –add-service=http $ sudo firewall-cmd –permanent –zone=public –add-service=https […]

Continue Reading

CentOS 7 上安装 LEMP (一):初期设置

LEMP 软件栈是一组安装在服务器上的开源软件,使服务器能够运行动态站点和 Web 应用。 LEMP 是 Linux + Nginx + Mysql + PHP 的缩写。 L 指 Linux 操作系统; E 指 ENginx web 服务器(代替 LAMP 软件栈中的 Apache 组件); M 指 Mysql 数据库(现在更多地使用 Mysql 的替代版本 MariaDB,包括本教程); P 指 PHP。 本指南将讲解如何在 CentOS 7 VPS 上安装 LEMP,当然在继续之前你要准备好 CentOS 7 系统。 直接使用 root 用户安装或配置软件是不安全的,我们创建个新用户。 创建新用户 使用 root 登陆,创建用户 demo。 $ […]

Continue Reading

CentOS 7 上安装 LEMP

LEMP 软件栈是一组安装在服务器上的开源软件,使服务器能够运行动态站点和 Web 应用。 LEMP 是 Linux + Nginx + Mysql + PHP 的缩写。 L: 指 Linux 操作系统; E: 指 ENginx web 服务器(代替 LAMP 软件栈中的 Apache 组件); M: 指 Mysql 数据库(现在更多地使用 Mysql 的替代版本 MariaDB,包括本教程); P: 指 PHP。 本指南将讲解如何在 CentOS 7 VPS 上安装 LEMP 及如何做常见的性能优化。 前提 准备一个安装好的 CentOS 7 系统。 目录 初期设置 安装 Nginx,MariaDB 和 PHP […]

Continue Reading

决定何时升级到 Drupal 8(译)

原文: Deciding When to Upgrade to Drupal 8 至去年 11 月份 Drupal 8 发布以来,社区一直在尝试、优化 Drupal 6 和 Druapl 7 站点的升级过程。 因为大量模块维护者(通常是志愿者)的辛勤工作,被升级的模块一天天增多。模块的可用性是站点升级的关键因素,这真是个好消息。 本篇,我们将回顾一些工具,来简化这一过程。 每个站点的升级都是独一无二的,没有什么所谓的通用规则。无论你想做大的变革或是只保留原有的功能都会有很多不同,例如时间约束、升级预算、站点特征等等。 幸运地是,有一些工具可以帮助你计划何时以及如何升级。我们将向您展示 3 个。 准备好了吗? 何时准备将你的站点升级到 Drupal 8? 一个简单的回答会是:当站点使用的所有捐献模块有 Drupal 8 版本的时候。但实际不是那样简单。 例如,何时你认为一个模块会准备好? 每个模块功能不同,各有各的情况,所以这个问题没有一个完美的答案。作为经验法则,我们可以把模块发布第一个 8.x 推荐版本作为它充分稳定性,考虑使用它的一个点。无论它是 RC、alpha 还是 beta 版。 一个模块不需要稳定的包含在站点升级里:可能存在这种情况,模块的功能工作良好,但模块整体只是个 RC 版。像这种情况,你必须根据特定的使用情况深入调查这个模块状态。 这个模块有推荐版本,好迹象。 因为 Drupal 8 现在兼容 Smyfony,所以能够使用 Smyfony 组件扩展它。介于两者之间的选择是:使用“全面的自定义代码”或是“社区捐献的 Drupal 模块”。例如,开发团队使用 […]

Continue Reading

Drupal 8 模块开发 11.5 : PhpStorm 策略

原文地址: https://docs.acquia.com/articles/drupal-8-phpstorm-strategies   PhpStorm 提供了帮助使用依赖注入的工具。   扩展结构视图 Drupal 8 里,组件功能经常跨多个文件。一个类经常扩展另一个类,或实现一些接口。结构视图可以浏览类的方法和属性,但默认情况下,看不到从其他类继承的方法。有一个按钮可以激活这个功能。   使用 CMD + 7 (Mac) 或者 View > Tool Windows > Structure 打开这个视图。   灰色方法是继承来的,黑色是当前类中的方法。使用 CMD + 1 可以显示文件列表。   使用服务名找到一个服务类 你经常会看到服务名,但找到这个服务比较有挑战性。我们可以使用 PhpStorm 的文件搜索找到它。 例如,你有参数 arguments: [‘@current_user’],代码这样: $current_user = \Drupal::service(‘current_user’); 这种情况我们知道服务叫做 current_user,但不清楚它定义在那个 service.yml 文件内。 使用 CMD + Shift + F 打开文件搜索。 使用带冒号的服务名 service-name: ,只在 […]

Continue Reading

Drupal 8 模块开发 11.4 : 依赖注入和插件

原文地址: https://docs.acquia.com/articles/drupal-8-dependency-injection-and-plugins   插件 插件是添加依赖注入最复杂的组件。很多插件不需要依赖注入,有时找例子来拷贝都具有挑战性。多数插件继承了使用接口的类。例如 Blocks,继承了 BlockBase,BlockBase 实现了 BlockPluginInterface 。   依赖注入应该添加在个别插件级,而不是基类级别。这意味着我们能够向任何插件添加依赖注入,创建新插件时,也不总是需要使用依赖注入。   实现 ContainerFactoryPluginInterface 插件使用依赖注入的关键是实现 ContainerFactoryPluginInterface 。当插件被创建时,代码首先检查插件是否实现了这个接口。如果实现,使用 create() 和 __construct() 模式,如果未实现,则只使用 __construct() 模式。 下载文件 <?php /**  * @file  * Contains \Drupal\Core\Plugin\Factory\ContainerFactory.  */ namespace Drupal\Core\Plugin\Factory; use Drupal\Component\Plugin\Factory\DefaultFactory; /**  * Plugin factory which passes a container to a create method.  */ class ContainerFactory extends DefaultFactory { […]

Continue Reading

Drupal 8 模块开发 11.3 : 依赖注入和控制器

原文地址: https://docs.acquia.com/articles/drupal-8-dependency-injection-and-controllers   控制器 控制器使用依赖注入比较容易,因为他们提供返回服务容器的 create() 方法。我们已经创建了路由,现在创建下控制器文件: src/Controller/DIController.php 下载文件 <?php   /**  * @file  * Contains \Drupal\di_example\Controller\DIController.  */   namespace Drupal\di_example\Controller;   use Drupal\Core\Controller\ControllerBase; use Symfony\Component\DependencyInjection\ContainerInterface; use Drupal\di_example\DITalk;   class DIController extends ControllerBase {     /**    * @var \Drupal\di_example\DITalk    */   protected $dITalk;     /**    * @param \Drupal\di_example\DITalk $DITalk    […]

Continue Reading
1 2 3 7