설명

설명

새 서버로 마이그레이션했는데 이제 다음 오류가 발생합니다.

 Fatal error: Call to undefined function json_encode() in /home/weddings/public_html/includes/common.inc on line 5105

PS php5-json 설치로는 문제가 해결되지 않습니다.

답변1

다른 stackexchange 사이트에서 요청했기 때문에 이것을 중복으로 표시할 수도 없고 표시해서도 안 됩니다.이것질문을 통해 현재 겪고 있는 문제에 대한 답을 얻을 수 있습니다. 해당 질문이 향후 삭제될 경우를 대비해 그 내용은 다음과 같습니다. 이 이후에 작성된 모든 내용은 내 작업이 아니라 @MirroredFate의 작업입니다.

짧은 답변:

sudo apt-get install php5-json

그럼 당연히Apache를 다시 시작했는지 확인하세요:

sudo service apache2 restart

또는 PHP-FPM을 사용하는 경우:

sudo service php5-fpm restart

설명

데비안은 라이센스 충돌로 인해 PHP 5.5rc2부터 이전 JSON 확장을 제거했습니다.

그만큼JSON 라이선스다음과 같은 조항이 있습니다.

소프트웨어는 악이 아닌 선을 위해 사용되어야 합니다.

이로 인해 문제가 발생합니다.자유 소프트웨어 재단의 자유 소프트웨어 정의이는 다음과 같이 말합니다.

어떤 목적으로든 프로그램을 실행할 수 있는 자유(자유 0).

FSF는 계속해서구체적으로 JSON 라이선스를 무료가 아닌 것으로 나열하세요..

네 좀 어리석은 것 같습니다. 그럼에도 불구하고 데비안은 비호환 JSON 확장을 제거하고 대신교체 확장이는 기능적으로 동일합니다.

명확하게 말하자면, PHP 자체는 JSON을 제거하지 않았습니다.아직 마스터에요. 이것은 배포판/패키지 관리자 문제입니다.

라스무스는 꽤 명확하게 설명합니다.:

우리는 json을 제거하지 않았으며 내장된 json 지원 없이는 PHP 버전을 출시하지 않을 것입니다. 5.5의 모든 변경 사항은 우리가 제어할 수 없는 배포판 패키징을 사용하고 있기 때문입니다.

자세한 내용은

http://iteration99.com/2013/php-json-licensing-and-php-5-5/

http://liorkaplan.wordpress.com/2013/06/01/bye-bye-non-free-php-json-extension/

https://bugs.php.net/bug.php?id=63520

http://philsturgeon.co.uk/blog/2013/08/fud-cracker-php-55-never-lost-json-support

관련 정보