@author 周煦辰 2016-03-21

这段时间新上了一个项目,使用的是Yii2框架。这里记录一下Yii2框架、Yii2-Mongo拓展、Yii2-Redis拓展等的安装流程。因为使用的系统是Windows,这里只说Windows下的安装方法,不过Linux下大同小异,甚至可以说比Windows更加简单。

安装Composer

Composer是一个用于PHP包管理的工具。有了Composer,PHP开发的包管理就变得异常简单。对于PHP“悠久”的历史来说,包管理工具显得姗姗来迟。12年3月推出alpha版本,直到今年(2016年)3月才推出第一个beta版本,不过不管怎么说,PHP终于还是有包管理了,这是好事。但是可能因为某些原因,Composer在国内的使用并不是非常方便。这里说一下Composer在Windows的安装方式,以及所需要的配置。

准备工作

  1. 你要保证你的系统已经安装了PHP,且cmd中已经有了php命令。具体的配置方式可以看我之前的博文《个人PHP开发环境的选择与搭建》。
  2. 你可能需要安装git以及配置,安装包的时候部分代码可能需要从git仓库中拉取。其实过程和PHP的环境配置一毛一样。

下载及安装

官方有一个用命令安装Composer的方式,具体文档在这里:Composer-Download。但是我一直卡在签名验证这一步,一怒之下使用“傻瓜安装”,即直接下载Composer-Setup.exe,安装完事。打开cmd,输入composer,如果出现Composer的帮助页面,即表示Composer安装成功。

必要的配置

为了规避上述的“某些原因”,我们需要对Composer做一些配置,以达到在国内流畅使用Composer的目的。Composer的境外镜像在https://packagist.org/,但是常常访问不了,为了解决这个问题,可以访问国内的全量镜像。 具体的配置方法其实网站上也有,其实很简单,直接打开cmd,输入以下命令即可。

composer config -g repo.packagist composer https://packagist.phpcomposer.com

需要注意的是,这种配置方式是全局式的,一劳永逸。如果需要具体的项目配置不同的镜像,可以到项目根目录(就是有composer.json文件的那个文件夹),右键->use composer here,然后输入以下命令即可。当然了现在你还没有使用Composer下载任何项目到你的电脑,这种方法暂时可以忽略。

composer config repo.packagist composer https://packagist.phpcomposer.com

安装Yii2框架

安装Yii2框架的方法在Yii官网及Yii中文网上都有说明,因为有了Composer,也就是一行命令的事。这里推荐看官方的英文文档,因为英文的文档一直有在更新,中文文档不仅翻译进度堪忧,而且相比于官方文档已经落后很多。

建议在安装Yii2之前先运行composer self-update命令,使Composer版本保持最新。之前安装Yii2的时候遇到过因为Composer版本过低而导致自动载入函数出现错误的问题,现在大概已经解决了。

然后运行如下两个命令

composer global require "fxp/composer-asset-plugin:~1.1.1"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic

说明一下,第一个命令是安装Composer asset plugin,用于管理bower和npm包,反正你迟早要用的,全局安装就是。

第二个命令是在当前目录安装Yii2框架basic版本,相应的Yii2框架也存在Advanced版本,你可以根据你项目的大小选择框架的版本,不过对于初学Yii框架的人来说Basic版本足矣。命令最后一个参数basic只是表示放置框架文件的文件夹名称,你可以随便设置。

安装Yii2的过程中,可能会向你索取一个github的Personal access tokens,到你的github主页(什么你没有github账号? 怎么可以没有,赶紧注册一个)Personal settings里设置一个就是了,记得保存,一旦你把页面关闭,你就再也看不到它了。

安装结束之后你需要在/basic/config/web.php的cookieValidationKey配置项下填入一个key,否则运行框架会报错。

使用浏览器(我已经默认你已安装了服务器软件(例如apache)以及php,且已经开启)访问到localhost/basic/web(默认你将框架文件放在服务器根目录)即可看到框架的Demo页面。


至此Yii2框架已经安装完毕,如果你的项目数据库采用的是MySQL,那么恭喜你,Yii2对于MySQL的支持非常完善,尤其是ActiveRecord的使用更是方便了开发人员进行数据库操作。但是如果你想要使用NoSQL类型的数据库(例如MongoDB)且也想使用Yii2的ActiveRecord怎么办?Yii官方提供了MongoDB拓展,安装即可。

安装MongoDB拓展

Yii2是天然支持MySQL以及一些主流的数据库的,具体的支持列表可以看一下官方文档。可以注意到官方提供的驱动里并没有MongoDB,那么如果想要使用诸如MongoDB这样的非关系型数据库怎么办?可喜的是,官方其实是提供了MongoDB的拓展的,但是需要自行下载安装。具体的文档在Yii2的官方网站上有提供,可以点击查看。

安装composer的拓展有两种方法,一种是在命令行下使用命令直接安装,一种是通过修改项目下的composer配置文件,然后通过composer update进行安装。

第一种方法:

在项目的目录下(即有一个composer.json文件的目录)打开命令行,输入如下命令

composer require --prefer-dist yiisoft/yii2-mongodb

第二种方法:

在composer.json的require字段下加入如下配置,注意写入配置的时候要严格按照JSON格式书写,否则会导致composer错误。

"yiisoft/yii2-mongodb": "~2.0.0"

然后在当前目录下打开命令行,运行如下命令

composer update

composer的安装进度完成后,需要在Yii2框架的config.php文件中进行如下的修改,即将拓展的入口类及数据库连接方式写入配置中。

return [
    //....
    'components' => [
        'mongodb' => [
            'class' => '\yii\mongodb\Connection',
            'dsn' => 'mongodb://developer:password@localhost:27017/mydatabase',
        ],
    ],
];

具体的使用指导可以查看官方的文档。推荐使用ActiveRecord的方式使用拓展。

安装Redis拓展

其实安装MongoDB拓展成功后,Redis拓展的安装就轻车熟路了,无非也就是上述两种方式:直接输入命令安装或者修改配置文件后update。官方文档在这里,具体的安装方法就不多赘述了。