1

我们有一个 silverstripe 网站,可以在 centos 网络服务器上正常运行。我被要求对这个站点进行修改,并且必须在我们的内部 Ubuntu 开发服务器上有一个工作副本。做网站的那个人早就走了,没有人知道这个项目。

我做了移动,转移了数据库并将配置文件更改为新设置。现在,每当我启动该网站时,我都会收到一个完整的页面或红色错误:

FATAL ERROR: call_user_func_array() expects parameter 2 to be array, null given
At line 404 in /home/user/site/sapphire/core/ViewableData.php
call_user_func_array(Array,) 
line 404 of ViewableData.php

ViewableData->XML_val(current_lang,,1) 
line 4 of .cache.home.user.site.mysite.templates.Layout.PageAccueil.ss

include(/home/user/site/silverstripe-cache/.cache.home.user.site.mysite.templates.Layout.PageAccueil.ss) 
line 197 of SSViewer.php

SSViewer->process(PageAccueil_Controller) 
line 189 of SSViewer.php

SSViewer->process(PageAccueil_Controller) 
line 296 of Controller.php

Controller->defaultAction(index,Array) 
line 267 of Controller.php

Controller->run(Array) 
line 22 of ModelAsController.php

ModelAsController->run(Array) 
line 27 of RootURLController.php

RootURLController->run(Array) 
line 104 of Director.php

Director::direct() 
line 160 of main.php

据我所知,在我们的开发服务器和其他框架(zend 框架甚至 wordpress)上没有什么是“奇怪”的。这不是最新版本的 silverstripe 而是尝试更新它我遇到了同样的错误,所以我希望在更新它之前让它工作。

我们使用的是 silverstripe 2.2.2 版。

欢迎任何帮助或指点!编辑:我确实尝试过加载网站,/dev/build/?flush=1/build/?flush=1在这些页面上仍然出现相同的错误。还应正确设置缓存文件。

4

1 回答 1

2

1)您可能想尝试?flush=all(除非您对数据库进行了任何更改,否则您不需要/dev/build

2) 我的第一个猜测是 PHP 版本。你在旧版和开发版上都有相同的版本吗?SS 2.2 不适用于 PHP 5.3 - 如果我没记错的话。

从 2.2 升级到 2.4 时可能会遇到问题 - 有一些变化,但它们应该相对较小。如果你还没有这样做,?flush=all你可能仍然会从以前的版本中得到错误。

Or you might even want to clear out the silverstripe cache directory manually (silverstripe-cache or if that doesn't exist a few directories down in /tmp). I always do that when copying my SS files from one server to another as old cache files can lead to very weird behavior...

于 2011-11-17T12:47:58.117 回答