@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仓库中拉取。具体看这篇(百度经验)[http://jingyan.baidu.com/article/9f7e7ec0b17cac6f2815548d.html]吧,其实过程和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.phpcookieValidationKey配置项下填入一个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。官方文档在这里,具体的安装方法就不多赘述了。

Yii2框架与MongoDB拓展、Redis拓展的安装流程的更多相关文章

  1. 搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展

    上一篇:搭建LNAMP环境(四)- 源码安装PHP7 一.安装Redis 1.创建redis用户组和用户 groupadd redis useradd -r -g redis -s /sbin/nol ...

  2. phpstudy 2016 切换Nginx+php7.0版本所需运行库 vc14 + 安装redis拓展

    去微软官方下载vc14的运行库 链接:https://www.microsoft.com/en-us/download/details.aspx?id=48145 32位运行库 安装成功 切换版本成功 ...

  3. windows环境下wamp安装redis拓展

    环境: wamp集成环境 安装分为两部 1.安装redis客户端   https://github.com/ServiceStack/redis-windows/raw/master/download ...

  4. Windows下安装Redis及php的redis拓展教程

    一.安装前必读 Windows 64位操作系统 Redis 安装包(版本3.0.5,截止2017-05-29最新redis版本为3.2.9) 注意事项: 1.在window下如果你还需安装php的re ...

  5. mac安装redis拓展

    安装 下载源码 编译安装 添加拓展 添加权限重启 安装 在mac上安装了php7.1.7 php -m 查看安装的拓展,没有redis,以前可以brew install php71-redis简单命令 ...

  6. php7 安装redis拓展

    配置之前应该是环境已经搭好了,phpinfo的页面可以加载出来.   使用git clone下载git上的phpredis扩展包 git clone  https://github.com/phpre ...

  7. MySQL、MongoDB、Redis 数据库之间的区别

    NoSQL 的全称是 Not Only SQL,也可以理解非关系型的数据库,是一种新型的革命式的数据库设计方式,不过它不是为了取代传统的关系型数据库而被设计的,它们分别代表了不同的数据库设计思路. M ...

  8. mongodb,redis,memcached,mysql对比

    1.性能都比较高,性能对我们来说应该都不是瓶颈总体来讲,TPS方面redis和memcache差不多,要大于mongodb 2.操作的便利性memcache数据结构单一redis丰富一些,数据操作方面 ...

  9. Docker运行MongoDB及Redis及ssh端口映射远程连接

    Docker运行MongoDB及Redis及ssh端口映射远程连接 本节内容简介 在本实验里我们将通过完成 MongoDB 和 Redis 两个容器来学习Dockerfile及Docker的运行机制. ...

随机推荐

  1. 自定义UITabBar的两种方式

    开发中,经常会遇到各种各样的奇葩设计要求,因为apple提供的UITabBar样式单一,只是简单的"图片+文字"样式,高度49又不可以改变.自定义UITabBar成为了唯一的出路. ...

  2. 安装完ActivePython后Python的Idle窗口打不开也卸载不掉的解决方法

    1.想找一个好的PythonIDE开发环境所以就安装了ActivePython开发公具,结果发现软件打不开,机器上装的Python环境也不能用了,网上相关的解决方法也是寥寥无几...真悲催! 2.后来 ...

  3. mysql字段冲突报错

    check the manual that corresponds to your MySQL server version for the right syntax to use near 出现这个 ...

  4. Leetcode 114, Flatten Binary Tree to Linked List

    根据提示,本题等价于pre order traverse遍历,并且依次把所有的节点都存成right child,并把left child定义成空集.用递归的思想,那么如果分别把左右子树flatten成 ...

  5. jdbc实现事务

    //conn需要自己获取,这里我用的时springjdbcTemplate Connection conn = null; PreparedStatement pstm = null; try { c ...

  6. Codeforces Round #389 Div.2 E. Santa Claus and Tangerines

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  7. 分布式ID生成器

    最近会写一篇分布式的ID生成器的文章,先占位.借鉴Mongodb的ObjectId的生成: 4byte时间戳 + 3byte机器标识 + 2byte PID + 3byte自增id 简单代码: imp ...

  8. 安装PhantomJS

    安装步骤 # 安装依赖软件 yum -y install wget fontconfig # 下载PhantomJS wget -P /tmp/ https://bitbucket.org/ariya ...

  9. BeautifulSoup高级应用 之 CSS selectors /CSS 选择器

    BeautifulSoup支持最常用的CSS selectors,这是将字符串转化为Tag对象或者BeautifulSoup自身的.select()方法. 本篇所使用的html为: html_doc ...

  10. POJ 1182 食物链(带权并查集)

    传送门 食物链  Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 65579   Accepted: 19336 Descri ...