방금 VPS를 구입했는데 PHP5.3.3이 함께 제공되었는데 이는 우리 웹 사이트에 적합하지 않았기 때문에 PHP5.6.7을 성공적으로 설치하고 Plesk에 성공적으로 등록했습니다.
문제의 웹사이트에 대해 Plesk의 호스팅 설정에서 5.6.7을 선택했는데 모든 것이 잘 작동했습니다. 보면 phpinfo()
올바른 버전이 사용되고 있음을 알 수 있습니다.
만족스러우면 웹사이트에 필요한 다른 두 가지 확장 프로그램인 imagick과 memcache를 설치했습니다. 올바른 php.ini 파일에 확장 기능을 추가하고(phpinfo에서 올바른 경로 가져오기) 아파치를 다시 시작하면 둘 다 오류 없이 잘 설치되는 것 같습니다.
extension=memcache;
extension=imagick;
$ service httpd restart
이것이 내가 문제를 보는 곳이다. phpinfo를 확인했는데 확장 기능이 표시되지 않으며 내 애플리케이션에서 이를 확인했습니다.
if (extension_loaded('imagick')) {
echo 'IMagick extension loaded okay.';
} else {
echo 'IMagick extension not loaded! Meh!';
}
그런 다음 이 명령을 실행하여 확장에 사용되는 폴더를 찾습니다.
$ php-config --extension-dir
다음을 반환합니다.
/usr/lib64/php/modules
하지만 phpinfo를 확인해보면 extensions_dir
다음과 같습니다.
/php/php-5.6.7/lib/php/extensions/no-debug-non-zts-20131226
그런 다음 확장 기능이 있는 확장 디렉토리를 조사하여 imagick.so
더 많은 조사를 수행했습니다 /usr/lib64/php/modules
. 확장 기능이 있지만 phpinfo 디렉토리에는 확장 기능이 없어야 한다고 나와 있습니다. 또한 Plesk로 가서 5.3.3으로 다시 전환하고 phpinfo의 내용을 확인하여 이를 확인했습니다. 내가 설치한 두 확장 프로그램이 모두 나열되어 있고 잘 작동하고 있습니다! 잘 설치되었지만 잘못된 PHP 버전이 있는 것 같습니다.
나는 확장을 현재 위치에서 있어야 하는 위치로 복사하려고 한다고 생각했습니다.
$ cp /usr/lib64/php/modules/imagick.so /php/php-5.6.7/lib/php/extensions/no-debug-non-zts-20131226/imagick.so
그리고 httpd를 다시 시작하기 전에 파일이 새 폴더에 있는지 테스트했지만 다시는 운이 없었습니다.
확장 기능(및 모듈)이 5.6.7 디렉토리가 아닌 PHP5.3.3 디렉토리에 설치되는 것은 분명합니다. 그런데 어떻게 이런 일이 발생합니까? cd /php/php-5.6.7
먼저 디렉터리를 변경한 다음 설치 명령을 실행 해야 합니까 ? 다음은 루트로 로그인한 후 imagick을 설치하는 데 사용한 유사한 명령입니다.
$ yum install ImageMagick ImageMagick-devel
$ pecl install imagick
$ echo "extension=imagick.so" > /etc/php.d/imagick.ini
imagick을 새로 설치하는 데 필요한 명령을 올바른 PHP 버전과 함께 공유해 줄 수 있는 친절한 사람이 있습니까? 아니면 문제를 해결하는 쉬운 방법을 공유하시겠습니까?
이 문제를 해결하는 데 도움을 주시면 정말 감사하겠습니다.
도움이 될 경우를 대비해 PHP5.6.7을 설치하는 데 사용한 GIST는 다음과 같습니다.
답변1
PHP5.3.3을 제거하고 imagemagic을 설치합니다. yum이 화면에 인쇄하는 내용을 읽어보세요(PHP5.3.3을 다시 설치하지 않는 경우).
PS 방금 당신이 실제로 무엇을 했는지 읽었습니다. PHP5.6을 컴파일했지만 패키지 관리자에서 더 이상 지원하지 않습니다. PHP5.6이 필요한 이유는 무엇입니까? CentOS에 PHP5.4를 설치하기 위해 아무것도 컴파일할 필요가 없습니다.