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 相关文章推荐
我的论坛源代码(七)
Oct 09 PHP
构建简单的Webmail系统
Oct 09 PHP
php高级编程-函数-郑阿奇
Jul 04 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
php文件缓存类汇总
Nov 21 PHP
php析构函数的简单使用说明
Aug 24 PHP
PHP查看SSL证书信息的方法
Sep 22 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
Jun 08 PHP
PHP设计模式之委托模式定义与用法简单示例
Aug 13 PHP
PHP集成环境XAMPP的安装与配置
Nov 13 PHP
laravel框架中间件 except 和 only 的用法示例
Jul 12 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
Mar 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获取域名的google收录示例
2014/03/24 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
Using the TextRange Object
2006/10/14 Javascript
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
$.ajax json数据传递方法
2008/11/19 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
js 链式延迟执行DOME
2012/01/04 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
vue主动刷新页面及列表数据删除后的刷新实例
2018/09/16 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
vue计算属性无法监听到数组内部变化的解决方案
2019/11/06 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
python的id()函数介绍
2013/02/10 Python
Python3基础之基本运算符概述
2014/08/13 Python
在Python中使用dict和set方法的教程
2015/04/27 Python
Python函数返回值实例分析
2015/06/08 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
python redis 批量设置过期key过程解析
2019/11/26 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
python小技巧——将变量保存在本地及读取
2020/11/13 Python
静态成员和非静态成员的区别
2012/05/12 面试题
技校个人求职信范文
2014/01/25 职场文书
2014年房地产销售工作总结
2014/12/01 职场文书
行为习惯主题班会
2015/08/14 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书