在阿里云虚拟主机上部署 Yii 框架是一个常见的需求,尤其对于希望利用 Yii 高性能、组件化特性的开发者而言,与拥有完全控制权的云服务器(ECS)不同,虚拟主机通常不提供 SSH 命令行访问,这使得安装过程需要采用一些变通的方法,本文将详细介绍一种稳定且通用的方案,指导您完成在阿里云虚拟主机上的 Yii 安装与配置,确保整个过程清晰、顺畅。
准备工作与前提条件
在开始安装之前,请确保您已经完成了以下准备工作,这是成功部署的基础。
- 确认虚拟主机环境:确保您已购买并可以登录阿里云虚拟主机管理控制台,了解您的控制面板类型(通常是阿里云自研的虚拟主机控制面板)。
- PHP 版本要求:Yii 2.0 框架要求 PHP 版本不低于 7.3,请登录您的虚拟主机控制面板,在“高级环境设置”或类似选项中,检查并切换 PHP 版本至符合要求的版本(推荐使用 PHP 7.4 或 8.0 以获得更好的性能)。
- 必需的 PHP 扩展:Yii 需要一些 PHP 扩展才能正常运行,请确保以下扩展已启用:
PDO
和pdo_mysql
(用于数据库连接)mbstring
(用于多字节字符串处理)openssl
(用于安全相关的操作)gd
或imagick
(用于图片处理,非强制但推荐)
这些扩展在阿里云虚拟主机上默认是开启的,但检查一遍总无妨。
- 创建数据库:在虚拟主机控制面板的“数据库管理”中,创建一个新的 MySQL 数据库、数据库用户,并将该用户关联到数据库,记下数据库名、用户名和密码,稍后配置时会用到。
- 本地 Composer 环境:由于虚拟主机无法直接运行 Composer,我们需要在本地计算机(Windows、macOS 或 Linux)上安装 Composer,这是本次安装方案的核心,您可以访问 Composer 官网 获取详细的安装指导。
核心安装步骤
准备工作就绪后,我们遵循“本地生成、上传配置”的思路进行安装。
在本地使用 Composer 创建 Yii 项目
打开您本地计算机的命令行工具(如 Windows 的 CMD 或 PowerShell,macOS/Linux 的 Terminal),进入到您希望创建项目的目录(cd ~/projects
),然后执行以下命令来创建一个 Yii 基础应用模板项目:
composer create-project yiisoft/yii2-app-basic my-yii-project
这里 my-yii-project
是您项目的文件夹名称,您可以自定义,此命令会下载 Yii 框架及其所有依赖项,并生成一个完整的项目结构。
本地配置项目
在上传文件到服务器之前,先在本地完成基础配置,可以避免很多不必要的麻烦。
配置数据库连接:用文本编辑器打开本地项目中的
config/db.php
文件,将其中的数据库信息修改为您在阿里云虚拟主机上创建的数据库信息。return [ 'class' => 'yiidbConnection', 'dsn' => 'mysql:host=localhost;dbname=您的数据库名', 'username' => '您的数据库用户名', 'password' => '您的数据库密码', 'charset' => 'utf8mb4', ];
注意:主机地址通常是
localhost
,具体请参考您的虚拟主机数据库信息页面。(可选)配置 Cookie 加密密钥:打开
config/web.php
文件,找到cookieValidationKey
配置项,如果它是空的,请手动生成一个随机字符串(yii
命令提供的key/generate
,或者在线生成)填入,这对于应用安全至关重要。
上传项目文件到虚拟主机
这是将本地项目迁移到服务器的关键步骤。
- 连接虚拟主机:通过 FTP 客户端(如 FileZilla)或虚拟主机控制面板的“文件管理”功能连接到您的虚拟主机。
- 定位网站根目录:找到您网站的根目录,通常是
/htdocs
或/wwwroot
。 - 上传文件:将您本地
my-yii-project
文件夹内的所有文件和文件夹(而不是my-yii-project
文件夹本身)上传到/htdocs
目录下,上传完成后,您服务器上的文件结构应该是/htdocs/index.php
、/htdocs/config
、/htdocs/vendor
等。
修改网站根目录
这是一个非常重要且常被忽略的步骤,它关系到应用的安全性和正常运行,Yii 项目的入口文件在 web
目录下,为了防止外部访问 config
、vendor
等敏感文件,我们需要将网站的根目录指向 web
文件夹。
- 登录阿里云虚拟主机控制面板。
- 找到“网站基础设置”或类似的选项。
- 在“网站默认首页设置”或“主机域名设置”区域,找到“网站根目录”或“默认首页设置”的修改入口。
- 将根目录从
/htdocs
修改为/htdocs/web
,保存设置。
验证安装
完成以上所有步骤后,等待几分钟让服务器的配置生效,在浏览器中访问您的域名,如果一切顺利,您应该能看到 Yii 的欢迎页面,这代表您的 Yii 应用已经成功在阿里云虚拟主机上运行起来了。
常见问题与注意事项
- URL 美化:Yii 默认启用 URL 美化,这需要 Apache 的
mod_rewrite
模块支持,阿里云虚拟主机通常已启用此模块,请确保web/.htaccess
文件已正确上传。 - 目录权限:请确保
runtime
和web/assets
目录对 Web 服务器可写,虚拟主机的默认权限已经足够,如果遇到权限错误,可以通过 FTP 客户端将这两个目录的权限设置为 755。 - 应用模板选择:对于新手或中小型项目,推荐使用
yii2-app-basic
模板,如果您计划开发大型、复杂的前后端分离项目,可以考虑使用yii2-app-advanced
模板,但其配置和部署过程相对复杂。
应用模板 | 适用场景 | 特点 |
---|---|---|
yii2-app-basic | 个人项目、小型应用、快速原型 | 结构简单,单应用入口,上手快,易于部署 |
yii2-app-advanced | 大型项目、前后端分离、团队开发 | 结构复杂,含前后台、独立的应用入口,更规范但配置繁琐 |
相关问答FAQs
我的虚拟主机没有SSH权限,无法直接运行Composer,怎么办?
解答:这正是本文所解决的核心问题,您完全不需要在虚拟主机上运行 Composer,正确的做法是:在您自己的本地计算机(您的笔记本或台式机)上安装 Composer,然后使用 Composer 创建完整的 Yii 项目。 项目创建并配置完成后,再通过 FTP 或文件管理器将整个项目的文件和文件夹上传到阿里云虚拟主机的网站根目录(htdocs
),这个“本地生成,云端部署”的模式是虚拟主机环境下安装依赖管理型框架的标准做法。
安装后访问域名出现403 Forbidden或404 Not Found错误,是什么原因?
解答:这是最常见的部署问题,99%的原因是 网站根目录设置不正确,Yii 框架为了安全,要求将网站的访问根目录指向项目中的 web
子目录,而不是项目根目录,请登录您的阿里云虚拟主机控制面板,检查“主机域名设置”或“网站基础设置”中的“网站根目录”字段,如果它被设置为 /htdocs
,请将其修改为 /htdocs/web
,然后保存设置,修改后稍等片刻,清除浏览器缓存后重新访问域名,通常就能解决问题,如果仍有问题,请检查 web/.htaccess
文件是否存在且内容正确。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复