为什么phpMyAdmin在Ubuntu升级到22.04后停止工作?



刚刚升级到Ubuntu 22.04,现在我的phpadmin无法加载。我得到以下错误

解析错误:语法错误,意外'static' (T_STATIC)在/usr/share/php/symfony/component/dependencyinjection/ContainerBuilder.php第272行

我打开文件,这里是该段中的特定代码。

public function addResource(ResourceInterface $resource): static
{
if (!$this->trackResources) {
return $this;
}
if ($resource instanceof GlobResource && $this->inVendors($resource->getPrefix())) {
return $this;
}
$this->resources[(string) $resource] = $resource;
return $this;
}

昨天升级之前,一切都很好。有人有什么建议吗?

我使用的是php7.4.30,我的修复是升级phpmyadmin。

这里有一个简单的指南:

https://devanswers.co/manually-upgrade-phpmyadmin/

从8.0版本开始,PHP允许static作为类方法的返回类型。你的PHP版本降级了

是的,如果您运行的是早于8的PHP版本,比如7.*,这是一种痛苦。在这里下载5.2并安装。

https://www.phpmyadmin.net/downloads/

完全清除你以前的版本,并保护你安装它的目录(取决于你的web服务器)。Symfony组件毁了一切(第272行)。

  • 升级php到8.x
  • 在apache中切换php版本:
cd /etc/apache2/mods-enabled/
sudo rm php7.4.conf
sudo rm php7.4.load
sudo ln -s ../mods-available/php8.0.load php8.0.load
sudo ln -s ../mods-available/php8.0.conf php8.0.conf

在结尾,重新启动apache:

sudo /etc/init.d/apache2 restart

你必须检查你的phpmyadmin版本Coz在php 8。* version phpmyadmin*版本将被要求。

如果你正在使用opcache预加载,你可能会遭受phpMyAdmin的Symfony命名空间和你自己的应用程序之间的冲突。我的解决办法是在不同版本的PHP上运行phpMyAdmin

最新更新