ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

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

Yii 2 安装指南:Composer 与压缩包两种方式、环境校验及 Apache/Nginx 生产配置 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 提供两种安装方式使用 Composer 包管理器安装推荐方式一条命令即可安装扩展或升级 Yii便于后续维护。下载压缩包安装从官网下载归档文件手动解压适合无法使用 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/composerWindows 用户下载并运行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 --stabilitydev yiisoft/yii2-app-basic basic注意开发版本不应用于生产环境因为它可能破坏现有代码。方式二通过压缩包安装从归档文件安装只需三步从 yiiframework.com 官网下载应用归档文件将归档解压到 Web 可访问的目录修改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其代码组织方式与基础模板不同。安装资源AssetsCSS 与 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 --port8888然后在浏览器访问http://localhost:8080/应看到上图所示的 Congratulations! You have successfully created your Yii-powered application. 欢迎页面。php yii serve的底层实现该命令由 ServeController 提供。从源码看其默认port 8080、docroot 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 类型检测、DOMREST API 的 XML 响应格式化等requirements.php。如果应用需要数据库还需安装PDO PHP 扩展及对应数据库驱动如 MySQL 使用pdo_mysql。配置生产 Web 服务器如果只是测试 Yii 而暂不部署到生产服务器可先跳过本节。按上述说明安装的应用开箱即用可运行在 Apache 或 Nginx 之上Windows、macOS、LinuxPHP 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 支持美化 URLpretty URL RewriteEngine on # 如果请求的是真实存在的文件或目录则直接响应 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 否则将所有请求转发到 index.php前端控制器 RewriteRule . index.php # 当 UrlManager 中 $showScriptName 为 false 时拒绝带脚本名的 URL 访问 RewriteRule ^index.php/ - [L,R404] # ...其他配置... /Directory关键点说明RewriteCond %{REQUEST_FILENAME} !-f/!-d静态文件与目录仍由服务器直接处理只有不存在的路径才交由index.phpRewriteRule ^index.php/ - [L,R404]配合UrlManager的showScriptName false防止用户通过显式带index.php的 URL 访问。推荐的 Nginx 配置使用 Nginx 时需以PHP-FPMFPM SAPI方式运行 PHP。将path/to/basic/web替换为实际路径、mysite.test替换为实际主机名server { charset utf-8; client_max_body_size 128M; listen 80; ## 监听 ipv4 #listen [::]:80 default_server ipv6onlyon; ## 监听 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_pathinfo0以避免大量不必要的系统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),仅供参考
返回列表