在 Ubuntu 18.04 上安装 PHP 8.0 Yaml 扩展

在 Ubuntu 18.04 上安装 PHP 8.0 Yaml 扩展

我根据第一个示例编写了一个简单的 php。

https://www.php.net/manual/es/function.yaml-parse.php

我有...

Fatal error: Uncaught Error: Call to undefined function yaml_parse() in /var/www/html/p.php:33 Stack trace: #0 {main} thrown in /var/www/html/p.php on line 33

我使用 ondrej 存储库来安装 php。

root@hidra:~# cat /etc/apt/sources.list.d/ondrej-ubuntu-php-bionic.list 
deb http://ppa.launchpad.net/ondrej/php/ubuntu bionic main
deb-src http://ppa.launchpad.net/ondrej/php/ubuntu bionic main

没有安装 yaml 扩展的包。

apt-file search phpize
apt-file search php8.0-yaml
apt-file search php8.2-yaml

好吧,让我们尝试用 phpize 来编译它。

没有 phpize 或 php8.0-dev (在 debian 中 phpize ussualy 就在那里)

root@hidra:~# apt-get install php8.0-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package php8.0-dev
E: Couldn't find any package by glob 'php8.0-dev'
E: Couldn't find any package by regex 'php8.0-dev'

我也尝试过 Ubuntu 22.04。 ondrej 没有 php8.x-dev php8.x-yaml。并且 php-dev o php-yaml 尝试安装 php7.2 版本。

此外,PECL 上的 ymal 代码需要 php 7。

在这种情况下安装它的正确方法是什么?

我用过https://github.com/dallgoot/yaml解决它,但我对这个问题很好奇。

答案1

安装 YAML 扩展: yaml_parse() 函数由 PHP 扩展提供,默认情况下未启用。您需要安装并启用 PHP 的 YAML 扩展。

在基于 Debian 的系统(如 Ubuntu)上,您通常可以使用以下命令安装它:

sudo apt-get update
sudo apt-get install php-yaml

或者

sudo pecl install yaml

安装后,您需要通过将以下行添加到 php.ini 文件来启用扩展:

extension=yaml.so

重新启动网络服务器

答案2

Ubuntu 18.04 不再受到标准支持,因此 Ondřej Surý 停止为其提供软件包(正如他的常见问题解答中所解释的)。

我认为目前 Ubuntu 18.04 上还没有一个很好的打包方法来解决这个问题。

在 Ubuntu 22.04 上php8.1-yaml可用在 Ubuntu 存储库中,不需要额外的 PPA。

相关内容