CentOS 7 LAMP安装教程

CentOS 7

CentOS的新版本已经在本月初正式发布了,今天为大家介绍一下在新版本中安装LAMP的方法。

安装Mariadb:

yum -y install mariadb-server mariadb

在CentOS7中MySQL已被MariaDB替换,而在以后新的Debian系版本中也会将MariaDB加入到官方软件仓库中。因此还没有将Drupal网站数据库从MySQL迁移到MariaDB的朋友,请尽快行动吧。

将MariaDB设置为随系统启动:

systemctl start mariadb.service
systemctl enable mariadb.service

执行MariaDB/MySQL安全脚本:

mysql_secure_installation

安装Apache:

yum -y install httpd

将Apache设置为随系统启动:

从Drupal8开发环境同步配置到生产环境

同步

配置管理在Drupal8之前的版本中一直是开发者的噩梦,即使有Features和Strongarm的帮助,从开发环境同步配置到生产环境仍然是一件麻烦的事情。而Drupal8 CMI不但可以帮助我们轻易的完成这项工作,还拥有优秀的用户体验。这大大减少了我们对Features和Strongarm的依赖。

注意:只能在网站的克隆实例之间同步配置。

首先在开发环境的Drupal网站中设置一些东西,例如:添加一个新的内容类型,设置JPEG图像的质量,将某个区块放在左边栏上,等等诸如此类。

然后进入开发环境Drupal网站的Full Import/Export界面(http://你的Drupal网站域名/admin/config/development/configuration/full/import),点击Export导出网站配置。

Drupal8路由系统访问检查功能范例

检查

本文的路由文件使用了《Drupal8模块开发入门教程》中的mymodule.routing.yml。

基于权限的访问检查

mymodule.page:
  path: '/mypage'
  defaults:
    _content: '\Drupal\mymodule\Controller\MyController::myPage'
    _title: 'My page'
  requirements:
    _permission: 'administer site configuration'

当访问者拥有Administer site configuration权限时,才能访问mypage页面。

用户体验优秀的Drupal帮助功能Tour

Drupal8的Tour功能

使用hook_help()可以实现在线用户帮助功能,但是太死板也太单调了。在Drupal8内核中包含了一个名为Tour的模块,它基于jQuery库Joyride,提供了用户体验优秀的帮助功能。常用于为用户介绍Drupal的UI界面。

让我们先来体验一下吧。打开Drupal网站首页View的编辑页面(http://你的Drupal网站域名/admin/structure/views/view/frontpage),这时右上角出现了一个名为Tour的按钮,点击它......怎么样?感觉不错吧?

那么应该怎样实现自定义的Tour功能呢?其实很简单的,下面让我们为Menu编辑界面添加Tour功能吧。

创建Tour只需要一个YAML格式的配置文件即可,文件的命名规则是tour.tour.{tour-id}.yml,该文件应该放置在模块的config/install文件夹下。

Drupal8模块开发入门教程(4):创建页面

页面

昨天我们已经创建了mymodule模块的路由文件。今天让我们实现路由所对应的回调,它通过路由文件中的_content指定,还记得它的值吗:\Drupal\mymodule\Controller\MyController::myPage。

首先让我们在mymoudle模块的根目录下依次创建下列文件夹src/Controller。然后在最后一个文件夹Controller中创建MyController.php文件,并输入下列内容:

Drupal8模块开发入门教程(3):创建路由文件

Drupal8路由

路由(Route)是在URL路径、相关页面和访问回调之间建立的映射。Drupal8为路由系统引入了新的机制,实现了Symfony2的路由组件和Symfony2 CMF路由组件扩展。正因如此,在Drupal8中定义路由的方法发生了变化。在Drupal7中,路由是在hook_menu()中定义的,除此之外还能让路由与菜单项、标签页、动作按钮和上下文链接产生关联。而在Drupal8中已经将这些东西全都从hook_menu()中分离开了:

Drupal8模块开发入门教程(2):Info文件详解

Drupal8 Info文件

Info文件在语法上的改变

相对于Drupal7,Drupal8的Info文件在语法上有下列改变:

  • 键与值之间的分隔符由=(等号)变为:(冒号)。
  • 注释符从;(分号)变为#(井号,即:pound)。
  • 数组(如:dependencies[] = node)使用了下列格式:
dependencies:
  - node

有关YAML格式的更多信息,请查阅维基百科中的YAML词条

新的必须键type

现在多了一个新的必须键type,用于识别扩展的类型,取值包括:module、theme、profile。例如:

Drupal8模块开发入门教程(1):一个最简单的模块

创建Drupal8模块

本教程共分为四个部分,带领新手一步一步的实现一个简单的Hello world类型的模块。涉及了Drupal8模块开发中很多基础知识,如:Info、路由、控制器等。

Drupal8的贡献模块和自定义模块所在位置是modules目录。可以创建modules/contrib和modules/custom目录分别放置贡献模块和自定义模块,以使模块目录的结构更加清晰。Drupal8的内核模块位于core/modules。

首先,我们在Drupal安装根目录下的modules/custom/mymodule/文件夹中创建mymodule.info.yml文件,注意该Info文件是YAML格式,内容如下:

Drupal8与PHP的命名空间

PHP命名空间

PHP社区中的开发者们创建了大量的代码,这意味着在某个库中使用的类(还有函数和常量)名可能与其他库中的类名相同。当这些库被用在同一个项目中的时候,不可避免的会引起冲突。

命名空间解决了这一问题。正如PHP手册中描述的那样,命名空间可以和操作系统中的目录类比——不同目录下的同名文件是不会起冲突的,而不同命名空间中的同名类也不会起冲突。

Pages