最初の例に基づいて簡単な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は必要ありません。