Yii 2 安装指南:Composer 与压缩包两种方式、环境校验及 Apache/Nginx 生产配置
2026/9/23 7:35:29 网站建设 项目流程

Yii 2 安装指南:Composer 与压缩包两种方式、环境校验及 Apache/Nginx 生产配置

【免费下载链接】yii2Yii 2: The Fast, Secure and Professional PHP Framework项目地址: https://gitcode.com/gh_mirrors/yi/yii2

本指南基于 Yii 2 官方文档(法语版docs/guide-fr/start-installation.md)整理,完整覆盖 Yii 2 框架的两种安装方式、项目模板概念、资源(Assets)依赖管理、安装后验证以及生产环境的 Web 服务器配置。读完本文,你将能够独立完成 Yii 2 基础项目模板(Basic Project Template)的安装、环境检查,并掌握将应用部署到 Apache 或 Nginx 的推荐配置。

安装方式总览:Composer 与压缩包

Yii 2 提供两种安装方式:

  1. 使用 Composer 包管理器安装(推荐方式):一条命令即可安装扩展或升级 Yii,便于后续维护。
  2. 下载压缩包安装:从官网下载归档文件手动解压,适合无法使用 Composer 的环境。

无论采用哪种方式,标准安装都会同时下载并安装框架本体与一个项目模板(Project Template)。项目模板是一个可运行的 Yii 应用,预置了登录、联系表单等基础功能,代码按官方推荐方式组织,是启动自有项目的良好起点。

Yii 官方提供两种项目模板:

  • 基础项目模板(Basic Project Template):本指南的核心对象,代码组织简单,适用于约 90% 的 Web 应用场景,对初学者尤其友好;
  • 高级项目模板(Advanced Project Template):更适合多团队、多层级(前端/后端分离)的开发环境,两者主要区别在于代码组织方式。

方式一:通过 Composer 安装

1. 安装 Composer

若尚未安装 Composer,在 Linux 和 macOS 上可执行:

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

Windows 用户下载并运行Composer-Setup.exe即可。若已安装过旧版本,请先执行composer self-update升级到最新版本。

本指南中的命令均假设 Composer 已全局安装并可直接通过composer命令调用;如果你是在本地目录使用composer.phar,请相应调整命令写法。

注意(GitHub API 限流):安装 Yii 时 Composer 需要从 GitHub API 获取大量依赖信息,请求次数取决于应用依赖数量,可能超过GitHub API rate limit。此时 Composer 会提示输入 GitHub 登录凭据以获取访问令牌。网络较快时更容易触发限流,因此建议在安装 Yii 之前预先配置好 GitHub API 访问令牌(参见 Composer 官方文档中关于 "API rate limit and OAuth tokens" 的说明)。

2. 使用 Composer 创建项目

在 Web 可访问的目录下执行:

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

该命令会在basic目录中安装最新稳定版的 Yii 基础项目模板,目录名可自行修改。--prefer-dist让 Composer 优先使用压缩包分发(dist),安装更快。

如果composer create-project失败,可参考 Composer 官方文档的 Troubleshooting 章节排查常见错误;修复错误后,在basic(或你自定义的)目录中执行composer update即可继续被中断的安装。

提示(开发版本):如需安装 Yii 的最新开发版本,可添加稳定性选项:

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

注意:开发版本不应用于生产环境,因为它可能破坏现有代码。

方式二:通过压缩包安装

从归档文件安装只需三步:

  1. 从 yiiframework.com 官网下载应用归档文件;
  2. 将归档解压到 Web 可访问的目录;
  3. 修改config/web.php,为cookieValidationKey配置项填入一个密钥(使用 Composer 安装时此步骤会自动完成):
// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation 'cookieValidationKey' => 'enter your secret key here',

cookieValidationKey用于对 Cookie 进行校验签名,是防止 Cookie 被篡改的关键配置,生产环境必须设置为随机且不可预测的密钥

其他安装选项

  • 仅安装框架、从零构建应用:如果只想使用核心框架并自行搭建完整应用结构,可参考 从零开始构建应用;
  • 使用高级项目模板:若需要更复杂的、适合团队协作的多层级应用,可考虑安装 Advanced Project Template,其代码组织方式与基础模板不同。

安装资源(Assets:CSS 与 JavaScript 库)

Yii 依赖 Bower。

如果希望改用原生 Bower/NPM 客户端管理资源、使用 CDN,或完全跳过资源安装,可在composer.json中添加如下配置,阻止 Composer 安装资源:

"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 安装资源后,你需要自行负责资源的安装与版本冲突的解决,不同扩展提供的资源文件之间可能出现不一致。

验证安装:内置 Web 服务器与需求检查

安装完成后,可以先用 PHP 内置 Web 服务器快速验证,而无需立即配置生产 Web 服务器。在项目根目录执行:

php yii serve

默认监听8080端口;若端口被占用或需要同时服务多个应用,可指定端口:

php yii serve --port=8888

然后在浏览器访问http://localhost:8080/

应看到上图所示的 "Congratulations! You have successfully created your Yii-powered application." 欢迎页面。

php yii serve的底层实现:该命令由 ServeController 提供。从源码看,其默认port = 8080docroot = '@app/web',并支持--port/-p--docroot/-t--router/-r三个选项(见options()optionAliases()方法)。启动前它会用isAddressTaken()探测地址是否已被占用(ServeController.php),最终通过passthru()调用php -S启动内置服务器(ServeController.php)。如需从远程机器访问(例如在虚拟机中运行),可用0.0.0.0:8080作为监听地址。

如果页面没有正常显示,请检查 PHP 环境是否满足 Yii 的最低要求,可通过以下任一方式校验:

  • 用浏览器访问http://localhost/basic/requirements.php
  • 在命令行执行:
cd basic php requirements.php

关于 PHP 版本要求的重要说明:原安装文档撰写时要求 PHP 5.4 以上(理想为 PHP 7),但以当前仓库为准,框架的最低要求已提升为PHP 7.3.0 或更高——这一点在 requirements.php 中有明确判定条件。此外,该需求检查脚本还列出多项扩展要求,其中强制(mandatory)项包括:Reflection、PCRE、SPL、Ctype、MBString;可选(非强制)项包括:OpenSSL(加密解密)、Intl(国际化、Yii::t()高级参数格式化、Inflector::slug()对非拉丁语系的支持等)、Fileinfo(文件上传 MIME 类型检测)、DOM(REST API 的 XML 响应格式化)等(requirements.php)。

如果应用需要数据库,还需安装PDO PHP 扩展及对应数据库驱动(如 MySQL 使用pdo_mysql)。

配置生产 Web 服务器

如果只是测试 Yii 而暂不部署到生产服务器,可先跳过本节。

按上述说明安装的应用开箱即用,可运行在 Apache 或 Nginx 之上(Windows、macOS、Linux,PHP 7.3 及以上)。生产环境下,通常希望应用通过https://www.example.com/index.php访问,而不是https://www.example.com/basic/web/index.php,这要求将 Web 服务器的**文档根目录(document root)**指向basic/web文件夹。

为什么要把文档根目录设为basic/web这样用户将无法访问与basic/web同级的私有应用代码和敏感数据文件,是一种重要的安全改进。若应用运行在无法修改 Web 服务器配置的共享主机环境中,可参考 共享主机环境 调整应用结构以提升安全性。另外,若应用位于反向代理之后,可能需要在 request 组件中配置 可信代理与请求头。

关于隐藏 URL 中的index.php(美化 URL / Pretty URL),详见 路由与 URL 创建。

推荐的 Apache 配置

httpd.conf或虚拟主机配置中使用以下配置(将path/to/basic/web替换为实际路径):

# Configuration du dossier racine 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 # 当 UrlManager 中 $showScriptName 为 false 时,拒绝带脚本名的 URL 访问 RewriteRule ^index.php/ - [L,R=404] # ...其他配置... </Directory>

关键点说明:

  • RewriteCond %{REQUEST_FILENAME} !-f/!-d:静态文件与目录仍由服务器直接处理,只有不存在的路径才交由index.php
  • RewriteRule ^index.php/ - [L,R=404]:配合UrlManagershowScriptName => false,防止用户通过显式带index.php的 URL 访问。

推荐的 Nginx 配置

使用 Nginx 时需以PHP-FPM(FPM SAPI)方式运行 PHP。将path/to/basic/web替换为实际路径、mysite.test替换为实际主机名:

server { charset utf-8; client_max_body_size 128M; listen 80; ## 监听 ipv4 #listen [::]:80 default_server ipv6only=on; ## 监听 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 / { # 将所有非真实文件的请求转发到 index.php try_files $uri $uri/ /index.php$is_args$args; } # 取消注释可避免 Yii 处理不存在的静态文件请求 #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { # try_files $uri =404; #} #error_page 404 /404.html; # 拒绝访问 /assets 目录下的 PHP 文件 location ~ ^/assets/.*\.php$ { deny all; } location ~ \.php$ { include fastcgi.conf; fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/var/run/php5-fpm.sock; } location ~ /\.(ht|svn|git) { deny all; } }

使用此配置时,还应在php.ini中设置cgi.fix_pathinfo=0,以避免大量不必要的系统stat()调用、提升性能。当使用 HTTPS 时,需添加fastcgi_param HTTPS on;,让 Yii 能正确识别安全连接。

小结

至此,你已经掌握了 Yii 2 的完整安装链路:通过 Composer 或压缩包两种方式获得基础项目模板,按需调整资源(Assets)的安装策略,用php yii serve快速验证安装结果,并通过requirements.php确认 PHP 环境满足要求(当前仓库要求 PHP 7.3.0+,并强制依赖 Reflection、PCRE、SPL、Ctype、MBString 等扩展),最后按推荐配置将应用部署到 Apache 或 Nginx。接下来即可基于模板开始编写控制器、模型与视图,或参考 从零开始构建应用 搭建自定义结构的项目。

【免费下载链接】yii2Yii 2: The Fast, Secure and Professional PHP Framework项目地址: https://gitcode.com/gh_mirrors/yi/yii2

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询