【问题标题】:Laravel on shared hosting issueLaravel 关于共享主机问题
【发布时间】:2018-04-25 06:33:06
【问题描述】:

我是一个相当新的 laravel 开发人员,我正在使用 laravel 5.5 开发我的网站,并且我已经尝试让我的网站上线几天了。它一直给我错误消息,例如:

警告:require_once(/dirpath/htdocs/vendor/composer/autoload_static.php):无法打开流:第 28 行的 /dirpath/htdocs/vendor/composer/autoload_real.php 中没有这样的文件或目录

致命错误:require_once():在 /dirpath/htdocs/vendor/ 中打开所需的 '/dirpath/htdocs/vendor/composer/autoload_static.php' (include_path='.:/usr/share/pear/') 失败composer/autoload_real.php 在第 28 行

因为它是一个没有 SSH 的免费共享托管服务器(我不能在那里运行 laravel 命令),所以我确实确保做所有事情,从关注文件夹结构(将公共内容放在外面)和每个项目文件/文件夹htdocs 内容(我知道它可能不安全,我只是想向客户展示网站几天的进度,然后再将其删除)。在将缓存推送到服务器之前,我还执行了 composer install、composer update、composer dump-autoload、各种 artisan 命令来清除缓存,但如您所见,错误仍然存​​在。

在我的最后进行了一些检查,我一直看到 autoload_real 一直试图要求的 autoload_static,随着自动加载类映射一起消失。造成这种情况的原因是什么?我应该怎么做才能使错误消失?

在此先感谢,我尝试了所有我知道的并做了一些研究,但我只是卡住了,希望你们能帮助解决这个问题。

另外:我现在无法真正让自己获得 vps 或付费托管。

2018 年 4 月 25 日更新: 我做了 composer update --no-dev 并将整个内容重新上传给供应商,但仍然是同样的错误,有人有建议吗?我真的被困在这一点上。

【问题讨论】:

  • 你有这个文件(autoload_real.php)吗?如果是,请检查权限。
  • @Jyotimishra 我有那个文件,我给了它 777 权限以确保
  • 您应该联系您的托管服务提供商 - 自动生成的文件可能会被视为恶意软件并被一些愚蠢的防病毒软件删除。

标签: php laravel laravel-5 composer-php shared-hosting


【解决方案1】:

在这种情况下,如果没有SSH,您将无法在服务器上执行任何操作。在您的本地副本中运行 composer update --no-dev。然后删除服务器的vendor 文件夹并将本地的vendor 文件夹复制到服务器。

【讨论】:

  • 我已经多次更新作曲家,--no-dev 有帮助吗?
  • 没有。 --no-dev 不会。
  • 知道为什么每次我尝试访问该网站时似乎都会删除 autoload_static 吗?是因为供应商文件夹内容吗? (我确保本地供应商和服务器供应商之间的一切都相同)
  • 好的,谢谢,我正在等待再次收到您的来信
【解决方案2】:

改为加载 psr-4: 在 autoload_real.php 中,请找到如下所示的代码:

$classMap = 需要 DIR 。 '/autoload_psr4.php';

至少这是一个让它起作用的肮脏技巧。一旦你有钱,那么以后可能会被转移到一个装备精良的服务器上。

【讨论】:

    猜你喜欢
    • 2016-05-21
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 2021-04-07
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    相关资源
    最近更新 更多