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はありません(phpizeは通常Debianにあります)

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拡張機能をインストールして有効にする必要があります。

UbuntuなどのDebianベースのシステムでは、通常、次のコマンドを使用してインストールできます。

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

または

sudo pecl install yaml

インストール後、php.iniファイルに次の行を追加して拡張機能を有効にする必要があります。

extension=yaml.so

Webサーバーの再起動

答え2

Ubuntu 18.04は標準ではサポートされなくなりました。だからOndřej Surýはこれに対するパッケージの提供を中止しました(彼のよくある質問で説明されているように)。

現在、Ubuntu 18.04では、この問題を解決するための良いパッケージング方法がないと思います。

Ubuntu 22.04でphp8.1-yaml利用可能Ubuntuストアで、追加のPPAは必要ありません。

関連情報