【问题标题】:Deploying Yii2 into shared hosting, Directly to basic template folder部署 Yii2 到共享主机,直接到基本模板文件夹
【发布时间】:2018-01-27 13:24:06
【问题描述】:

我已经阅读了 Yii2 官方网站上的文档,将 yii2 部署到共享主机中:http://www.yiiframework.com/doc-2.0/guide-tutorial-shared-hosting.html,以及关于此的讨论:stackoverflow

所以,我决定使用 sftp 上传 yii2 文件夹。 这是我的共享主机中的目录列表。

access-logs
etc
logs
public_ftp
public_html
ssl
www (this is a link folder to public_html)

您知道,因为共享主机可以保留域直到 5 个域, 是否可以将 yii2basic 文件夹上传到 public_html 文件夹中?

所以结果是这样的:

access-logs
etc
logs
public_ftp
public_html
    -basic
        - bunch of yii folders here
ssl
www (this is a link folder to public_html)

因为现在,如果我想访问我的网络,我必须这样写:mydomain.com/basic/public_html/index.php

我需要这样的:

mydomain.com/index.php

请指导我。

【问题讨论】:

  • 您有能力将public_html 设为其他文件夹的符号链接吗?
  • 默认情况下,“www”文件夹是指向 public_html 的符号链接
  • 这不是我问的...
  • 这是云服务器上最简单的 yii 部署指南,您可以轻松创建 Web 根路径以从 domain.com 为您的应用程序提供服务。 cloudways.com/blog/install-yii-2-framework-on-cloud

标签: php deployment yii2


【解决方案1】:

是的,您可以将其上传到 public_html 文件夹中,但是我现在使用 yii2 基本应用程序面临的唯一问题是漂亮的 URL,您可以克隆或上传 public_html 文件夹中的全部内容,我做了什么如下,唯一不同的是我有一个web文件夹而不是www

目录结构

public_html
  assets
  commands
  config
  controller
  mail
  migrations
  models
  runtime
  tests
  vendor
  views
  web

public_html/.htaccess

<IfModule mod_rewrite.c>
    Options +SymLinksIfOwnerMatch
    RewriteEngine On
</IfModule>

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_URI} ^/.*
    RewriteRule ^(.*)$ web/$1 [L]

    RewriteCond %{REQUEST_URI} !^/web/
    RewriteCond %{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ web/index.php
</IfModule>

public_html/web/.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /index.php?/$1 [L]

这可行,但在 URL 中它显示 /web/index.php?r=site/index 并且一旦我在配置文件 prettyUrl 中打开 urlManager 它只会显示默认索引页面,并且我尝试打开的每个链接最终都会出现在主页视图虽然地址栏中的 URL 是正确的,并且 urlManager 正确解析了规则,但我到此为止。

【讨论】:

    【解决方案2】:

    如果您不介意根文件夹中有一堆 Yii 2 文件夹,只需将所有基本模板文件夹(web 除外)和文件放在根文件夹中即可。然后将web文件夹的内容放到public_html文件夹中。

    应该是这样的:

    access-logs
    assets
    commands
    config
    controllers
    etc
    logs
    mail
    models
    public_ftp
    public_html
        // here should be the content of web folder of Yii 2 basic app
    runtime
    ssl
    test
    views
    widgets
    

    【讨论】:

      猜你喜欢
      • 2015-05-20
      • 1970-01-01
      • 2018-06-05
      • 1970-01-01
      • 2020-09-30
      • 2019-09-25
      • 1970-01-01
      • 2020-02-07
      • 2018-12-02
      相关资源
      最近更新 更多