Yii框架安装简明教程


Posted in PHP onMay 15, 2020

本文实例讲述了Yii框架安装方法。分享给大家供大家参考,具体如下:

YII相关网站

www.yiiframework.com

https://github.com/yiisoft/yii2

packagist仓库:https://packagist.org/

composer global require "fxp/composer-asset-plugin:~1.0.0" //下载静态资源插件
composer create-project --prefer-dist yiisoft/yii2-app-basic basic //下载yii2
composer install
 
github token获取:https://github.com/settings/tokens

通过 Composer 安装

安装 Composer

如果还没有安装 Composer,你可以按 getcomposer.org 中的方法安装。 在 Linux 和 Mac OS X 中可以运行如下命令:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

在 Windows 中,你需要下载并运行 Composer-Setup.exe。

如果遇到任何问题或者想更深入地学习 Composer, 请参考 Composer 文档。 如果你已经安装有 Composer 请确保使用的是最新版本, 你可以用 composer self-update 命令更新 Composer 为最新版本

所有 composer 命令都假定您已经安装了全局 的 composer, 这样它可以作为 composer 命令。

安装 Yii ¶

安装 Composer 后,您可以通过在 Web 可访问的文件夹下运行以下命令来 安装Yii应用程序模板:

composer create-project --prefer-dist yiisoft/yii2-app-basic basic

这将在一个名为 basic 的目录中安装Yii应用程序模板的最新稳定版本。 如果需要,您可以选择不同的目录名称。

信息: 如果 composer create-project 命令失败,您也可以参考 Composer 文档的疑难解答 部分中的常见错误。修复错误后, 您可以通过在 basic 目录内运行 composer update 来恢复中止安装。

提示: 如果你想安装 Yii 的最新开发版本,可以使用以下命令代替, 它添加了一个 stability 选项:

composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic

请注意,Yii的开发版本不应该用于生产,因为它可能会破坏您的运行代码。

安装过程中错误处理

Invalid Parameter - yii\base\InvalidParamException
 
The file or directory to be published dose not exit;
 
C:\xampp\htdocs\yii2test/vendor\bower/jquery/dist
 
解决:
 
composer self-update1.0.0-alphall
 
composer clear-cache

 Yii框架安装简明教程

 解决:

composer global update fxp/composer-asset-plugin --no-plugins

尝试安装最新版的  composer-asset-plugin 版本看看能不能解决这个问题。现在最新版本是 1.1.4  https://packagist.org/packages/fxp/composer-asset-plugin

composer require fxp/composer-asset-plugin

然后继续安装yii。

通过归档文件安装 ¶

通过归档文件安装 Yii 包括三个步骤:

  1. 从 yiiframework.com 下载归档文件。
  2. 将下载的文件解压缩到 Web 访问的文件夹中。
  3. 修改 config/web.php 文件,给 cookieValidationKey 配置项 添加一个密钥(若你通过 Composer 安装,则此步骤会自动完成):

    // !!! 在下面插入一段密钥(若为空) - 以供 cookie validation 的需要
    'cookieValidationKey' => '在此处输入你的密钥',

安装 Assets

Yii依靠 Bower 和/或 NPM 软件包来安装 asset(CSS 和 JavaScript)库。 它使用Composer来获取这些库,允许 PHP 和 CSS/JavaScript 包版本同时解析。 这可以通过使用 asset-packagist.org 或 composer asset plugin 来实现。 有关更多详细信息,请参阅 Assets 文档。

您可能希望通过本地 Bower/NPM 客户端管理您的 assets,使用 CDN 或完全避免 assets 的安装。 为了防止通过 Composer 安装 assets,请将以下几行添加到您的 'composer.json' 中:

"replace": {
 "bower-asset/jquery": ">=1.11.0",
 "bower-asset/inputmask": ">=3.2.0",
 "bower-asset/punycode": ">=1.3.0",
 "bower-asset/yii2-pjax": ">=2.0.0"
},

注意: 在通过 Composer 绕过 assets 安装的情况下,您负责 assets 的安装和解决版本冲突。 准备来自不同扩展名的 assets 文件之间的可能不一致。

验证安装的结果

当安装完成之后, 或配置你的Web服务器(看下面的文章)或使用内置Web Server, 当在项目 web 目录下可以通过下面的命令:

php yii serve

注意: 默认情况下Https-server将监听8080。可是如果这个端口已经使用或者你想通过这个方式运行多个应用程序,你可以指定使用哪些端口。 只加上 --port 参数:

php yii serve --port=8888

安装完成后,就可以使用浏览器通过如下 URL 访问刚安装完的 Yii 应用了:

http://localhost:8080/

 Yii框架安装简明教程

你应该可以在浏览器中看到如上所示的 “Congratulations!” 页面。如果没有, 请通过以下任意一种方式,检查当前 PHP 环境是否满足 Yii 最基本需求:

  • 复制 /requirements.php/web/requirements.php,然后通过浏览器访问 URL http://localhost/requirements.php
  • 执行如下命令:

    cd basic
    php requirements.php

你需要配置好 PHP 安装环境,使其符合 Yii 的最小需求。主要是需要 PHP 5.4 或 以上版本。 如果应用需要用到数据库,那还要安装 PDO PHP 扩展 和相应的数据库驱动(例如访问 MySQL 数据库所需的 pdo_mysql)。

配置 Web 服务器

推荐使用的 Apache 配置

在 Apache 的 httpd.conf 文件或在一个虚拟主机配置文件中使用如下配置。 注意,你应该将 path/to/basic/web 替换为实际的 basic/web 目录。

# 设置文档根目录为 "basic/web"
DocumentRoot "path/to/basic/web"
 
<Directory "path/to/basic/web">
 # 开启 mod_rewrite 用于美化 URL 功能的支持(译注:对应 pretty URL 选项)
 RewriteEngine on
 # 如果请求的是真实存在的文件或目录,直接访问
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 # 如果请求的不是真实文件或目录,分发请求至 index.php
 RewriteRule . index.php
 
 # if $showScriptName is false in UrlManager, do not allow accessing URLs with script name
 RewriteRule ^index.php/ - [L,R=404]
 
 # ...其它设置...
</Directory>

推荐使用的 Nginx 配置

为了使用 Nginx,你应该已经将 PHP 安装为 FPM SAPI 了。 你可以使用如下 Nginx 配置,将 path/to/basic/web 替换为实际的 basic/web 目录, mysite.local 替换为实际的主机名以提供服务。

server {
 charset utf-8;
 client_max_body_size 128M;
 
 listen 80; ## listen for ipv4
 #listen [::]:80 default_server ipv6only=on; ## listen for ipv6
 
 server_name mysite.test;
 root  /path/to/basic/web;
 index  index.php;
 
 access_log /path/to/basic/log/access.log;
 error_log /path/to/basic/log/error.log;
 
 location / {
  # Redirect everything that isn't a real file to index.php
  try_files $uri $uri/ /index.php$is_args$args;
 }
 
 # uncomment to avoid processing of calls to non-existing static files by Yii
 #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
 # try_files $uri =404;
 #}
 #error_page 404 /404.html;
 
 # deny accessing php files for the /assets directory
 location ~ ^/assets/.*\.php$ {
  deny all;
 }
 
 location ~ \.php$ {
  include fastcgi_params;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  fastcgi_pass 127.0.0.1:9000;
  #fastcgi_pass unix:/var/run/php5-fpm.sock;
  try_files $uri =404;
 }
 
 location ~* /\. {
  deny all;
 }
}

使用该配置时,你还应该在 php.ini 文件中设置 cgi.fix_pathinfo=0 , 能避免掉很多不必要的 stat() 系统调用。

还要注意当运行一个 HTTPS 服务器时,需要添加 fastcgi_param HTTPS on; 一行, 这样 Yii 才能正确地判断连接是否安全。

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
浅谈apache和nginx的rewrite的区别
Feb 22 PHP
PHP 获取文件权限函数介绍
Jul 11 PHP
zf框架db类的分页示例分享
Mar 14 PHP
php环境无法上传文件的解决方法
Apr 30 PHP
PHP清除数组中所有字符串两端空格的方法
Oct 20 PHP
php简单判断文本编码的方法
Jul 30 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
php制作简单模版引擎
Apr 07 PHP
Laravel 5.3 学习笔记之 安装
Aug 28 PHP
thinkPHP实现签到功能的方法
Mar 15 PHP
PHP用函数嵌入网站访问量计数器
Oct 27 PHP
Smarty模板类内部原理实例分析
Jul 03 PHP
php字符串函数 str类常见用法示例
May 15 #PHP
PHP数组array类常见操作示例
May 15 #PHP
php数值计算num类简单操作示例
May 15 #PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 #PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 #PHP
PHP程序员简单的开展服务治理架构操作详解(三)
May 14 #PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 #PHP
You might like
PHP在Web开发领域的优势
2006/10/09 PHP
PHP 模拟$_PUT实现代码
2010/03/15 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
基于jquery的图片懒加载js
2010/06/30 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
JS继承--原型链继承和类式继承
2013/04/08 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
2013/04/19 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
Python实现学校管理系统
2018/01/11 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
pytorch 自定义数据集加载方法
2019/08/18 Python
tensorflow常用函数API介绍
2020/04/19 Python
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
2014年四风问题自我剖析材料
2014/09/15 职场文书
党的群众路线教育实践活动党员个人整改措施
2014/10/27 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
教师节感谢信
2015/01/22 职场文书
收入证明怎么写
2015/06/12 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
golang中实现给gif、png、jpeg图片添加文字水印
2021/04/26 Golang
JavaScript控制台的更多功能
2021/04/28 Javascript
使用Djongo模块在Django中使用MongoDB数据库
2021/06/20 Python