Yii2框架与MongoDB拓展、Redis拓展的安装流程
@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的安装方式,以及所需要的配置。
准备工作
你要保证你的系统已经安装了PHP,且cmd中已经有了php命令。具体的配置方式可以看我之前的博文《个人PHP开发环境的选择与搭建》。
你可能需要安装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.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。官方文档在这里,具体的安装方法就不多赘述了。
Yii2框架与MongoDB拓展、Redis拓展的安装流程的更多相关文章
- 搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展
上一篇:搭建LNAMP环境(四)- 源码安装PHP7 一.安装Redis 1.创建redis用户组和用户 groupadd redis useradd -r -g redis -s /sbin/nol ...
- phpstudy 2016 切换Nginx+php7.0版本所需运行库 vc14 + 安装redis拓展
去微软官方下载vc14的运行库 链接:https://www.microsoft.com/en-us/download/details.aspx?id=48145 32位运行库 安装成功 切换版本成功 ...
- windows环境下wamp安装redis拓展
环境: wamp集成环境 安装分为两部 1.安装redis客户端 https://github.com/ServiceStack/redis-windows/raw/master/download ...
- Windows下安装Redis及php的redis拓展教程
一.安装前必读 Windows 64位操作系统 Redis 安装包(版本3.0.5,截止2017-05-29最新redis版本为3.2.9) 注意事项: 1.在window下如果你还需安装php的re ...
- mac安装redis拓展
安装 下载源码 编译安装 添加拓展 添加权限重启 安装 在mac上安装了php7.1.7 php -m 查看安装的拓展,没有redis,以前可以brew install php71-redis简单命令 ...
- php7 安装redis拓展
配置之前应该是环境已经搭好了,phpinfo的页面可以加载出来. 使用git clone下载git上的phpredis扩展包 git clone https://github.com/phpre ...
- MySQL、MongoDB、Redis 数据库之间的区别
NoSQL 的全称是 Not Only SQL,也可以理解非关系型的数据库,是一种新型的革命式的数据库设计方式,不过它不是为了取代传统的关系型数据库而被设计的,它们分别代表了不同的数据库设计思路. M ...
- mongodb,redis,memcached,mysql对比
1.性能都比较高,性能对我们来说应该都不是瓶颈总体来讲,TPS方面redis和memcache差不多,要大于mongodb 2.操作的便利性memcache数据结构单一redis丰富一些,数据操作方面 ...
- Docker运行MongoDB及Redis及ssh端口映射远程连接
Docker运行MongoDB及Redis及ssh端口映射远程连接 本节内容简介 在本实验里我们将通过完成 MongoDB 和 Redis 两个容器来学习Dockerfile及Docker的运行机制. ...
随机推荐
- Java反射机制详解
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反 ...
- js清除浏览器缓存的几种方法
2014年9月24日 4692次浏览 关于浏览器缓存 浏览器缓存,有时候我们需要他,因为他可以提高网站性能和浏览器速度,提高网站性能.但是有时候我们又不得不清除缓存,因为缓存可能误事,出现一些错误的数 ...
- 【BZOJ-1076】奖励关 概率与期望 + 状态压缩DP
1076: [SCOI2008]奖励关 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1602 Solved: 891[Submit][Status ...
- 【codevs1043】 方格取数
http://codevs.cn/problem/1043/ (题目链接) 题意 N*N的方格,每个格子中有一个数,寻找从(1,1)走到(N,N)的两条路径,使得取到的数的和最大. Solution ...
- osquery An Operating System Instrumentation Framewor
catalog . Getting Started . install guide for OS X and Linux . Features Overview . Logging . query e ...
- Always review
Data structures A data structure is a way to store and organize data in order to facilitate access a ...
- HDU 5908 Abelian Period(暴力+想法题)
传送门 Description Let S be a number string, and occ(S,x) means the times that number x occurs in S. i. ...
- MongoDB安装部署(一)
前言 MongoDB是一个由C++语言编写的基于分布式文件存储的数据库,是当前NoSQL数据库中比较热门的一种,旨在为Web应用提供可扩展的高性能数据存储解决方案. MongoDB 简介 MongoD ...
- global--命名空间的使用(一些零散的js方法)
var GLOBAL = {}; GLOBAL.namespace = function (str) { var arr = str.split('.'), o = GLOBAL; for (var ...
- 【突发问题】昨天更新了OS X EI Capitan 出现了Cocoapods的 pod :command not found
然后我百度:http://www.jianshu.com/p/6ff1903c3f11 果真,我想想然后执行了作者说的第一步,删除本地Cocoapods文件,然后发现我执行不了接下来的几个步骤了.所以 ...