我根据第一个示例编写了一个简单的 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。