abei1982 2017-04-09 09:22:35 6069次浏览 1条回复 1 1 0

这个世界上除了服务器,还有一个东西叫虚拟主机,本文讲解yii2程序如何部署到虚拟主机上~

本系列分两节

  • 基础版
  • 高级版

第一节 Begin...

基础版

其实不改动也可以,但是你的网址要总带一个尾巴,类似于http://xx.com/**web**/index.php?r=site/index 一样,很煞风景,跟着北哥对yii2-basic进行一次小手术,就足以去掉它。

我们假设当前虚拟主机也不支持url重写,就是说你没办法通过重写规则搞定它。

首先将web目录下的所有文件都转移到程序目录下,这个时候会提示assets已经存在,直接跳过不管它,然后删除web目录。

Snip20170408_21.png

转移后是上面这个样子。

接下来改动index.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__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/config/web.php');

(new yii\web\Application($config))->run();

然后访问,原理上这样就可以了。你发现是不是可以使用了。

但是运行后出现了一个问题,你发现assets文件夹冲突了

Snip20170408_22.png

资源文件自动生成的东东和源文件冲突了,这样很不好,我们现在将自动生成的文件转移一下,在根目录建立一个public目录并且赋予写权限。

Snip20170408_24.png

然后配置一下config/web.php文件中的components,增加

'assetManager'=>array(
     // 设置存放assets的文件目录位置
     'basePath'=>'public',
     // 设置访问assets目录的url地址
     'baseUrl'=>'/public',
 ),

然后访问http://xx.com/index.php?r=controller/action,一起正常,且发现自动生成的资源乖乖的去public里报道了。

Snip20170409_25.png

到此为止,基础版支持虚拟主机就完成了。

北哥兄弟连 yii2干货和原创视频 http://nai8.me/

觉得很赞
您需要登录后才可以回复。登录 | 立即注册