在本地开发并一切正常后,我将所有新代码(包括许多类和模型)推送到服务器。我接着得到一个错误
production.ERROR: exception 'SymfonyComponentDebugExceptionFatalErrorException' with
message 'Class 'photo' not found' in
/var/www/vhosts/domain.com/httpdocs/bootstrap/compiled.php:6114` error.
我试过:
composer install
composer update
composer dumpautoload -o
php artisan optimize --force
php -dmemory_limit=1G artisan optimize -f
当我运行php artisan optimize --force
时,
我得到以下错误:
PHP Fatal error: Allowed memory size of 33554432 bytes exhausted
(tried to allocate 72 bytes) in
/var/www/vhosts/domain.com/httpdocs/vendor/nikic/php-parser/lib/PHPParser/NodeAbstract.php
on line 34
在composer返回Compiling common classes
之后,它将我引导到-dmemory_limit ...
命令
我已经卸载了composer,删除了供应商目录,删除了composers缓存,删除了compiled.php文件和其他一些东西,但仍然无法绕过最初的Class Photo错误。使用类似的LAMP设置,本地一切都很好。我不知所措。还有什么我可以试试的吗?
我发现了问题。在我雄辩的人际关系中,我的模特名字都是小写的。我不知道为什么这会在一台服务器上出现问题,而不是在另一台服务器。这只影响了2个新的模型/类,所以这只是我的疏忽。
所以我之前有:
public function photos()
{
return $this->hasMany('photo')->orderBy('sort', 'ASC');
}
我把它改成:
public function photos()
{
return $this->hasMany('Photo')->orderBy('sort', 'ASC');
}
你自己解决这个问题很好。但是我想了解一下为什么它在一台服务器上运行,而不是在另一台服务器。
Windows服务器不区分大小写。表示照片和照片相同。。
但当您选择linux服务器时,情况并非如此Linux服务器区分大小写。因此照片与照片不同。。
public function photos()
{
return $this->hasMany('photo')->orderBy('sort', 'ASC');
}
并将其更改为:
public function photos()
{
return $this->hasMany('Photo')->orderBy('sort', 'ASC');
}