刚刚升级到 Ubuntu 22.04,现在我的 phpadmin 无法加载。我收到以下错误
解析错误:语法错误,/usr/share/php/Symfony/Component/DependencyInjection/ContainerBuilder.php 第 272 行出现意外的“静态”(T_STATIC)
我打开了文件,这是该段中的具体代码。
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;
}
昨天升级之前,一切正常。有人有什么建议吗?
从 8.0 版本开始,PHP 允许
static
作为类方法的返回类型。显然你的 PHP 版本已降级。
是的,如果您运行的是 8 之前的 PHP 版本,例如 7.*,这会很痛苦。 在这里下载 5.2 并安装。
https://www.phpmyadmin.net/downloads/
完全清除以前的版本并保护安装目录的安全(取决于您的网络服务器)。 Symfony 组件毁了一切(第 272 行)。
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 版本,因为 php 8.* 版本需要 phpmyadmin 5.* 版本。
如果您使用 opcache 预加载,您可能会遇到 phpMyAdmin 的 Symfony 命名空间与您自己的应用程序的命名空间之间的冲突。我的解决方法是在不同版本的 PHP 上运行 phpMyAdmin
如果你连 phpmyadmin、php 和 linux 系统信息都无法提供,你如何指望别人来帮助你?