더 짧은 대답.
당황하지 마십시오! 아파치 서버가 어떤 PHP 버전을 사용하고 있는지에 대해 걱정한다면, phpinfo()
항상 출력에 주의를 기울여야합니다. Apache PHP 모듈과 PHP 명령 행 바이너리는 서로 간섭하지 않는 두 가지입니다.
실제로 Apache를 올바르게로드하도록 조정하는 한 Apache에서 작업하려는 다양한 PHP 버전을 컴파일하고로드 할 수 있습니다. PHP 페이지를 파싱하는 Apache의 경우 PHP 명령 행 인터페이스가 작동하지 않습니다.
PHP의 커맨드 라인 버전은 단순히 커맨드 라인 특정 작업을 위해 존재하며 Apache 용 PHP 모듈은 절대 만지거나 사용하거나 필요로하지 않습니다.
더 긴 대답.
당신은 이것을 말합니다 :
php
사용 중인 버전 을 알고 싶었 으므로 표준 스크립트를 작성했습니다.
phpinfo();
내 응용 프로그램에 필요한 PHP 버전 5.6.10- 올바른 PHP 버전을 제공합니다. 터미널에서 시도했을 때 :
php -i or php -v
필자가 필요로하지 않는 PHP 버전 5.3.2를 보여줍니다.
명령 행에서 사용 가능한 PHP 버전은 모듈로로드 된 PHP 버전과 100 % 관련이 없습니다. 이것들은 완전히 별개의 것입니다.
따라서 웹 응용 프로그램이 사용하는 PHP 버전이 걱정된다면 phpinfo()
버전 5.6.10이 표시되고 100 % 괜찮습니다.
PHP의 커맨드 라인 버전은 완전히 별개의 시스템 아이템입니다. 따라서 중요한 것은의 출력입니다 phpinfo()
.
어떤 이유로 Apache와 함께 다른 버전의 PHP를 사용하려면 컴파일 된 Apache PHP 모듈을 어딘가에 설치하고 시스템의 Apache 구성에서이 줄을 추가 또는 조정하기 만하면됩니다.
LoadModule php5_module /path/to/php/and/the/module/for/apache2/libphp5.so
그리고 libphp5.so
아파치가 PHP를 파싱하는 데 사용 하는 경로를 조정 한 다음 아파치를 다시 시작하면 비즈니스가 시작됩니다.
예를 들어, 어느 시점에서 PHP 5.3.5를 실행하는 Ubuntu 12.04 시스템에서 사용하기 위해 소스에서 PHP 버전 5.1.6을 컴파일해야했습니다 (GD 라이브러리 지원). 서버의 PHP 모듈 로딩 파일에서 :
/etc/apache2/mods-available/php5.load
나는 이런 줄을 가지고 있었다 :
# LoadModule php5_module /usr/lib/apache2/modules/libphp535.so
LoadModule php5_module /usr/lib/apache2/modules/libphp516-gd.so
한 줄은 어떻게 주석 처리되고 libphp535.so
다른 한 줄 libphp516-gd.so
은 주석 해제됩니까? 내가 한 것은 기본 PHP 5.3.5 libphp5.so
Apache 모듈 libphp535.so
의 이름을 버전 번호로 바꾸어 참조 할 수 있도록 한 다음 PHP 5.1.6 (GD 라이브러리 지원) 모듈의 이름을 지정 libphp516-gd.so
했기 때문에 뿐만 아니라. 이 방법으로 시스템에서 나에게 두 가지를 모두 사용할 수 있습니다.
그리고 내가 처음에 말했듯이, 명령 행에 사용 된 PHP 버전은 Apache PHP 모듈과 전혀 관련이 없습니다. 따라서 시스템에 여러 가지 버전의 Apache PHP 모듈을 배치 할 수 있습니다. 설정을 조정하고 Apache를 다시 시작하기 만하면 Apache에서 지정한 PHP 버전을 사용할 수 있습니다.