올바른 StackExchange에 게시하고 있기를 바랍니다.
PHP CLI를 사용하면서 매우 이상한 문제에 직면했습니다. 저는 Symfony 프레임워크를 사용하고 있으며 /etc/php5/cli/php.ini
.
긴 기사보다 다음을 시청해 보세요.
1/ 일반 출력, 확장 없음
app/console doctrine:schema:update
Nothing to update - your database is already in sync with the current entity metadata.
→ 확인 참고: 앱/콘솔은 shellbang이 포함된 PHP 스크립트입니다.
app/console doctrine:schema:update --force
Nothing to update - your database is already in sync with the current entity metadata.
→ 확인( --force
PHP가 스크립트에 전달한 Symfony 옵션입니다)
2/ PHP에 두 가지 확장 기능 추가
php.ini를 편집합니다 sudo vim /etc/php5/cli/php.ini
. 두 줄을 추가합니다.
extension=cairo.so
extension=php_gtk2.so
이러한 확장은 완벽하게 작동합니다. 경고도 없고 오류도 없습니다.
3/ PHP가 "충돌"했습니다. 관련 없는 두 개의 확장이 방금 추가되었습니다.
app/console doctrine:schema:update
Nothing to update - your database is already in sync with the current entity metadata.
→ 확인... 하지만:
app/console doctrine:schema:update --force
PHP Fatal error: Option inconnue --force in Unknown on line 0
Could not startup.
→ 뭐?심포니의 잘못은 아닙니다...
참고: 프랑스어만을 의미합니다 Option inconnue
.Unknown option
다른 명령, Symfony 명령 또는 독립형 PHP 스크립트에 동일한 효과가 있습니다.
결론적으로:이제 PHP에는 호출된 PHP 스크립트에 옵션을 전달하는 이상한 방법이 있습니다.
저도 php
앞에 올려놨는데 app/console
별 변화가 없네요. php.ini에서 확장 기능을 주석 처리하거나 삭제하면 모든 것이 잘 작동합니다. 이 두 줄만 관련됩니다.
편집: PHP를 5.5.12에서 5.6.3으로 업그레이드했는데 동일한 문제가 발생했습니다.
답변1
저는 Linux에서 PHP 5.6.1(cli)을 실행하고 있으며 drush를 사용하려고 할 때 똑같은 문제에 직면했습니다. PHP cli 스크립트를 실행할 때마다 다음이 수신됩니다.
PHP 치명적인 오류: 알 수 없는 옵션 --whatever-option-you-have
간단한 스크립트를 직접 만들었는지 확인하려면 다음을 수행하세요.
#!/usr/bin/env php
<?php
echo ("Test");
php.ini에서 "php_gtk2.so"를 제거하면 오류가 사라졌습니다.
이 문제는 php_gtk2.so 또는 여기에 추가한 확장에서만 발생합니까? cairo.so를 떠나면 동일한 오류가 발생합니까?
이것은 PHP의 정말 이상한 동작입니다!