2014-10-23 17:30:41 10076次浏览 3条回答 1 悬赏 5 金钱

yii2安装完之后,显示的路径是 http://loclahost/basic/web/index.php ,现在我把basic这个目录里面的内容上传到虚拟主机上了,然后通过 http://www.example.com/web/index.php 来访问,我想问有什么方法把web去掉,我没有配置apache主机目录的权限。

补充于 2014-10-23 18:05

很高兴的告诉各位,我想到办法解决这个问题了。

  1. 我的虚拟服务器里面有4个目录(databases、logs、others、wwwroot),wwwroot是默认访问的目录
  2. 将我本地项目的web目录修改为wwwroot
  3. 删除服务器上面的wwwroot目录,上传整个项目到虚拟服务器上,上传的地址与原来的wwwroot是同意目录

=======================================分割线=======================================

这是很久前的问题了,现在又有了更好的解决方案

https://github.com/kartik-v/yii2-app-practical-a/

这个项目可以很好的解决YII2.X如何部署到虚拟服务器上,而且用的是高级版,连用户登录都省了,我是不是很懒、、、

最佳答案

  • legend 发布于 2014-10-23 18:05 举报

    很高兴的告诉各位,我想到办法解决这个问题了。

    1. 我的虚拟服务器里面有4个目录(databases、logs、others、wwwroot),wwwroot是默认访问的目录
    2. 将我本地项目的web目录修改为wwwroot
    3. 删除服务器上面的wwwroot目录,上传整个项目到虚拟服务器上,上传的地址与原来的wwwroot是同意目录

    =======================================分割线=======================================

    这是很久前的问题了,现在又有了更好的解决方案

    https://github.com/kartik-v/yii2-app-practical-a/

    这个项目可以很好的解决YII2.X如何部署到虚拟服务器上,而且用的是高级版,连用户登录都省了,我是不是很懒、、、

  • 回答于 2014-10-23 17:37 举报

    漂亮显示问题 这个翻译略吊
    去掉web 要把网站根目录指向web 没有权限操作apache 貌似整不了

    3 条回复
    回复于 2014-10-23 17:42 回复

    首先,感谢大裤衩的回答。我个人认为如果是这样的话,那么是不是表示yii2.0开发的网站就没有办法在虚拟主机上部署了?

    回复于 2014-10-23 17:44 回复

    我也想问这个问题 :(

    回复于 2014-10-24 20:17 回复

    @legend: Yii面向的就是大型应用

  • 回答于 2014-12-27 17:54 举报

    1、web\Application:注消方法bootstrap内的/* Yii::setAlias('@webroot', dirname($request->getScriptFile()));

        Yii::setAlias('@web', $request->getBaseUrl()); */
    

    2、frontend/config/bootstrap.php增加两个别名为Yii::setAlias('@webroot', dirname(DIR) . '/web');
    Yii::setAlias('@web', '/frontend/web');

    2 条回复
    回复于 2014-12-27 18:01 回复

    补充首页信息路径要改,我是放到主目录了,不能贴图,下面是首页源码,主要是改了个路径,其它没变:
    defined('YII_DEBUG') or define('YII_DEBUG', true);
    defined('YII_ENV') or define('YII_ENV', 'prod');

    require(DIR . './vendor/autoload.php');
    require(DIR . './vendor/yiisoft/yii2/Yii.php');
    require(DIR . './common/config/bootstrap.php');
    require(DIR . './frontend/config/bootstrap.php');

    $config = yii\helpers\ArrayHelper::merge(

        require(__DIR__ . './common/config/main.php'),
        require(__DIR__ . './common/config/main-local.php'),
        require(__DIR__ . './frontend/config/main.php'),
        require(__DIR__ . './frontend/config/main-local.php')
    

    );

    $application = new yii\web\Application($config);
    $application->run();
    这样不管入口文件放到哪个目录,只要改下引用配制文件位置就可以了。
    注:由于更改了框架本身源码,以后更新版本会麻烦点,要稍注意下。

    回复于 2015-01-07 15:25 回复

    @853368845: 应该是DIR

您需要登录后才可以回答。登录 | 立即注册
legend
副总裁

legend 上海普陀

注册时间:2014-08-18
最后登录:2021-04-21
在线时长:299小时28分
  • 粉丝8
  • 金钱3455
  • 威望20
  • 积分6645

热门问题