【问题标题】:Class not found error when moving to host?移动到主机时找不到类错误?
【发布时间】:2015-12-24 01:05:32
【问题描述】:

我正在尝试制作一个新的 Facebook 应用程序并从 Asmallorange 获得托管。该应用程序在我运行 PHP 5.5.14 的本地环境中完美运行。

该应用由 Composer 导入并自动加载到我的应用中的包组成。

该应用程序本身是一个 Slim 应用程序,由 Laravel 的 Eloquent ORM 组成。我按照在线教程将这两者集成在一起,它在我的本地环境中完美运行。

代码如下。

require 'vendor/autoload.php';  

use Illuminate\Database\Capsule\Manager as Capsule;  

$capsule = new Capsule; 

$capsule->addConnection(array(
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'test',
    'username'  => 'test',
    'password'  => 'password',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => ''
));

$capsule->bootEloquent();

它在我的本地环境中完美运行。只是不在服务器上并因此失败:

PHP Fatal error:  Class 'Illuminate\Database\Capsule\Manager' not found in /home/moz/public_html/app/index.php

参考上面的第 2 行。我到处找,还没有找到解决办法。

【问题讨论】:

  • 如何将应用部署到服务器?
  • 我正在使用这个小的 PHP 部署工具:github.com/banago/PHPloy
  • 您是否检查过服务器以查看应该包含illuminate/database 包的vendor 目录是否已正确部署。因为通常 not found 在这种情况下可能意味着两件事:Composer 未正确完成自动加载或包含必要类的文件可能丢失。部署过程可能出现问题。
  • 大家好,非常感谢您的回复。一切都正确上传到我的服务器上,所以我联系了我的主机来调查这个问题。显然,他们有一个旧版本的 PHP 并对其进行了升级。该问题现已解决。

标签: php laravel composer-php


【解决方案1】:

检查您的部署工具是否已上传在vendors/composer 目录中找到的autoload_classmap.php 文件。上传这个应该可以解决问题。

或者,您可以让 composer 在服务器上重建 autoload_classmap.php 文件,方法是在与 composer 相同的目录中的命令行中运行以下命令...

php composer dump-autoload

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    相关资源
    最近更新 更多