XAMPP에서 두 개의 PHP 버전을 사용하는 방법이 있습니까?


157

새 제품에는 PHP 7이 필요하기 때문에 PHP 7.0에서 XAMPP를 실행하고 있습니다.

그러나와 같은 기능을 사용하는 오래된 프로젝트가 있습니다 mysql_connect. PHP 7.0에서 제거되었습니다.

그렇다면 XAMPP에서 PHP 버전을 쉽게 변경하는 방법이 있습니까?

참고 : 개발자 (직원)가 될 수없는 결정으로 인해 이전 프로젝트를 새 버전과 호환되도록 업그레이드하지 마십시오.


업그레이드 이외의 작업에 대한 해결 방법이 있다고 생각하지 않습니다. 또한 오래되고 더 이상 사용되지 않는 API를 호환시키는 방법을 찾지 않아야합니다. 완전히 제거해야합니다. 분명히 그것은 많은 작업이지만 마음의 평화를 보장 할 것입니다
Rotimi

1
MAMP에서 PHP 버전을 전환하려고 할 때 Apache를 중지했다가 시작합니다. 고통이지만 작동합니다.
Scott C Wilson

듀얼 부팅 가능

당신은 그 각각에 대해 PHP 버전 지정 가상 호스트를 만들 수 있습니다
레프 벤 Lazrek

2
@IlmariKaronen 개발 워크 스테이션에서 서로 전환하고 싶습니다. 프로젝트 A를 수행 할 때는 PHP 5를 사용하고 싶습니다. 프로젝트 B를 수행 할 때는 PHP 7을 사용하고 싶습니다. 가장 큰 등급의 답변이 작동하지 않아서 찾을 수 없습니다 ... 그리고 많은 사용자 ..
I 가장 멍청한 사람입니다

답변:


133

단일 xampp 설치로 여러 PHP 버전 을 동시에 사용할 수 있는데 왜 PHP 버전간에 전환해야 합니까? 단일 xampp 설치로 두 가지 옵션이 있습니다.

  1. 이전 프로젝트의 디렉토리에 대해서만 이전 PHP 버전을 실행하십시오. 대부분의 경우에 해당되며 이전 PHP 버전으로 실행하려는 하나 또는 두 개의 이전 프로젝트가있을 수 있습니다. 해당 프로젝트 디렉토리에 대해서만 이전 PHP 버전을 실행하도록 xampp를 구성하십시오.

  2. 별도의 xampp 포트에서 이전 PHP 버전을 실행하십시오. 때때로 새로운 PHP 버전과 이전 PHP 버전에서 동일한 프로젝트를 실행해야 할 때 때때로 이전 프로젝트를 최신 PHP 버전으로 업그레이드 할 수 있습니다. 그런 다음 다른 포트 (예 : 8056)에 이전 PHP 버전을 설정할 수 있으므로 http://localhost/any_project/xampp 로 이동하면 PHP 7이 http://localhost:8056/any_project/실행 되고 xampp 로 이동하면 PHP 5.6이 실행됩니다.

  3. 가상 호스트에서 이전 PHP 버전 실행 : localhost에서 PHP 7을 사용하면서 localhost56과 같은 가상 호스트를 생성하여 PHP 5.6을 실행할 수 있습니다.

설정할 수 있습니다.

1 단계 : PHP 다운로드

따라서 xampp에서 PHP 7을 실행하고 있으며 PHP 5.6과 같이 이전 PHP 버전을 추가하려고합니다. php.net 에서 PHP zip 아카이브의 nts (Non Thread Safe) 버전을 다운로드하고 ( 이전 버전의 아카이브 참조 ) 아래의 파일을 추출하십시오 c:\xampp\php56. 스레드 안전 버전에는 php-cgi.exe가 포함되어 있지 않습니다.

2 단계 : 구성php.ini

c:\xampp\php56\php.ini메모장에서 파일을 엽니 다 . 파일이 없으면 메모장에서 복사 php.ini-development하여 php.ini엽니 다. 그런 다음 다음 줄의 주석을 해제하십시오.

extension_dir = "ext"

3 단계 : 아파치 구성

열기 XAMPP 컨트롤 패널은 아파치에 대한 버튼을 config (설정)를 클릭, 클릭합니다 Apache (httpd-xampp.conf). 텍스트 파일이 열리고 파일의 맨 아래에 다음 설정이 적용됩니다.

ScriptAlias /php56 "C:/xampp/php56"
Action application/x-httpd-php56-cgi /php56/php-cgi.exe
<Directory "C:/xampp/php56">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

참고 : 원하는 경우 1-3 단계에 따라 xampp 설치에 더 많은 버전의 PHP를 추가 할 수 있습니다.

4 단계 (옵션 1) : [특정 PHP 버전을 실행하기위한 디렉토리 추가]

이제 PHP 5.6에서 실행될 디렉토리를 설정할 수 있습니다. 구성 파일의 맨 아래에 다음을 추가하여 디렉토리를 설정하십시오.

<Directory "C:\xampp\htdocs\my_old_project1">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</Directory>

<Directory "C:\xampp\htdocs\my_old_project2">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</Directory>

4 단계 (옵션 2) : [별도의 포트에서 이전 PHP 버전 실행]

이제 PHP v5.6을 포트 8056으로 설정하려면 다음 코드를 구성 파일의 맨 아래에 추가하십시오.

Listen 8056
<VirtualHost *:8056>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</VirtualHost>

4 단계 (옵션 3) : [가상 호스트에서 이전 PHP 버전 실행]

http : // localhost56 에서 PHP v5.6을 사용하기 위해 디렉토리 (htdocs56)에 가상 호스트 (localhost56)를 작성하려면 원하는 위치에 htdocs56 디렉토리를 작성하고 localhost56을 hosts 파일에 추가 한 후 ( 방법 참조 ) 다음 코드를 추가하십시오. httpd-xampp.conf 파일의 맨 아래에.

<VirtualHost localhost56:80>
    DocumentRoot "C:\xampp\htdocs56"
    ServerName localhost56
    <Directory "C:\xampp\htdocs56">
        Require all granted    
    </Directory>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</VirtualHost>

완료 : Apache 저장 후 다시 시작

구성 파일을 저장 한 후 xampp 제어판에서 아파치를 다시 시작하십시오. 옵션 2로 가면 xampp 제어판에 추가 포트 (8056)가 표시됩니다.

여기에 이미지 설명을 입력하십시오

오류 업데이트 :
'php-cgi.exe'스크립트에서 잘못된 헤더 : 잘못된 헤더

위의 오류가 발생하면 httpd-xampp.conf다시 열고 다음 # (해시 문자)를 주석으로 처리하십시오.

SetEnv PHPRC "\\path\\to\\xampp\\php"

9
안녕하세요,이 방법을 시도했지만 (4 단계 옵션 1) 스크립트 'php-cgi.exe'에서 잘못된 헤더를 얻었습니다. 잘못된 헤더 : <br />, 어떤 아이디어가 문제가 될 수 있습니까?
Priyanshu

@Priyanshu는 PHP 설치에 문제가 없습니까? php somefile.phpwihout 과 같은 명령 줄에서 PHP 파일을 실행할 수 있습니까 ?
Munim Munna

2
대답에는 더 이상 포함 할 코드가 포함 SetEnv PHPRC되어 있지 않으므로 주석 처리 할 수 ​​없지만 여전히 오류가 발생합니다. :(
Brett

1
안녕하세요. localhost : 8056을 실행하면 객체를 찾을 수 없습니다 페이지가 표시됩니다.
nas

1
xdebug로 여러 PHP 버전을 작업 할 수 있습니까? 나는Error message: End of script output before headers: php-cgi.exe
노먼

87

필요한 모든 버전의 PHP를 다운로드하여 자체 디렉토리에 배치 할 수 있습니다. 예 :

c:\php5\

c:\php7\

웹 서버 (Apache)에 사용할 PHP 버전을 알려 주면 적절한 모듈을로드하여 수행 할 수 있습니다. Apache에서는 파일 httpd.conf을 찾은 다음 적절한 행을 편집하여 이를 수행 할 수 있습니다 .

LoadModule php7_module c:\php7\libphp7.so

올바른 경로를 알아 내야합니다. 이것은 단지 설명을위한 것입니다.

httpd.conf서버를 저장 하고 다시 시작하십시오. 다시 시작하지 않으면 변경 사항이 적용되지 않습니다.

이 작업을 수행 할 수있는 GUI 스위치가 없으므로 .conf파일 을 편집 한 다음 Apache를 다시 시작 해야합니다 . 이 작업을 수행하는 데 몇 초 밖에 걸리지 않으며 버전을 주석 처리 할 수도 있으므로 "전환"에는 몇 번의 키 입력 만 필요합니다.

PHP 5를 사용하십시오 :

LoadModule php5_module c:\php5\libphp5.so
#LoadModule php7_module c:\php7\libphp7.so

PHP 7을 사용하십시오.

#LoadModule php5_module c:\php5\libphp5.so
LoadModule php7_module c:\php7\libphp7.so

여러 버전의 XAMPP 또는 이중 부팅이 필요하지 않거나 다른 시스템 또는 복잡한 해결 방법을 제안한 다른 "솔루션"을 사용할 필요가 없습니다. OP는 XAMPP를 사용하고 사용할 PHP 버전을 알려고합니다. 이는 가장 빠르고 효율적인 방법이며 XAMPP 설치는 하나만 필요합니다.

2017 년 11 월 1 일 편집 : 일부 사람들은 .soWindows에 파일 이 없다고 말합니다 . 내가 준 대답은 Mac에서 .so파일을 설정하는 방식 (에서 대신 파일을 사용함 .dll)에 맞게 조정되었습니다. 그러나 대답의 원칙은 여전히 ​​정확합니다. 당신은 아파치의 구성 파일을 사용하여 httpd.conf지정하는 PHP 모듈이 ( .so또는 .dll) 시스템에 있습니다. 따라서 Windows의 유일한 차이점은 파일 이름 및 / 또는 경로 위치입니다. 내가 제공 한 답변은 Apache / PHP의 바닐라 설치 (XAMPP가 전혀 없음)에도 정확합니다.


3
나는 다시 확인했다. 나는 그것을 찾을 수 없었다. 내 httpd.conf 파일을 확인하십시오. 이것의 사본입니다. freetexthost.com/sjxz4lh1i5 변경해야 할 줄을 찾으면 알려주십시오.
나는 가장 바보 같은 사람이다

2
XAMPP에 어떤 libphp7.so 및 conf의 파일에 어떤을 LoadModule 문자열이 없습니다
페데리코 Schiocchet

2
나는 또한이 항목을 찾을 수 없었다. 또한 내 PHP 디렉토리를 검색하여 .so 파일을 전혀 찾을 수 없었습니다.
Eoin

19
v3.2.2에서 라인은 xampp / apache / conf / extra / httpd-xampp.conf에 있습니다
Manuel

5
그것은 단지 한 줄이 아닙니다. httpd-xampp.conf의 많은 부분을 편집해야합니다. 따라서 필요할 때마다 전체 httpd-xampp.conf를 전환하는 것이 좋습니다.
Jeffz

34

내가하는 것처럼 두 개의 다른 xampps를 다운로드 하여 설치할 수 있습니다 (첫 번째는 php7이고 두 번째는 php5입니다) 여기에 이미지 설명을 입력하십시오

그렇게하고 싶지 않다면, 여기에 표시된 것처럼 wamp를 사용하고 버전을 변경하는 것이 좋습니다 .


4
왜 이렇게 하시겠습니까? 약간의 차이점 (아파치 및 MySQL과 같은 나머지 소프트웨어가 정확히 동일한 경우 다른 버전의 PHP)을 위해 동일한 소프트웨어를 다시 많이 설치하고 있습니다. XAMPP를 한 번만 설치하여 적절한 버전의 PHP로 지정할 수있는 솔루션을 게시했습니다.
Andy

15
왜 이렇게 하시겠습니까? 그것은 효과가 있기 때문에 시간을 절약한다면 여러 아파치와 mysql을 설치하는 것을 신경 쓰지 않습니다.
Maulik Gangani

23
모범 사례에 신경 쓸 필요가 없습니다. 현지 환경입니다.
Ricardo Vigatti

2
또한이 aproach를 사용하여 C : \ ProgramData \ Microsoft \ Windows \ 시작 메뉴 \ 프로그램 \ XAMPP56 및 C : \ ProgramData \ Microsoft \ Windows \ 시작 메뉴와 같이 각 설치마다 특정 시작 메뉴 항목을 추가하는 것이 좋습니다. \ Programs \ XAMPP7
Ricardo Vigatti

2
이것이 좋은 해결책이 아닌 경우 왜 올바른 해결책을 게시하지 않습니까? 실제로 동일한 xampp에 2 버전을 설치하는 것은 매우 어렵고 여기에있는 모든 솔루션이 잘못되었습니다.
Federico Schiocchet

12

Docker를 사용하는 것이 좋습니다. 환경을 다양한 구성 요소로 분할하고 언제든지 원하는 구성을 혼합하고 일치시킬 수 있습니다.

Docker를 사용하면 MySQL로 하나의 컨테이너를, PHP로 다른 컨테이너를 실행할 수 있습니다. 별도의 이미지이므로 두 개의 컨테이너, 하나는 PHP 5, 다른 하나는 PHP 7을 가질 수 있으며 원하는 포트를 시작하면 포트 80을 두 컨테이너에 모두 매핑 할 수 있습니다.

https://hub.docker.com 에는 많은 사전 구성 이미지가있어 번거 로움없이 설치하고 실행할 수 있습니다.

또한 이미지로 portainer 를 추가 하여 docker 이미지 내에서 docker 설정의 다양한 측면을 관리 할 수 ​​있습니다 (시작 시이 컨테이너를 시작하여 명령 줄을 사용하지 않아도되었습니다). 그것은 당신을 위해 모든 것을하지 않으며 때로는 명령 줄에서 처음으로 이미지를 구성하고 시작하는 것이 더 쉽지만 일단 설정하면 웹 인터페이스를 통해 이미지를 시작하고 중지 할 수 있습니다.

두 컨테이너를 동시에 실행하고 별도의 포트를 각각에 매핑 할 수도 있습니다. 따라서 포트 80은 PHP 5와 81에서 PHP 81 (또는 2017 년에 이것을보고 있다면 PHP 7)에 매핑 될 수 있습니다.

Docker ( https://docs.docker.com/engine/installation/ ) 를 설치하는 방법 과 다른 '방법'을 입력하는 방법 에 대한 다양한 자습서가 있습니다 . 개발 환경 구성에 대해서는 http://www.masterzendframework.com/docker-development-environment/ 를 시도 하십시오 .


나는 이것을 두 번째로한다. 회사에 유리한 태도를 취하고 Docker를 실행하십시오. 새로운 개발자를보다 빠르게 온보드로 전환하고 배포를보다 쉽게하고 프로덕션 환경에 놀라지 않게 PHP 버전을 전환하십시오.
Kris Peeling

81에서 PHP 81까지입니다. PHP 7을 의미합니까? 나는 우리가 아직 PHP 81을 벗어난 방법이라고 생각합니다 :)
Andy

2
Errrr ... 나는 정말로 81을 의미했다 (나는 나의 대답이 미래의 증거임을 보증하고있다 :-/)
Nigel Ren

1
@NigelRen 필자는 투표하지 않았지만 XAMPP 내에서 가능한 방법을 다루기보다는 완전히 다른 솔루션 (Docker)을 사용하여 제안하고 있기 때문일 것입니다. 귀하의 답변은 문제에 대한 (아주 좋은) 대안 솔루션이지만 질문에 대한 답변은 아닙니다.
Andy

7

Uniserver를 사용합니다.

이 기능이 내장되어 있습니다.

http://www.uniformserver.com/

그렇게 간단합니다.

Uniform Server는 Windows 용 무료 경량 WAMP 서버 솔루션입니다. 24MB 미만의 모듈 식 디자인에는 최신 버전의 Apache2, Perl5, PHP (PHP53, PHP54, PHP55 또는 PHP56 간 전환), MySQL5 또는 MariaDB5, phpMyAdmin 또는 Adminer4가 포함됩니다. 설치가 필요 없습니다! 레지스트리 먼지가 없습니다! 포장을 풀고 발사하십시오!

심지어 플래시 드라이브를 사용합니다. cron 에뮬레이션, perl, mariaDB, 몇 가지 버전의 MySQL, filezilla 서버 및 기타 몇 가지를 지원합니다.

여기에 이미지 설명을 입력하십시오


이것이 내가 생각하는 최고의 솔루션입니다. 나는 목숨을 구했다.
skpaul

바이러스 경고가 나타납니다. Win32 / Uwamson.A! ml
Norman Huth

6

XAMPP의 두 가지 버전이있을 수 있습니다.

  • https://www.apachefriends.org/download.html 에서 해당 파일을 다운로드하여 C : \ 5.6.31 \ xampp 및 C : \ 7.1.18 \ xampp와 같은 원하는 디렉토리에 설치하십시오.
  • 모든 설치 후에 설치된 디렉토리 (예 : C : \ 5.6.31 \ xampp, C : \ 7.1.18 \ xampp)로 이동하여 "setup_xampp.bat"를 시작하면 다음과 같은 내용 이 표시됩니다.
  • 바탕 화면에서 "xampp-control.exe"바로 가기를 만들고 ( "xampp-control.exe"보내기-> 바탕 화면을 마우스 오른쪽 단추로 클릭) ex의 바로 가기 이름을 바꿀 수 있습니다. "xampp 5.6.31"및 "xampp 7.1.8".
  • "xampp-control.exe"또는 이전에 작성된 바로 가기를 두 번 클릭하여 XAMPP 제어판을 시작하고 Apache 및 MySQL 서버를 시작하십시오.
  • 설치를 테스트하려면 브라우저를 열고 위치 표시 줄에 127.0.0.1 또는 localhost를 입력하십시오. XAMPP 시작 화면이 나타납니다.
  • XAMPP 제어판을 두 개 이상 열지 마십시오.
  • XAMPP 제거? "xampp"디렉토리를 제거하십시오. 그러나 전에 아파치와 mysql을 종료하십시오.
  • 그게 다야. 해당 XAMPP 제어판을 여는 다른 PHP 버전을 사용할 수 있습니다.

실제로 가능하다면 한 번의 설치로 솔루션을 게시하지 않는 이유는 무엇입니까? 실제로 2 버전을 설치하는 것은 매우 어렵고 여기에 모든 솔루션이 잘못되었습니다 ...
Federico Schiocchet

@Andy DB가 너무 크지 않으면 이중 설치가 가능한 옵션입니다. 그러나 당신의 대답은 나의 투표를 얻었습니다.
Jeffz

6

저는 직장에서 10 살짜리 프로젝트를하고 있습니다. 5.6이 기본값입니다. 5.2에서만 작동하는 오래된 소규모 프로젝트가 있으며 7.3.8의 개인 프로젝트를 위해 새 버전으로 작업하고 싶습니다.

기본 5.6 버전에서 5.2 및 7.3.8을 추가 한 작업은 다음과 같습니다.

1-다운로드 PHP TS 버전;

2-c : \ xampp \ php738 및 c : \ xampp \ php52 폴더로 추출

3-이 행을 httpd-xampp.conf (또는 httpd.conf)의 맨 아래에 추가했습니다.

*** 중요 공지 : 스크립트 별칭 이름을 대상 폴더 이름으로 사용해서는 안됩니다. 서로 달라야합니다. (예를 들어 / php7x는 괜찮고 / php7은 그렇지 않습니다)

폴더 D : \ www \ php7 용 PHP 7.3.8

ScriptAlias /php7x "C:/xampp/php738"
Action application/x-httpd-php7-cgi /php7x/php-cgi.exe
<Directory "C:/xampp/php738">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

<Directory "D:\www\php7">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php7-cgi
    </FilesMatch>
</Directory>

폴더 D : \ www \ php52 용 PHP 5.2

ScriptAlias /phpold "C:/xampp/php52"
Action application/x-httpd-phpold-cgi /phpold/php-cgi.exe
<Directory "C:/xampp/php52">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

<Directory "D:\www\php52">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-phpold-cgi
    </FilesMatch>
</Directory>

유용한 참고 사항 :

  • composer 스위치 터미널을 7.3.8로 사용하는 동안 php5.x에 문제가있는 경우
  • PHP 7.3.8을 Windows의 기본 명령 줄 PHP 인터프리터로 만들려면 PHP의 Windows 환경 경로를 7.3.8 폴더 경로로 변경하십시오.
  • 각 버전 폴더에서 필요에 따라 관련 php.ini conf를 편집하는 것을 잊지 마십시오.

마지막 보너스 노트로, 어떤 버전 으로든 가상 호스트를 설정해야하는 경우 비슷한 접근 방식을 사용할 수 있습니다. PHP 7.3.8의 샘플 laravel vhost conf;

<VirtualHost *:80>
ServerAdmin admin@laravel.local
DocumentRoot "D:\www\vhosts\laravel.local\public"
ServerName  laravel.local
<FilesMatch "\.php$">
 SetHandler application/x-httpd-php7-cgi # escape for default php version
#SetHandler application/x-httpd-phpold-cgi # unescape for php 5.2
</FilesMatch>

ErrorLog "logs/laravel.local.log"
CustomLog "logs/laravel.local.log" combined

자세한 답변을 위해 @Munim Munna 덕분에 위의 중요한 통지와 함께 견고한 샘플을 공유하려고했습니다.


5

절대적으로 XAMPP가 아닌 이상 WAMP로 원하는 것을 얻을 수 있습니다. WAMP는 다른 패키지에서 거의 동일합니다.

일단 설치하면 여기에서 PHP 버전 사이를 전환 할 수 있습니다.

여기에 이미지 설명을 입력하십시오

필요한만큼 많은 버전의 PHP를 설치할 수 있습니다.

자세한 방법은 다음과 같습니다.

여기로 가십시오 : WAMP 다운로드

그런 다음 php7과 같은 최신 서버를 선택하십시오.

그런 다음 WAMP 3이 설치되면 폴더 : addons 로 이동하여 사용중인 PHP 버전을 선택하십시오. 그들은 php 5.3.29에서 시작하는 php 맛을 제공하며, mysql_connect와 함께 작동합니다.

애드온을 설치하려면 설치하는 동안 (exe 파일을 두 번 클릭) WAMP 3이 설치된 폴더를 가리 킵니다.

그런 다음 응용 프로그램 등과 같은 다른 폴더의 내용을 사용 하여 더 많은 기능을 추가 할 수 있습니다

모든 것이 인터페이스되어 있으므로 코딩에 집중하고 환경을 해킹하지 않을 수 있습니다.


4

그래 넌 할수있어. xampp이 이미 설치되어 있다고 가정합니다. 그래서,

  • 모든 xampp 인스턴스를 닫습니다. 작업 관리자를 사용하여 아파치와 mysqld를 중지하십시오.
  • 그런 다음 xampp의 이름을 xampp1 또는 xampp 이름 뒤의 이름으로 바꿉니다.
  • 이제 다른 xampp 버전을 다운로드하십시오. 폴더 이름 xampp 만 작성하십시오. 다운로드 한 xampp를 설치하십시오.
  • 이제 요구 사항의 xampp 버전에 따라 대상 폴더의 이름을 xampp only로 바꾸고 다른 폴더를 다른 이름으로 바꾸십시오.

여러 xampp가 설치된 상태에서 작업하고 있습니다


4
이 답변이 효과가 있고 질문이 요구하는 것과 같이 왜 이것이 투표권을 얻었는지 확실하지 않습니다. 개선을 제안하지 않고 조용한 다운 보팅은 전혀 영리한 것이 아닙니다.
Fabian Schöner

@ FabianSchöner 감사합니다. 나는 왜이 답변에 대해 투표를 받고 있었는지 모른다.
Shuvro

1
그것이 다운 투표 된 이유는 누군가가 이미이 답변을 정확하게 게시했기 때문입니다. 둘째, 작은 차이를 얻기 위해 동일한 소프트웨어를 모두 다시 설치하기 때문에 불필요한 작업을 수행 할 수 있습니다. 내가 게시 한 답변에 명시된 바와 같이 XAMPP 1 설치를 사용하고 다른 버전의 PHP를 사용하도록 구성 할 수 있습니다.
Andy

3

단일 XAMPP 설치로 여러 버전의 PHP를 설정할 수 있습니다. 아래 지침은 Windows에서 작동합니다.

  1. Windows 용 최신 XAMPP 버전을 설치하십시오 (필자의 경우 PHP 7.1을 사용했습니다).
  2. XAMPP 제어판에서 Apache가 실행되고 있지 않은지 확인하십시오.
  3. 로 XAMPP의 PHP 디렉토리 디렉토리 등을 설치 이름 바꾸기 C:\xampp\phpC:\xampp\php-7.1.11.
  4. 추가로 실행하려는 PHP 버전을 다운로드하십시오 (예 : PHP 5.4.45 )
  5. 다운로드 한 버전에서 php 디렉토리를 XAMPP 설치 디렉토리로 이동하십시오. PHP 버전을 포함하도록 이름을 바꿉니다. 와 같은 C:\xampp\php-5.4.45.

이제 XAMPP 및 Apache 구성을 편집해야합니다.

  1. 에서 C:\xampp\apache\conf\httpd.confPHP에 대한 XAMPP 설정을 찾습니다. 다음과 같이 변경해야합니다.

#다른 PHP 버전 에 주석을 달아야하는 경우 ( 한 번에 하나만 Include해석 됨).

#XAMPP settings PHP 7
Include "conf/extra/httpd-xampp.conf.7.1"

#XAMPP settings PHP 5.4.45
#Include "conf/extra/httpd-xampp.conf.5.4.45"
  1. 이제 C:\xampp\apache\conf\extra디렉토리에서로 이름 httpd-xampp.conf을 바꾸고 에 httpd-xampp.conf.7.1대한 새 구성 파일을 추가하십시오 httpd-xampp.conf.5.4.45. 필자의 경우 구문마다 버전이 약간 다를 수 있으므로 PHP 5.5 용 XAMPP의 다른 설치의 conf 파일을 복사했습니다.

  2. 디렉토리에 대한 모든 참조를 편집 httpd-xampp.conf.5.4.45하고 새 버전으로 바꿉니다. 각 파일마다 최소한 10 개의 변경 사항이 있습니다.httpd-xampp.conf.7.1phpphp-X.X

  3. 이제 두 버전의 php.ini를 편집해야합니다. PHP 7.1, 편집에 대한 예를 들어 C:\xampp\php-7.1.11\php.ini당신의 PHP 디렉토리의 경로를 대체 할 것이다 include_path, browscap, error_log, extension_dir..

그리고 그게 다야. 이제 XAMPP 제어판에서 Apache를 시작할 수 있습니다. 버전에서 다른 버전으로 전환하려면 C:\xampp\apache\conf\httpd.confApache를 다시 시작하기 전에 포함 된 PHP 버전 을 편집 하고 변경하기 만하면됩니다.


3

명령 프롬프트 창 (cmd.exe)에서이를 실행하십시오.

set PATH=C:\xampp\php;%PATH%

PHP 7 설치 위치에 따라 변경하십시오.


2

이 구성으로 시간을 낭비 할 필요가 없습니다 .MAMP를 사용하십시오 :)

MAMP는 인터페이스에 PHP 버전 선택 기능이 있습니다.


2

이것은 아마도 질문에 대한 가장 기술적 인 대답 일 수도 있지만 달성하기가 가장 쉽습니다.

C :D : 와 같은 두 개의 드라이브가있는 경우 PHP 버전이 다른 두 드라이브에 별도의 XAMPP 인스턴스를 설치할 수 있습니다. 이 작업을 수행하는 데 10 분도 걸리지 않았으며 오류가 가장 적습니다.

xampp-control.exe에 대한 두 개의 바탕 화면 바로 가기를 만들고 PHP 버전 다음에 바로 가기 이름을 지정합니다. 나는 이것이 매우 빠르고 더러운 솔루션을 선호하는 나와 같은 누군가를 돕기를 바랍니다.


1

이것을 따르십시오 쉬운 단계를 . 현재 PHP 7.2에서 XAMPP를 실행하고 있지만 오래된 프로젝트에서 작동하려면 PHP 5.6이 필요합니다.

1 단계

PHP의 Thread Safe 버전을 다운로드하십시오 https://windows.php.net/download 하십시오

[드라이브]에 파일 저장 : \ xampp \ php5.6

  • PHP 버전에 따라 폴더 이름 바꾸기

2 단계

[드라이브] : \ xampp \ apache \ conf \ extra \ httpd-xampp.conf를 복사하십시오.

이름을 [드라이브] : \ xampp \ apache \ conf \ extra \ httpd-xampp5.6.conf로 바꾸십시오. PHP 버전에 따라 파일 이름을 바꿉니다.

3 단계

새로 작성된 'httpd-xampp5.6.conf'를 편집하십시오.

기본적으로 모든 PHP 소스와 .dll을 변경해야합니다.

전에

LoadFile "C:/xampp/php/php7ts.dll"
LoadFile "C:/xampp/php/libpq.dll"
LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"

LoadFile "C:/xampp/php5.6/php5ts.dll"
LoadFile "C:/xampp/php5.6/libpq.dll"
LoadModule php5_module "C:/xampp/php5.6/php5apache2_4.dll"

여기 내 파일이 있습니다 : https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec

4 단계

[드라이브] : \ xampp \ apache \ conf \ httpd.conf 파일을 편집하십시오.

전에

# XAMPP settings
Include "conf/extra/httpd-xampp.conf"

# XAMPP settings
Include "conf/extra/httpd-xampp5.6.conf"
  • 다른 버전으로 전환 할 때이 줄을 편집 할 수 있습니다

5 단계

PHP 5.6 구성 편집-php.ini

확장 디렉토리를 추가하십시오 : extension_dir = "C : \ xampp \ php5.6 \ ext"

6 단계

아파치 시작

7 단계

Windows에서 PHP 환경 변수 경로 편집


0

어쩌면 조금 늦었지만 배치를 사용하여 PHP 폴더의 이름을 바꿉니다 ( 수년 전에 찾은 phpswitch 의 약간 수정 된 버전 ).

다른 폴더를 XAMPP 설치에 복사합니다. 각 PHP 폴더 (활성 폴더 제외)는 버전 번호를 접미사로받습니다 (예 : php_5.6.32 ). 에서 ALL 스크립트는이 정보를 잡을 수 있도록 PHP 폴더, 파일 (PHP_VERSION는) 만 각각의 버전 번호를 포함하는 생성됩니다. 그러나 그것은 모두 README에 설명되어 있습니다.

PHP7 이후 아파치 - xampp.conf의 로드 php7ts.dll 대신 php5ts.dll . 그래서 동일한 접근 방식에 따라 스크립트 (PHPSwitch.php)를 확장하여 구성 파일의 이름을 바꾸어야했습니다.

    $renameCur = new PHPSwitch_Rename($currInst['path'], $this->_cfg['phpInstallationsPath'] . $this->_cfg['phpDirName'] . '_' . $currInst['version']);
    $renameNew = new PHPSwitch_Rename($newInst['path'], $this->_cfg['phpInstallationsPath'] . $this->_cfg['phpDirName']);

    $apache_curent      = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp.conf";
    $apache_curent_rename   = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp_".$currInst['version'].".conf";
    $apache_new             = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp_".$newInst['version'].".conf";
    $apache_new_rename      = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp.conf";

    $renameCur_apache_conf = new PHPSwitch_Rename($apache_curent, $apache_curent_rename);
    $renameNew_apache_conf = new PHPSwitch_Rename($apache_new, $apache_new_rename);

    $transaction = new PHPSwitch_Rename_Transaction();
    $transaction->add($renameCur);
    $transaction->add($renameNew);
    $transaction->add($renameCur_apache_conf);
    $transaction->add($renameNew_apache_conf);

0

나는 똑같은 일을해야했기 때문에 OP가 같은 문제를 겪고있는 곳에서 오버플로가 발생하는 방법과 방법을 봤다. 너무 오래. SOOOO 나는 여기에서 버전 7을 설치하게되었습니다.

https://www.apachefriends.org/index.html (시도하기 전에 서비스 종료 및 xampp 종료)

디렉토리 이름을 어디에 넣을 것인지 묻는 메시지가 나타나면 다른 이름을 지정하십시오.

여기에 이미지 설명을 입력하십시오

DONEZO! 이제 서비스를 중지하고 앞뒤로 스와핑하기 전에 종료하고 2 개의 멸균 XAMPP 환경이 있습니다.

만세! 이제 실제로 일을 할 수 있습니다!


나는 이미 위의 2 가지 답변, Maulik Gangani 및 og1842에서 제안한 것으로 생각합니다.
Munim Munna


0

나는 이것이 오래된 게시물이라는 것을 알고 있지만 PHP 7에서 여전히 mysql_connect ()를 실행하기위한 라이브러리가 있음을 공유하고 싶습니다. 실제 함수를 재정 의하여 작동합니다 (mysql_connect ()는이 라이브러리에서 작동하는 mysqli_connect ()로 재정의 됨)).

이 비디오에서 찾았습니다 https://www.youtube.com/watch?v=Eqd-jJu4sQ4

잘하면 그것은 도움이됩니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.