将 Yii 2 应用程序部署到文档根目录的子目录
Deploying a Yii 2 app to a subdirectory of the document root
我想将 Yii 2 应用程序部署到网站的子目录:
我的应用程序的目录结构如下所示:
|-- LICENSE.md
|-- README.md
|-- assets
|-- commands
|-- components
|-- composer.json
|-- composer.lock
|-- config
|-- controllers
|-- mail
|-- models
|-- requirements.php
|-- runtime
|-- test.php
|-- test.txt
|-- tests
|-- vendor
|-- views
|-- web
|-- yii
`-- yii.bat
According to Yii 2's documentation,为了部署,您应该将 web
文件夹重命名为服务器的文档根目录,如 public_html
、wwww
等。然后您将所有文件复制到文档根目录的父目录。但是没有说明如何将应用程序部署到文档根目录的 子目录。
主机是 Apache,我想知道使用别名是否是最简单的方法。不过,我不确定 the documentation on mod_alias 使用哪个指令或应该去哪里。
你推荐什么?
结果比我想象的要简单。
- 将
web
目录移动到您的文档根目录(例如,public_html
、www
等)。
- 将
web
目录重命名为您希望在域名后显示的方式。例如,如果您希望您的应用位于 http://example.com/myapp
,则将 web
重命名为 myapp
。
- 将您的应用程序目录(现在应该减去
web
子目录)移动到文档根目录上方的一个目录。
- 在
web
目录下,更改index.php
中三个require
函数的路径。
我修改后的 index.php
看起来与下面类似。 (如果你复制粘贴,记得把 your_app_name
替换成你的应用程序目录的名称。另外请注意,我的文档根目录中有多个网站,所以我必须获取web
文件夹,使其脱离文档根目录。哇。)
<?php
// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require(__DIR__ . '/../../../your_app_name/vendor/autoload.php');
require(__DIR__ . '/../../../your_app_name/vendor/yiisoft/yii2/Yii.php');
$config = require(__DIR__ . '/../../../your_app_name/config/web.php');
(new yii\web\Application($config))->run();
我想将 Yii 2 应用程序部署到网站的子目录:
我的应用程序的目录结构如下所示:
|-- LICENSE.md
|-- README.md
|-- assets
|-- commands
|-- components
|-- composer.json
|-- composer.lock
|-- config
|-- controllers
|-- mail
|-- models
|-- requirements.php
|-- runtime
|-- test.php
|-- test.txt
|-- tests
|-- vendor
|-- views
|-- web
|-- yii
`-- yii.bat
According to Yii 2's documentation,为了部署,您应该将 web
文件夹重命名为服务器的文档根目录,如 public_html
、wwww
等。然后您将所有文件复制到文档根目录的父目录。但是没有说明如何将应用程序部署到文档根目录的 子目录。
主机是 Apache,我想知道使用别名是否是最简单的方法。不过,我不确定 the documentation on mod_alias 使用哪个指令或应该去哪里。
你推荐什么?
结果比我想象的要简单。
- 将
web
目录移动到您的文档根目录(例如,public_html
、www
等)。 - 将
web
目录重命名为您希望在域名后显示的方式。例如,如果您希望您的应用位于http://example.com/myapp
,则将web
重命名为myapp
。 - 将您的应用程序目录(现在应该减去
web
子目录)移动到文档根目录上方的一个目录。 - 在
web
目录下,更改index.php
中三个require
函数的路径。
我修改后的 index.php
看起来与下面类似。 (如果你复制粘贴,记得把 your_app_name
替换成你的应用程序目录的名称。另外请注意,我的文档根目录中有多个网站,所以我必须获取web
文件夹,使其脱离文档根目录。哇。)
<?php
// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require(__DIR__ . '/../../../your_app_name/vendor/autoload.php');
require(__DIR__ . '/../../../your_app_name/vendor/yiisoft/yii2/Yii.php');
$config = require(__DIR__ . '/../../../your_app_name/config/web.php');
(new yii\web\Application($config))->run();