将Yii 2应用程序部署到文档根目录的子目录中

Eri*_*sen 3 apache web-deployment yii2

我想将Yii 2应用程序部署到网站的子目录中:

http://example.com/subdirectory

我的应用程序的目录结构如下所示:

|-- 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
Run Code Online (Sandbox Code Playgroud)

根据Yii的2的文档,部署你应该在重命名web文件夹到您的服务器的文档根目录,比如public_html,wwww等等,那么你的所有文件复制到文档根目录的父目录.但没有说明如何将应用程序部署到文档根目录的子目录.

主机是Apache,我想知道使用别名是否是最简单的方法.我不确定从mod_alias的文档中使用哪个指令或它应该去哪里.

您有什么推荐的吗?

Eri*_*sen 5

结果比我想象的要简单.

  1. 移动web目录到您的文档根目录(例如public_html,www等).
  2. web目录重命名为域名后的显示方式.例如,如果您希望自己的应用程序存在http://example.com/myapp,请重命名webmyapp.
  3. 将应用程序的目录(现在应该是减去web子目录)移动到文档根目录上方的一个目录中.
  4. web目录中,更改三个require函数的路径index.php.

我修改过的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();
Run Code Online (Sandbox Code Playgroud)