Existe maneira de usar duas versões do PHP no XAMPP?

157

Estamos executando o XAMPP com PHP 7.0 porque nossos novos produtos requerem PHP 7.

Mas existem projetos antigos que usam funções como mysql_connectetc. Esses são removidos no PHP 7.0.

Então, existe uma maneira de alterar facilmente as versões do PHP no XAMPP?

Nota : Não sugira atualizar o projeto antigo para compatível com as novas versões, porque não estou em condições de fazê-lo por causa das decisões que não consigo como desenvolvedor (apenas um funcionário).

Eu sou a pessoa mais estúpida
fonte
Acho que não há uma solução alternativa para o que você deseja fazer além de atualizar. Além disso, você não deve encontrar maneiras de tornar compatíveis as APIs antigas e obsoletas. Eles devem ser removidos totalmente. Obviamente, é muito trabalhoso, mas garantiria paz de espírito
Rotimi
1
Paro e inicio o Apache quando quero alternar versões do PHP no MAMP. É uma dor, mas funciona.
Scott C Wilson
você poderia dual boot
você pode criar host virtual, em seguida, especificar a versão php para cada um
Aref Ben Lazrek
2
@IlmariKaronen Quero alternar entre eles na sua estação de trabalho de desenvolvimento. Simplesmente eu quero usar PHP 5 quando estou fazendo o Projeto A, quero PHP 7 quando estou fazendo Projeto B. Mesmo hugest resposta nominal não está funcionando, eu não posso encontrá-lo ... E muitos usuários ..
I a pessoa mais burra

Respostas:

133

Por que alternar entre versões do PHP quando você pode usar várias versões do PHP ao mesmo tempo com uma única instalação do xampp ? Com uma única instalação do xampp, você tem 2 opções:

  1. Execute uma versão PHP mais antiga apenas para o diretório do seu projeto antigo: isso servirá ao objetivo na maioria das vezes; você pode ter um ou dois projetos antigos que pretende executar com a versão PHP mais antiga. Basta configurar o xampp para executar a versão mais antiga do PHP apenas para esses diretórios do projeto.

  2. Execute uma versão mais antiga do PHP em uma porta separada do xampp: Às vezes, você pode estar atualizando o projeto antigo para a versão mais recente do PHP quando precisar executar o mesmo projeto na nova e mais antiga versão do PHP. Em seguida, você pode definir uma versão mais antiga do PHP em uma porta diferente (por exemplo, 8056); portanto, quando você http://localhost/any_project/acessa o xampp, executa o PHP 7 e, quando http://localhost:8056/any_project/acessa o xampp, executa o PHP 5.6.

  3. Execute uma versão mais antiga do PHP em um host virtual: Você pode criar um host virtual como o localhost56 para executar o PHP 5.6 enquanto pode usar o PHP 7 no localhost.

Vamos configurá-lo.

Etapa 1: Faça o download do PHP

Então você tem o PHP 7 rodando no xampp, você quer adicionar uma versão mais antiga do PHP, digamos PHP 5.6. Faça o download da versão nts (Non Thread Safe) do arquivo zip do PHP no php.net (consulte o arquivo para versões mais antigas) e extraia os arquivos em c:\xampp\php56. A versão segura do thread não inclui o php-cgi.exe.

Etapa 2: configurarphp.ini

Abra o c:\xampp\php56\php.iniarquivo no bloco de notas. Se o arquivo não existir cópia php.ini-developmentpara php.inie abri-lo no bloco de notas. Descomente a seguinte linha:

extension_dir = "ext"

Etapa 3: configurar o apache

Abra o painel de controle do xampp, clique no botão de configuração do apache e clique em Apache (httpd-xampp.conf). Um arquivo de texto será aberto, colocando as seguintes configurações na parte inferior do arquivo:

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>

Nota: Você pode adicionar mais versões do PHP à sua instalação do xampp, seguindo as etapas de 1 a 3, se desejar.

Etapa 4 (opção 1): [Adicione diretórios para executar uma versão específica do PHP]

Agora você pode definir diretórios que serão executados no PHP 5.6. Basta adicionar o seguinte na parte inferior do arquivo de configuração para definir diretórios.

<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>

Etapa 4 (opção 2): [Execute a versão mais antiga do PHP em uma porta separada]

Agora, para configurar o PHP v5.6 na porta 8056, adicione o seguinte código na parte inferior do arquivo de configuração.

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

Etapa 4 (opção 3): [Execute uma versão mais antiga do PHP em um host virtual]

Para criar um host virtual (localhost56) em um diretório (htdocs56) para usar o PHP v5.6 em http: // localhost56 , crie o diretório htdocs56 no local desejado e adicione localhost56 ao arquivo do host ( veja como ) e adicione o código a seguir na parte inferior do arquivo 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>

Concluir: Salvar e reiniciar o Apache

Salve e feche o arquivo de configuração. Reinicie o apache no painel de controle do xampp. Se você optou pela opção 2, pode ver a porta adicional (8056) listada no painel de controle do xampp.

insira a descrição da imagem aqui

Atualização para erro:
cabeçalho malformado do script 'php-cgi.exe': cabeçalho incorreto

Se você encontrar o erro acima, abra httpd-xampp.confnovamente e comente a seguinte linha com um # inicial (caractere de hash).

SetEnv PHPRC "\\path\\to\\xampp\\php"
Munim Munna
fonte
9
Oi, Eu estava tentando esse método (Etapa 4, opção 1), mas obtém um cabeçalho com erro de erro no script 'php-cgi.exe': Cabeçalho inválido: <br />, alguma idéia de qual poderia ser o problema?
Priyanshu
@Priyanshu, sua instalação do PHP está OK? Você pode executar arquivos PHP a partir da linha de comando como php somefile.phpsem erros?
Munim Munna
2
A resposta nem sequer contém o código a incluir, SetEnv PHPRCportanto não posso comentar, mas ainda estou recebendo esse erro. :(
Brett
1
Oi. quando executo localhost: 8056, recebo a página de objeto não encontrado.
NAS
1
alguém capaz de trabalhar com várias versões php com xdebug? eu tenhoError message: End of script output before headers: php-cgi.exe
Noman 27/03
87

Você pode baixar as versões do PHP que você precisa e colocá-las em seus próprios diretórios, por exemplo

c:\php5\

c:\php7\

Tudo o que você precisa fazer é informar ao servidor da web (Apache) qual versão do PHP usar, o que você faz carregando o módulo apropriado. No Apache, você pode fazer isso localizando o arquivo httpd.confe editando a linha apropriada:

LoadModule php7_module c:\php7\libphp7.so

Você terá que descobrir os caminhos corretos, é claro - isso é apenas para ilustração.

Salve httpd.confe reinicie seu servidor. Observe que, se você não reiniciá-lo, as alterações não terão efeito.

Não há opção de interface gráfica para fazer isso; você precisa editar o .confarquivo e reiniciar o Apache. Fazer isso leva apenas alguns segundos e você pode até comentar uma versão para que "alternar" leve apenas algumas teclas, por exemplo

Use o PHP 5:

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

Use o PHP 7:

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

Você não precisa de várias versões do XAMPP , nem de inicialização dupla, nem de usar uma máquina diferente ou de qualquer outra "solução" que sugerisse soluções alternativas complicadas. O OP quer usar o XAMPP e informar qual versão do PHP usar. Essa é a maneira mais rápida e eficiente de fazer isso, e requer apenas uma instalação do XAMPP.

Edit 1-Nov-2017: Aparentemente, algumas pessoas estão dizendo que não há .soarquivos no Windows. A resposta que eu dei foi adaptada de como eu tenho as coisas configuradas no meu Mac (que usa .soarquivos em vez de .dll). O princípio da resposta, no entanto, ainda é exatamente correto. Você está usando o arquivo de configuração do Apache httpd.confpara especificar onde o módulo PHP ( .soou .dll) está localizado no seu sistema. Portanto, a única diferença para o Windows seria o nome do arquivo e / ou o local do caminho. A resposta que eu dei também está correta para uma instalação básica do Apache / PHP (sem o XAMPP).

Andy
fonte
3
Eu repeti o cheque. Não consegui encontrar. Você pode verificar meu arquivo httpd.conf. Esta é a cópia dele. freetexthost.com/sjxz4lh1i5 Informe-me se encontrar a linha que devo alterar.
Eu sou a pessoa mais estúpida
2
Não há libphp7.so no XAMPP e nenhuma string LoadModule no arquivo conf #
Federico Schiocchet 17/17
2
Também não consegui encontrar esta entrada. Também procurei no meu diretório php e não consegui encontrar nenhum arquivo .so.
Eoin
19
Na v3.2.2, a linha está localizada em xampp / apache / conf / extra / httpd-xampp.conf
Manuel
5
Não é apenas uma linha. Você precisa editar uma boa parte do httpd-xampp.conf. Portanto, é melhor alternar o httpd-xampp.conf toda vez que você precisar.
Jeffz
34

Você pode baixar e instalar dois xampps diferentes, como eu faço: (primeiro é php7, segundo é php5) insira a descrição da imagem aqui

e se você não quiser fazer isso, sugiro que você use as versões wamp e change, como mostrado aqui .

Maulik Gangani
fonte
4
Por que você faria isso? Você está instalando muito do mesmo software novamente, apenas por uma pequena diferença (versão diferente do PHP, quando o resto do software como Apache e MySQL é exatamente o mesmo). Publiquei uma solução em que você pode simplesmente usar 1 instalação do XAMPP e apontar para a versão apropriada do PHP.
Andy
15
Por que você faria isso? porque funciona, e não me importo de ter vários apache e mysql instalados, se economizar algum tempo.
Maulik Gangani
23
não precisa se preocupar com as melhores práticas aqui, é um ambiente local
Ricardo Vigatti
2
Eu uso essa abordagem, além disso, eu recomendo que você adicione entradas específicas do menu Iniciar para cada instalação, como: C: \ ProgramData \ Microsoft \ Windows \ Menu Iniciar \ Programas \ XAMPP56 e C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ XAMPP7 por exemplo
Ricardo Vigatti 31/08
2
Se essa não é uma boa solução, por que você não publica uma solução correta? Na verdade é muito difícil instalar 2 versões no mesmo xampp e todas as soluções aqui estão errados ...
Federico Schiocchet
12

Eu recomendaria usar o Docker, isso permite que você divida o ambiente em vários componentes, misture e combine os que você deseja a qualquer momento.

O Docker permitirá que você execute um contêiner com MySQL, outro com PHP. Como são imagens separadas, é possível ter dois contêineres, um PHP 5 e outro PHP 7, você inicia o que desejar e a porta 80 pode ser mapeada para os dois contêineres.

https://hub.docker.com possui uma ampla variedade de imagens pré-configuradas, que você pode instalar e executar sem muito trabalho.

Também adicionei o porttainer como uma imagem, que permite gerenciar os vários aspectos da sua configuração do docker - a partir de uma imagem do docker (iniciei esse contêiner na inicialização para evitar que eu usasse a linha de comando). Ele não faz tudo por você e, às vezes, é mais fácil configurar e iniciar as imagens pela primeira vez a partir da linha de comando, mas uma vez configurado, você pode iniciar e interrompê-las através de uma interface da web.

Também é possível executar os dois contêineres ao mesmo tempo e mapear portas separadas para cada um. Portanto, a porta 80 pode ser mapeada para o PHP 5 e 81 para o PHP 81 (ou PHP 7, se você estiver assistindo isso em 2017).

Existem vários tutoriais sobre como instalar o Docker ( https://docs.docker.com/engine/installation/ ) e vários outros tipos de 'como digitar'. Tente http://www.masterzendframework.com/docker-development-environment/ para obter uma configuração do ambiente de desenvolvimento.

Nigel Ren
fonte
Eu segundo isso. Faça um favor à sua empresa e faça o Docker funcionar. Alterne as versões do PHP, forneça novos desenvolvedores mais rapidamente, facilite a implantação e não surpreenda a produção.
Kris Peeling
e 81 ao PHP 81. você quer dizer PHP 7? Acho que estamos um pouco distante PHP 81 ainda :)
Andy
2
Errrr ... Eu realmente significava 81 (estou garantindo a minha resposta é à prova de futuro: - /)
Nigel Ren
1
@NigelRen Eu não votei para baixo, mas acho que é porque você está propondo usar uma solução completamente diferente (Docker) em vez de abordar como isso é possível no XAMPP - o que definitivamente é. Sua resposta é uma solução alternativa (muito boa) para o problema, mas não uma resposta à pergunta que foi feita.
Andy
7

Eu uso o Uniserver.

Ele possui esse recurso incorporado.

http://www.uniformserver.com/

É simples assim.

O Uniform Server é uma solução de servidor WAMP leve e gratuita para Windows. Menos de 24 MB, design modular, inclui as versões mais recentes do Apache2, Perl5, PHP (alternar entre PHP53, PHP54, PHP55 ou PHP56), MySQL5 ou MariaDB5, phpMyAdmin ou Adminer4. Nenhuma instalação é necessária! Sem poeira no registro! Apenas descompacte e acenda!

Ele ainda funciona com uma unidade flash. Possui emulação de cron, suporte para perl, mariaDB, algumas versões do Mysql, servidor filezilla e algumas outras coisas.

insira a descrição da imagem aqui

ArtisticPhoenix
fonte
Esta é a melhor solução que eu acho. Eu salvei minha vida.
Skpaul # 22/19
Estou recebendo um alerta de vírus. Win32 / Uwamson.A ml
Norman Huth
6

Você pode ter duas versões diferentes do XAMPP.

  • Faça o download desses arquivos em https://www.apachefriends.org/download.html e instale em um diretório de sua escolha, por exemplo, em C: \ 5.6.31 \ xampp e C: \ 7.1.18 \ xampp.
  • Após cada instalação, vá para o diretório instalado (por exemplo, C: \ 5.6.31 \ xampp, C: \ 7.1.18 \ xampp) e inicie o "setup_xampp.bat" e você verá algo parecido com isto.
  • Você pode criar atalhos de "xampp-control.exe" na área de trabalho (clique com o botão direito do mouse em "xampp-control.exe" Enviar para -> Área de trabalho) e renomear atalhos para ex. "xampp 5.6.31" e "xampp 7.1.8".
  • Inicie o painel de controle do XAMPP com um clique duplo em "xampp-control.exe" ou atalho criado anteriormente e inicie os servidores Apache e MySQL.
  • Para testar a instalação, abra o navegador e digite 127.0.0.1 ou localhost na barra de localização. Você deve ver a tela inicial do XAMPP.
  • Não abra mais de um painel de controle XAMPP.
  • Desinstalar o XAMPP? Simplesmente remova o diretório "xampp". Mas antes, por favor, desligue o apache e o mysql.
  • Isso é tudo. Você pode usar diferentes versões do php abrindo o painel de controle correspondente do XAMPP.
og1842
fonte
Se é realmente possível fazê-lo com 1 instalação, por que você não publica uma solução? Na verdade é muito difícil instalar 2 versões e todas as soluções aqui estão errados ...
Federico Schiocchet
@ Andy Se o banco de dados não for tão grande, a instalação dupla é uma opção viável. Mas sua resposta recebeu meu voto positivo.
Jeffz 9/01/19
6

Estou trabalhando em um projeto de dez anos de trabalho. Então 5.6 é o meu padrão. Também existem pequenos projetos mais antigos que funcionam apenas com o 5.2 e também quero trabalhar em novas versões para meus projetos pessoais com o 7.3.8

Aqui está o que eu fiz para adicionar 5.2 e 7.3.8 na versão 5.6 padrão.

1 - Versões baixadas do php TS;

2 - Extraído para a pasta c: \ xampp \ php738 ec: \ xampp \ php52 em ordem

3 - Adicionadas essas linhas na parte inferior do httpd-xampp.conf (ou httpd.conf);

*** AVISO IMPORTANTE: Você NÃO deve usar o nome alternativo do script como o nome da pasta de destino, pois eles devem ser diferentes. (por exemplo / php7x está ok, / php7 não está)

PHP 7.3.8 para a pasta D: \ www \ php7

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>

PHP 5.2 para a pasta D: \ www \ php52

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>

Algumas notas úteis:

  • Se você tiver problemas com o php5.x ao usar o terminal do switch do compositor para 7.3.8
  • Se você deseja fazer do php 7.3.8 o seu interpretador de linha de comando padrão no Windows, basta alterar o caminho do ambiente do Windows para php no caminho da pasta 7.3.8.
  • Não se esqueça de editar o seu php.ini confs relevante conforme necessário em cada pasta de versão.

E como última nota de bônus, se você precisar definir um host virtual com qualquer uma das versões, poderá usar uma abordagem semelhante. Uma amostra laravel vhost conf para php 7.3.8;

<VirtualHost *:80>
ServerAdmin [email protected]
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

Graças a @Munim Munna pela resposta detalhada, eu queria compartilhar uma amostra sólida com o importante aviso acima.

Erdinç Çorbacı
fonte
5

A menos que tenha que ser absolutamente e definitivamente XAMPP, você pode tentar obter o que deseja com o WAMP. O WAMP é praticamente a mesma coisa em pacotes diferentes.

Depois de instalá-lo, você pode simplesmente alternar entre versões do php aqui:

insira a descrição da imagem aqui

Você pode instalar quantas versões de PHP precisar.

Veja como isso é feito em detalhes.

Basta ir aqui: download WAMP

Em seguida, selecione seu servidor base, por exemplo, o mais recente com o php7.

Então, quando o WAMP 3 estiver instalado, vá para a pasta: addons e selecione a versão (ou versões) do php que você procura. Eles oferecem sabores php a partir do php 5.3.29, que devem funcionar com o mysql_connect.

Para instalar o addon, durante a instalação (clique duas vezes no arquivo exe), aponte para a pasta onde o seu WAMP 3 está instalado.

Em seguida, você pode usar o conteúdo de outras pastas, como: aplicativos etc. para adicionar mais funcionalidades

Tudo está em interface, para que você possa se concentrar na codificação e não invadir o ambiente.

Jeffz
fonte
4

Sim você pode. Presumo que você já tenha um xampp instalado. Assim,

  • Feche todas as instâncias xampp. Usando o gerenciador de tarefas, pare o apache e o mysqld.
  • Renomeie o xampp para xampp1 ou algo após o nome do xampp.
  • Agora faça o download da outra versão do xampp. Crie um nome de pasta apenas xampp. Instale o xampp baixado lá.
  • Agora, dependendo da versão xampp do seu requisito, apenas renomeie a pasta de destino para somente xampp e outra pasta com nome diferente.

É assim que estou trabalhando com vários xampp instalados

Shuvro
fonte
4
Não sei por que isso é prejudicial, pois essa resposta funciona e é exatamente o que a pergunta está fazendo. A votação silenciosa sem sugerir melhorias não é uma coisa inteligente em geral.
Fabian Schöner
@ FabianSchöner Obrigado. Eu não sei por que eu estava ficando com voto negativo nesta resposta.
Shuvro 29/08
1
A razão pela qual foi rebaixado é porque alguém já postou exatamente esta resposta. E, em segundo lugar, é uma maneira totalmente desnecessária de fazer as coisas, pois você está instalando TODOS os mesmos softwares novamente apenas para obter uma pequena diferença. É possível - como indicado na resposta que eu publiquei - usar 1 instalação do XAMPP e configurá-lo para usar diferentes versões do PHP.
Andy
3

É possível ter várias versões do PHP configuradas com uma única instalação do XAMPP. As instruções abaixo estão funcionando para Windows.

  1. Instale a versão mais recente do XAMPP para Windows (no meu caso, era com PHP 7.1)
  2. Verifique se o Apache não está sendo executado no painel de controle XAMPP
  3. Renomeie o diretório php no diretório de instalação do XAMPP, como C:\xampp\phptornar-se C:\xampp\php-7.1.11.
  4. Faça o download da versão do PHP que você deseja executar (por exemplo: PHP 5.4.45 )
  5. Mova o diretório php da versão que você baixou para o diretório de instalação do XAMPP. Renomeie-o para incluir a versão PHP. Tais como C:\xampp\php-5.4.45.

Agora você precisa editar a configuração do XAMPP e Apache:

  1. Em C:\xampp\apache\conf\httpd.conf, localize as configurações do XAMPP para PHP, altere-o para algo como:

Onde você tem que comentar (com #) as outras versões do PHP para que apenas uma Includeseja interpretada no momento.

#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. Agora C:\xampp\apache\conf\extra, renomeie o diretório httpd-xampp.confpara httpd-xampp.conf.7.1e adicione um novo arquivo de configuração para httpd-xampp.conf.5.4.45. No meu caso, copiei o arquivo conf de outra instalação do XAMPP para php 5.5, pois a sintaxe pode ser um pouco diferente para cada versão.

  2. Edite httpd-xampp.conf.5.4.45e httpd-xampp.conf.7.1substitua lá toda a referência ao phpdiretório pela nova php-X.Xversão. Há pelo menos 10 alterações a serem feitas aqui para cada arquivo.

  3. Agora você precisa editar o php.ini para as duas versões. Por exemplo, para php 7.1, editar C:\xampp\php-7.1.11\php.ini, onde irá substituir o caminho do diretório php para include_path, browscap, error_log, extension_dir..

E é isso. Agora você pode iniciar o Apache no painel de controle do XAMPP. E para alternar de uma versão para outra, você precisa apenas editar C:\xampp\apache\conf\httpd.confe alterar a versão incluída do PHP antes de reiniciar o Apache.

maxime_039
fonte
3

execute isso nas janelas do prompt de comando (cmd.exe).

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

altere-o dependendo de onde você instalou o php 7.

Adam Endvy
fonte
2

Você não precisa perder seu tempo com essas configurações, basta usar o MAMP :)

O MAMP possui um recurso de seleção de versão PHP na interface.

Gokturk
fonte
2

Essa é provavelmente a resposta menos técnica à pergunta, mas também é a mais fácil de realizar.

Se você tiver duas unidades, como C: e D :, poderá instalar uma instância separada do XAMPP em ambas as unidades com versões diferentes de php. Isso levou menos de 10 minutos para ser feito e é menos propenso a erros.

Acabei de criar dois atalhos da área de trabalho para o xampp-control.exe e nomeio os atalhos após a versão php. Espero que isso ajude alguém como eu que prefere uma solução muito rápida e suja.

JacobRossDev
fonte
1

Siga estas etapas fáceis . Atualmente, estou executando o XAMPP no PHP 7.2, mas precisa do PHP 5.6 para trabalhar em projetos antigos

PASSO 1

Faça o download da versão Thread Segura do PHP em https://windows.php.net/download

Coloque arquivos no seu [Drive]: \ xampp \ php5.6

  • Renomeie a pasta, dependendo da versão do Php

PASSO 2

Copie [Unidade]: \ xampp \ apache \ conf \ extra \ httpd-xampp.conf

Renomeie-o para [Drive]: \ xampp \ apache \ conf \ extra \ httpd-xampp5.6.confNome do arquivo, dependendo da versão do Php

ETAPA 3

Edite o recém-criado 'httpd-xampp5.6.conf'

basicamente você precisa alterar toda a fonte PHP e .dll

Antes

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

Depois de

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

Aqui está o meu arquivo: https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec

PASSO 4

Edite o arquivo [Drive]: \ xampp \ apache \ conf \ httpd.conf

Antes

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

Depois de

# XAMPP settings
Include "conf/extra/httpd-xampp5.6.conf"
  • Você pode apenas editar esta linha ao mudar para uma versão diferente

PASSO 5

Edite sua configuração do PHP 5.6 - php.ini

Adicione o diretório de extensão: extension_dir = "C: \ xampp \ php5.6 \ ext"

PASSO 6

Inicie o Apache

PASSO 7

Editar caminho da variável de ambiente PHP no Windows

mpalencia
fonte
0

Talvez um pouco tarde, mas estou usando um lote para renomear as pastas PHP (uma versão ligeiramente modificada do phpswitch que encontrei anos atrás).

Você copia as diferentes pastas na instalação do XAMPP. Cada pasta PHP (exceto a ativa) recebe o número da versão como sufixo (por exemplo, php_5.6.32 ). Em TODAS as pastas PHP, é criado um arquivo (PHP_VERSION), que contém apenas o respectivo número da versão, para que o Script possa obter essas informações. Mas isso é tudo descrito no README.

Desde o PHP7, o httpd-xampp.conf carrega o php7ts.dll em vez do php5ts.dll . Então eu tive que estender o script (PHPSwitch.php) para renomear esses arquivos de configuração também, seguindo a mesma abordagem.

    $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);
Ebby
fonte
0

Eu precisava fazer a mesma coisa, então pesquisei como e cheguei ao estouro de pilha, onde o OP estava com o mesmo problema ... Então, minhas descobertas .. Tentei renomear arquivos de todas as direções diferentes E minha conclusão foi basicamente que está me levando demasiado longo. SOOOO acabei instalando a versão 7 daqui:

https://www.apachefriends.org/index.html (interrompa os serviços e saia do xampp antes de tentar)

Quando perguntado onde colocar o nome do diretório, é assim (dê um nome diferente):

insira a descrição da imagem aqui

e

DONEZO! Agora, certifique-se de matar os serviços e sair antes de trocar para frente e para trás e você tem 2 envs XAMPP estéreis para jogar.

Viva! agora eu posso realmente trabalhar!

hackdotslashdotkill
fonte
Acho que já foi sugerido pelas 2 respostas acima, Maulik Gangani e og1842.
Munim Munna
0

Use este comutador php

Você pode controlar a versão php para qualquer projeto que desejar através da configuração do vhost.

degrau
fonte
0

Eu sei que este é o post antigo, mas quero compartilhar que existe uma biblioteca para ainda executar o mysql_connect () no PHP 7. Ele funciona substituindo a função real (mysql_connect () é substituído pelo mysqli_connect () que funciona nesta biblioteca).

Encontrei neste vídeo https://www.youtube.com/watch?v=Eqd-jJu4sQ4

espero que ajude

f_anto
fonte