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 相关文章推荐
php 空格,换行,跳格使用说明
Dec 18 PHP
php下统计用户在线时间的一种尝试
Aug 26 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
wamp下修改mysql访问密码的解决方法
May 07 PHP
ThinkPHP3.1新特性之多层MVC的支持
Jun 19 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
Oct 30 PHP
使用php-timeit估计php函数的执行时间
Sep 06 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
Dec 19 PHP
PHP仿微信多图片预览上传实例代码
Sep 13 PHP
php 三大特点:封装,继承,多态
Feb 19 PHP
php7安装yar扩展的方法详解
Aug 03 PHP
laravel 判断查询数据库返回值的例子
Oct 11 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个人网站架设连环讲(一)
2006/10/09 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
PHP实现的QQ空间g_tk加密算法
2015/07/09 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
javascript 流畅动画实现原理
2009/09/08 Javascript
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
angularjs实现下拉列表的选中事件示例
2017/03/03 Javascript
Vue响应式原理详解
2017/04/18 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
Vue项目数据动态过滤实践及实现思路
2018/09/11 Javascript
Javascript实现一朵从含苞到绽放的玫瑰
2019/03/30 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
python手机号前7位归属地爬虫代码实例
2020/03/31 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
Molly Bracken法国电子商店:法国女性时尚品牌
2019/07/24 全球购物
党员年终民主评议的自我评价
2013/11/05 职场文书
党支部创先争优承诺书
2014/08/30 职场文书
2015年党员个人自我评价
2015/03/03 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
2015年第31个教师节致辞
2015/07/31 职场文书