문제

알겠습니다. 현재 상황을 분석해 보면 다음과 같습니다.

  1. <? $foo = new Imagick(); ?> 명령줄에서 실행할 때 오류 없이 작동합니다(예: sudo php myscript.php
  2. 그러나 웹 브라우저를 통해 실행하면 Fatal error: Class 'Imagick' not found in /var/www/lhackwith_www/test_html/magic.php on line 1.
  3. 마술 지팡이가 설치되지 않았습니다
  4. Extension=imagick.so는 phpInfo()에 따라 성공적으로 읽혀지는 imagick.ini에 있습니다.
  5. 그러나 imagick은 PHP 정보에 표시되지 않습니다.

어떤 조언이라도 주시면 감사하겠습니다.

도움이 되었습니까?

해결책

나는 당신이 올바른 php.ini를 편집했다고 확신합니다 ...
Webserver의 error.log를 확인 했습니까? 해당 테스트의 로그 레벨을 높이고 싶을 수도 있습니다. 아파치라면 참조하십시오 http://httpd.apache.org/docs/2.2/mod/core.html#loglevel 그리고 http://httpd.apache.org/docs/2.2/logs.html#errorlog

아니면 어쩌면 LDD- 인쇄 공유 라이브러리 종속성 이 문제에 대해 약간의 빛을 비출 수 있습니다.

<?php
$p = get_cfg_var('extension_dir');
$modpath = $p.DIRECTORY_SEPARATOR.'imagick.so';
echo $modpath, is_readable($modpath) ? ' readable':' not readable', "<br />\n";
echo '<pre>';
passthru('ldd '.$modpath.' 2>&1'); // in case of spaces et al in the path-argument use escapeshellcmd()
echo '</pre>';
명령 줄과 웹 서버를 통해이 스크립트를 실행하십시오. 누락 된 종속성에 대해 불평합니까?


edit2 : "내에서"실행되는 스크립트는 웹 서버가 확장을 볼 수 없습니다.
<?php
function foo($path) {
  if ( $path==($dir=dirname($path)) ) {
    return;
  }
  foo($dir);

echo is_dir ($ path)? 'd': ' -', is_readable ($ path)? 'r': '-', is_writable ($ path)? 'w': '-', is_executable ($ path)? 'x': '-', $ path, "u003Cbr /> N"; }

$modpath = get_cfg_var('extension_dir').DIRECTORY_SEPARATOR.'imagick.so'; foo($modpath);

다른 팁

Ubuntu를 12.04에서 12.10으로 업그레이드 한 후 Imagick과 비슷한 문제가있었습니다.

많은 충화 후 나는 결국 다른 패키지가 필요하다는 것을 발견하고 (php5?) : 다음과 같이 수정했습니다.

sudo apt-get install php5-imagick

어떤 운영 체제를 사용하고 있습니까? Mac OSX에서 기본적으로 일부 확장을 지나치게 고통스럽게 설치하는 몇 가지 문제가있었습니다. 그러나 대부분의 운영 체제에서 Imagick 설치는 정말 간단해야합니다.

명령 줄에서 php -i |를 입력하십시오 grep ini,로드 된 것으로 표시된 php.ini가 phpinfo ()가로드 중이라고 말하는 php.ini와 동일합니다. 이것들이 다르면 시작 해야하는 곳입니다. Extension = imagick.so가 두 INI 파일에 있는지 확인하십시오. 동일한 디렉토리에서 확장자를로드하고 있는지 확인하십시오 (99% 확률로 확장 할 수 있지만 누가 알고있는 사람은 예외가 될 수 있음).

(아마도) 두 php.ini 파일이 Imagick.을로드하고 있으며 여전히 작동하지 않는다고 확인한 후에는 여전히 작동하지 않습니다. Tail -f/Path/to/apache/error_log (물론 Apache를 사용한다고 가정하십시오. ) 및 Apache를 다시 시작하십시오. 라이브러리로드 및/또는 확장에 대한 PHP 경고를 찾고 있습니다. 바라건대 그것은 당신을 올바른 방향으로 가리킬 것입니다.

도움이 되었기를 바랍니다,

내가 한 일은 다음과 같습니다.

이미지의 방향을 DB에 저장한 다음 alternatiff를 사용하여 이미지를 저장된 방향으로 동적으로 회전합니다.이미지 조작이 필요하지 않습니다.

그래도 도와주셔서 감사합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top