첫 번째 예제를 기반으로 간단한 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는 일반적으로 데비안에 있습니다)
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'
우분투 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
웹 서버 다시 시작
답변2
Ubuntu 18.04는 더 이상 표준에서 지원되지 않습니다., 그래서 Ondřej Surý는 이에 대한 패키지 제공을 중단했습니다(그의 FAQ에 설명된 대로).
현재 Ubuntu 18.04에서는 이 문제를 해결할 수 있는 좋은 패키징 방법이 없다고 생각합니다.
우분투 22.04에서 php8.1-yaml
사용 가능우분투 저장소에서, 추가 PPA가 필요하지 않습니다.