XAMPP'de iki PHP sürümü kullanmanın bir yolu var mı?


157

Yeni ürünlerimiz PHP 7 gerektirdiğinden XAMPP'yi PHP 7.0 ile çalıştırıyoruz.

Ancak mysql_connect, vb. Gibi işlevleri kullanan eski projeler vardır . Bunlar PHP 7.0 kaldırılır.

Peki, XAMPP'de PHP sürümlerini kolayca değiştirmenin bir yolu var mı?

Not : Lütfen eski projeyi yeni sürümlerle uyumlu hale getirmeyi önermeyin, çünkü geliştirici (sadece bir çalışan) olarak alamadığım kararlar nedeniyle bunu yapacak bir konumda değilim.


Yükseltme dışında ne yapmak istediğinize bir çözüm olduğunu düşünmüyorum. Ayrıca eski ve kullanımdan kaldırılmış API'ları uyumlu hale getirmenin yollarını da bulmamalısınız. Tamamen çıkarılmalıdır. Açıkçası bu çok iş, ama
gönül rahatlığı

1
MAMP'ta PHP sürümlerini değiştirmek istediğimde durup Apache'yi başlatıyorum. Bu bir acı ama işe yarıyor.
Scott C Wilson

çift ​​önyükleme olabilir

sanal ana bilgisayar oluşturabilir ve sonra her biri için php sürümünü belirtebilirsiniz
Aref Ben Lazrek

2
@IlmariKaronen Geliştirme iş istasyonunuzda aralarında geçiş yapmak istiyorum. Ben sadece proje A yaparken PHP 5 kullanmak istiyorum, ben proje B yaparken PHP 7 istiyorum. En büyük puan bile cevap çalışmıyor, bulamıyorum ... Ve birçok kullanıcı ..
I En Aptal Kişi

Yanıtlar:


134

Tek bir xampp kurulumuyla aynı anda birden fazla PHP sürümü kullanabildiğinizde neden PHP sürümleri arasında geçiş yapmalısınız ? Tek bir xampp kurulumuyla 2 seçeneğiniz vardır:

  1. Yalnızca eski projenizin dizini için daha eski bir PHP sürümü çalıştırın: Bu, çoğu zaman amaca hizmet edecektir, daha eski PHP sürümüyle çalıştırmak istediğiniz bir veya iki eski projeniz olabilir. Xampp'i sadece bu proje dizinleri için eski PHP sürümünü çalıştıracak şekilde yapılandırmanız yeterlidir.

  2. Eski bir PHP sürümünü ayrı bir xampp bağlantı noktasında çalıştırın: Bazen aynı projeyi yeni ve eski PHP sürümünde ileri ve geri çalıştırmanız gerektiğinde, en son PHP sürümüne yükseltme ve eski proje olabilir. Daha sonra farklı bir bağlantı noktasında (8056 diyelim) eski bir PHP sürümü ayarlayabilirsiniz, böylece http://localhost/any_project/xampp'e gittiğinizde PHP 7'yi çalıştırdığınızda ve http://localhost:8056/any_project/xampp'e gittiğinizde PHP 5.6'yı çalıştırırsınız.

  3. Sanal ana bilgisayarda eski bir PHP sürümü çalıştırma: PHP 5'i çalıştırmak için localhost56 gibi bir sanal ana bilgisayar oluşturabilir, localhost üzerinde PHP 7 kullanabilirsiniz.

Hadi ayarlayalım.

Adım 1: PHP'yi indirin

Yani xampp altında çalışan PHP 7 var, PHP 5.6 gibi daha eski bir PHP sürümü eklemek istiyorsunuz. PHP zip arşivinin nts (Thread Safe olmayan) sürümünü php.net'ten indirin ( eski sürümler için arşive bakın ) ve altındaki dosyaları ayıklayın c:\xampp\php56. İş parçacığı güvenli sürümü php-cgi.exe içermez.

2. Adım: Yapılandırınphp.ini

c:\xampp\php56\php.iniDosyayı not defterinde açın . Dosya kopyalama yoksa php.ini-developmenthiç php.inive not defteri açın. Sonra aşağıdaki satırı açın:

extension_dir = "ext"

3. Adım: Apache'yi yapılandırın

Xampp kontrol panelini açın, apache için config düğmesine tıklayın ve tıklayın Apache (httpd-xampp.conf). Bir metin dosyası açılarak aşağıdaki ayarları dosyanın altına koyun:

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>

Not: İsterseniz, 1'den 3'e kadar olan adımları izleyerek xampp kurulumunuza daha fazla PHP sürümü ekleyebilirsiniz.

4. Adım (seçenek 1): [Belirli PHP sürümünü çalıştırmak için Dizinler ekleyin]

Şimdi PHP 5.6'da çalışacak dizinleri ayarlayabilirsiniz. Dizinleri ayarlamak için yapılandırma dosyasının altına aşağıdakileri eklemeniz yeterlidir.

<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. Adım (seçenek 2): [Eski bir PHP sürümünü ayrı bir bağlantı noktasında çalıştırın]

Şimdi PHP v5.6'yı bağlantı noktası 8056'ya ayarlamak için yapılandırma dosyasının altına aşağıdaki kodu ekleyin.

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

4. Adım (seçenek 3): [Sanal ana bilgisayarda daha eski bir PHP sürümü çalıştırın]

Http: // localhost56 üzerinde PHP v5.6 kullanmak üzere bir dizinde (htdocs56) bir sanal ana makine (localhost56) oluşturmak için, istediğiniz yerde htdocs56 dizini oluşturun ve hosts dosyanıza localhost56 ekleyin ( nasıl yapılacağını görün ), ardından aşağıdaki kodu ekleyin httpd-xampp.conf dosyasının en altına yerleştirin.

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

Bitiş: Apache'yi Kaydet ve Yeniden Başlat

Yapılandırma dosyasını kaydedip kapatın, xampp kontrol panelinden apache'yi yeniden başlatın. Seçenek 2'ye gittiyseniz, xampp kontrol panelinizde listelenen ek bağlantı noktasını (8056) görebilirsiniz.

resim açıklamasını buraya girin

Hata Güncelleştirmesi:
'php-cgi.exe' komut dosyasından hatalı biçimlendirilmiş başlık: Hatalı başlık

Yukarıdaki hatayla karşılaşırsanız, httpd-xampp.conftekrar açın ve aşağıdaki satırı baştaki # (hash karakteri) ile yorumlayın.

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

9
Merhaba, ben bu yöntemi deniyordu (Adım 4 Seçenek 1), ama komut dosyası 'php-cgi.exe' hatalı biçimlendirilmiş bir başlık almak: Kötü başlık: <br />, herhangi bir fikir sorun ne olabilir?
Priyanshu

@Priyanshu PHP kurulumunuz iyi mi? PHP dosyalarını php somefile.phpherhangi bir hata olmadan komut satırından çalıştırabilir misiniz ?
Munim Munna

2
Cevap artık dahil etmek için kod içermiyor, SetEnv PHPRCbu yüzden yorum yapamam, ancak yine de bu hatayı alıyorum. :(
Brett

1
Selam. localhost: 8056 çalıştırdığımda, nesne bulunamadı sayfası alıyorum.
nas

1
birisi xdebug ile birden fazla php sürümü çalışabilir? aldımError message: End of script output before headers: php-cgi.exe
Noman

87

İhtiyacınız olan PHP sürümlerini indirebilir ve kendi dizinlerine yerleştirebilirsiniz, örn.

c:\php5\

c:\php7\

Tek yapmanız gereken web sunucunuza (Apache) hangi PHP sürümünü kullanacağınızı, hangisini uygun modülü yükleyerek yapacağınızı söylemektir. Apache'de dosyayı bularak httpd.confve ardından uygun satırı düzenleyerek yapabilirsiniz:

LoadModule php7_module c:\php7\libphp7.so

Elbette doğru yolları bulmanız gerekecek - bu sadece örnekleme içindir.

httpd.confSunucunuzu kaydedin ve yeniden başlatın. Yeniden başlatmazsanız, değişikliklerin etkili olmayacağını unutmayın.

Bunu yapabilmek için bir GUI anahtarı yok, .confdosyayı düzenlemeniz ve ardından Apache'yi yeniden başlatmanız gerekiyor. Bunu yapmak sadece birkaç saniye sürer ve hatta bir sürüm hakkında yorum yapabilirsiniz, böylece "geçiş" sadece birkaç tuşa basar, ör.

PHP 5 Kullanın:

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

PHP 7 Kullanın:

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

XAMPP'nin birden çok sürümüne veya çift önyüklemeye ihtiyacınız yoktur veya farklı bir makine veya kıvrımlı çözümler öneren diğer "çözümlerden" herhangi birini kullanmanız gerekmez. OP XAMPP kullanmak ve hangi PHP sürümünü kullanacağını söylemek istiyor. Bu, bunu yapmanın en hızlı ve en etkili yoludur ve yalnızca bir XAMPP kurulumu gerektirir.

Düzenleme 1-Kasım-2017: Görünüşe göre bazı insanlar .soWindows'ta dosya olmadığını söylüyor . Verdiğim cevap Mac'imde nasıl ayarlandığımdan uyarlandı (bunun .soyerine dosyaları kullanıyor .dll). Ancak cevap prensibi hala doğrudur. PHP modülünün ( veya ) sisteminizde nerede bulunduğunuhttpd.conf belirtmek için Apache'nin yapılandırma dosyasını kullanıyorsunuz . Yani Windows için tek fark dosya adı ve / veya yol konumu olacaktır. Verdiğim cevap, Apache / PHP'nin vanilya kurulumu için de doğru (XAMPP olmadan)..so.dll


3
Tekrar kontrol ettim. Onu bulamadım. Lütfen httpd.conf dosyamı kontrol edebilir misiniz? Bu onun kopyası. freetexthost.com/sjxz4lh1i5 Değiştirmem gereken çizgiyi bulursanız lütfen bize bildirin.
Ben En Aptal

2
XAMPP içine herhangi bir libphp7.so ve conf dosyasına herhangi bir LoadModule dizesi yok
Federico Schiocchet

2
Ben de bu girişi bulamadım. Ayrıca php dizinimi aradım ve hiç .so dosyası bulamadım.
Eoin

19
V3.2.2'de satır xampp / apache / conf / extra / httpd-xampp.conf
Manuel

5
Sadece bir satır değil. Httpd-xampp.conf dosyasının iyi bir bölümünü düzenlemeniz gerekir. Bu nedenle, her seferinde httpd-xampp.conf dosyasının tamamını değiştirmek daha iyidir.
Jeffz

34

Şunları yapabilirsiniz indirmek (ilk php7 ikinci php5 olan): ve ben do gibi iki farklı xampps yüklemek resim açıklamasını buraya girin

ve bunu yapmak istemiyorsanız, wamp kullanmanızı ve burada gösterilen sürümleri değiştirmenizi öneririm .


4
Neden bunu yaptın? Aynı yazılımın birçoğunu, sadece küçük bir fark için kuruyorsunuz (Apache ve MySQL gibi yazılımın geri kalanı tamamen aynı olduğunda, PHP'nin farklı sürümü). Ben sadece bir XAMPP yüklemesi kullanmak ve PHP uygun sürümüne işaret bir çözüm yayınladım.
Andy

15
Neden bunu yaptın? çünkü çalışır ve biraz zaman kazandırırsa birden fazla apache ve mysql yüklü olmasını umursamıyorum.
Maulik Gangani

23
Burada en iyi uygulamaları önemsemeye gerek yok, bu yerel bir ortam
Ricardo Vigatti

2
Bu yaklaşımı kullanıyorum, ayrıca, her kurulum için belirli başlangıç ​​menüsü girişleri eklemenizi tavsiye ederim, örneğin: C: \ ProgramData \ Microsoft \ Windows \ Başlat Menüsü \ Programs \ XAMPP56 ve C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programlar \ XAMPP7 örneğin
Ricardo Vigatti

2
Bu iyi bir çözüm değilse neden doğru bir çözüm göndermiyorsunuz? Aslında aynı xampp 2 sürümleri yüklemek çok zor ve buradaki tüm çözümler yanlış ...
Federico Schiocchet

12

Docker'ı kullanmanızı tavsiye ederim, bu, ortamı çeşitli bileşenlere bölmenizi ve istediğiniz zaman karıştırıp eşleştirmenizi sağlar.

Docker, MySQL ile bir konteyner, diğeri PHP ile çalıştırmanıza izin verecektir. Ayrı görüntüler olduklarından iki kapsayıcı olabilir, bir PHP 5 başka bir PHP 7, hangisini istediğinize başlarsınız ve 80 numaralı bağlantı noktası her iki kapsayıcıya eşlenebilir.

https://hub.docker.com , çok fazla uğraşmadan yükleyip çalıştırabileceğiniz çok çeşitli önceden yapılandırılmış görüntülere sahiptir.

Ayrıca docker kurulumunuzun çeşitli yönlerini yönetmenizi sağlayan bir resim olarak portainer ekledim - bir docker görüntüsü içinden (komut satırını kullanmak zorunda kalmamı sağlamak için başlangıçta bu kapsayıcıyı başlattım). Sizin için her şeyi yapmaz ve bazen görüntüleri komut satırından ilk kez yapılandırmak ve başlatmak daha kolaydır, ancak bir kez kurulum yaptıktan sonra bir web arayüzü üzerinden başlatabilir ve durdurabilirsiniz.

Her iki kapsayıcıyı aynı anda çalıştırmak ve her biri için ayrı bağlantı noktalarını eşlemek de mümkündür. Yani port 80, PHP 5 ve 81 ile PHP 81 arasında eşlenebilir (Veya 2017'de izliyorsanız PHP 7).

Docker'ın ( https://docs.docker.com/engine/installation/ ) nasıl kurulacağına ve diğer 'nasıl' yazılabileceğine dair çeşitli öğreticiler vardır . Geliştirme ortamı yapılandırması için http://www.masterzendframework.com/docker-development-environment/ adresini deneyin .


Bunu ikinciyim. Şirketinize bir iyilik yapın ve Docker'ı çalıştırın. PHP sürümlerini değiştirin, yeni geliştiricileri daha hızlı kullanın, konuşlandırmayı kolaylaştırın ve üretimde sürpriz yok.
Kris Peeling

ve 81'den PHP 81'e kadar. PHP 7 mi demek istediniz? Bence PHP 81'den henüz bir
Andy

2
Errrr ... Gerçekten 81 demek istedim (Cevabımın geleceğe dair kanıt olmasını sağlıyorum: - /)
Nigel Ren

1
@NigelRen Oy vermedim ama bunun XAMPP içinde nasıl mümkün olduğunu ele almak yerine tamamen farklı bir çözüm (Docker) kullanmanızı önermişsinizdir - ki bu kesinlikle. Cevabınız soruna (çok iyi) alternatif bir çözümdür, ancak sorulan soruya bir cevap değildir.
Andy

7

Uniserver kullanıyorum.

Yerleşik bu özelliği vardır.

http://www.uniformserver.com/

Bu kadar basit.

Uniform Server, Windows için ücretsiz, hafif bir WAMP sunucu çözümüdür. 24 MB'tan az, modüler tasarım, Apache2, Perl5, PHP'nin en son sürümlerini (PHP53, PHP54, PHP55 veya PHP56 arasında geçiş), MySQL5 veya MariaDB5, phpMyAdmin veya Adminer4'ü içerir. Kurulum gerektirmez! Kayıt defteri tozu yok! Sadece aç ve ateş et!

Bir flash sürücüden bile çalışıyor. Cron öykünmesi, perl desteği, mariaDB, Mysql'in birkaç sürümü, filezilla sunucusu ve birkaç şey var.

resim açıklamasını buraya girin


Bu bence en iyi çözüm. Hayatımı kurtardım.
skpaul

Bir virüs uyarısı alıyorum. Win32 / Uwamson.A! Ml
Norman Huth

6

XAMPP'nin iki farklı sürümüne sahip olabilirsiniz.

  • Bu dosyaları https://www.apachefriends.org/download.html adresinden indirin ve istediğiniz bir dizine yükleyin, örneğin C: \ 5.6.31 \ xampp ve C: \ 7.1.18 \ xampp.
  • Her kurulumdan sonra kurulu dizine gidin (örn. C: \ 5.6.31 \ xampp, C: \ 7.1.18 \ xampp) ve "setup_xampp.bat" dosyasını başlatın ve böyle bir şey görmelisiniz .
  • Masaüstünüzde "xampp-control.exe" kısayollarını yapabilirsiniz ("xampp-control.exe" Gönder -> Masaüstüne sağ tıklayın) ve ex için kısayolları yeniden adlandırabilirsiniz. "xampp 5.6.31" ve "xampp 7.1.8".
  • XAMPP kontrol panelini "xampp-control.exe" ya da önceden oluşturulmuş kısayolu çift tıklatarak başlatın ve Apache ve MySQL sunucularını başlatın.
  • Yüklemeyi test etmek için tarayıcınızı açın ve konum çubuğuna 127.0.0.1 veya localhost yazın. XAMPP başlangıç ​​ekranını görmelisiniz.
  • Bir XAMPP kontrol panelinden daha fazlasını açmayın.
  • XAMPP kaldırma? "Xampp" Dizinini kaldırmanız yeterlidir. Ama önce apache ve mysql kapatın lütfen.
  • Bu kadar. Karşılık gelen XAMPP kontrol panelini açarak farklı php sürümleri kullanabilirsiniz.

Gerçekten mümkünse 1 kurulum ile yapın, neden bir çözüm göndermiyorsunuz? Aslında 2 sürümü yüklemek çok zor ve buradaki tüm çözümler yanlış ...
Federico Schiocchet

@Andy DB çok büyük değilse, çift kurulum uygulanabilir bir seçenektir. Ama cevabın benim oyumu aldı.
Jeffz

6

On yıllık bir proje üzerinde çalışıyorum. Yani 5.6 benim varsayılanım. Ayrıca sadece 5.2 ile çalışan daha eski küçük projeler var ve ayrıca 7.3.8 ile kişisel projelerim için yeni sürümler üzerinde çalışmak istiyorum

İşte varsayılan 5.6 sürümünde 5.2 ve 7.3.8 eklemek için yaptım.

1 - İndirilen php TS sürümleri;

2 - Sırayla c: \ xampp \ php738 ve c: \ xampp \ php52 klasörüne çıkarıldı

3 - Bu satırları httpd-xampp.conf (veya httpd.conf) altına ekledi;

*** ÖNEMLİ UYARI: Komut dosyası takma adı adını hedef klasör adınız olarak KULLANMAMALISINIZ, bunlar farklı olmalıdır. (örneğin / php7x iyi, / php7 iyi değil)

D klasörü için PHP 7.3.8: \ 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>

D klasörü için PHP 5.2: \ 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>

Bazı yararlı notlar:

  • 7.3.8 için besteci anahtar terminalini kullanırken php5.x ile ilgili sorunlarınız varsa
  • Eğer php 7.3.8 varsayılan komut satırı php yorumlayıcı yapmak istiyorsanız sadece php için windows çevre yolunu 7.3.8 klasör yoluna değiştirin.
  • Her sürüm klasöründe ihtiyacınız olan ilgili php.ini confs dosyasını düzenlemeyi unutmayın.

Ve son bonus notu olarak, sürümlerden herhangi biriyle sanal bir ana bilgisayar ayarlamanız gerekiyorsa benzer yaklaşımı kullanabilirsiniz. Php 7.3.8 için bir örnek 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'ya ayrıntılı cevap için teşekkürler, yukarıdaki önemli bildirimle sağlam bir örnek paylaşmak istedim.


5

Kesinlikle ve kesinlikle XAMPP olması gerekmedikçe, WAMP ile istediğinizi almaya çalışabilirsiniz. WAMP, farklı pakette hemen hemen aynı şeydir.

Yükledikten sonra, burada php sürümleri arasında geçiş yapabilirsiniz:

resim açıklamasını buraya girin

İstediğiniz kadar PHP sürümü yükleyebilirsiniz.

İşte nasıl ayrıntılı olarak yapılır.

Sadece buraya gidin: WAMP indir

Ardından temel sunucunuzu seçin, örneğin en son php7 ile.

Ardından, WAMP 3 yüklendiğinde, klasör: addons'a gidin ve bulunduğunuz php sürümünü (veya sürümlerini) seçin. Onlar mysql_connect ile çalışması gereken php 5.3.29 itibaren başlayan php tatlar sunuyoruz.

Eklentiyi kurmak için, kurulum sırasında (exe dosyasına çift tıklayın) sadece WAMP 3'ün kurulu olduğu klasörü gösterin.

Ardından, daha fazla işlevsellik eklemek için uygulamalar vb. Gibi diğer klasörlerin içeriğini kullanabilirsiniz .

Her şey birbirine bağlıdır, böylece kodlamaya ve ortamınızı hacklememeye konsantre olabilirsiniz.


4

Evet yapabilirsin. Yüklü bir xampp yüklü olduğunu varsayıyorum. Yani,

  • Tüm xampp örneklerini kapatın. Görev yöneticisi kullanarak apache ve mysqld durdurun.
  • Sonra xampp'i xampp1 veya xampp adından sonra başka bir adla yeniden adlandırın.
  • Şimdi diğer xampp sürümünü indirin. Yalnızca xampp klasör adı oluşturun. İndirilen xampp'i buraya yükleyin.
  • Şimdi gereksiniminizin xampp sürümüne bağlı olarak, hedef klasörü yalnızca xampp olarak ve diğer klasörü farklı adla yeniden adlandırmanız yeterlidir.

Kurulu birden çok xampp ile bu şekilde çalışıyorum


4
Bu cevap işe yaradığından ve sorunun tam olarak sorduğu sorudan dolayı bunun neden düştüğünden emin değilim. İyileştirme önermeksizin sessiz iniş, genel olarak zekice bir şey değildir.
Fabian Schöner

@ FabianSchöner Teşekkürler. Bu cevapta neden reddedildiğimi bilmiyorum.
Shuvro

1
Aşağı indirilmesinin nedeni, birisinin tam olarak bu yanıtı göndermiş olmasıdır. İkincisi, küçük bir fark elde etmek için TÜM aynı yazılımı tekrar yüklediğiniz için bir şeyler yapmanın tamamen gereksiz bir yolu. Gönderdiğim cevapta belirtildiği gibi, XAMPP'nin 1 yüklemesini kullanmak ve daha sonra PHP'nin farklı sürümlerini kullanacak şekilde yapılandırmak mümkündür.
Andy

3

Tek bir XAMPP kurulumuyla birden fazla PHP sürümünün ayarlanması mümkündür. Aşağıdaki talimatlar Windows için çalışmaktadır.

  1. Windows için en son XAMPP sürümünü yükleyin (benim durumumda PHP 7.1 ile oldu)
  2. Apache'nin XAMPP Kontrol Panelinden çalışmadığından emin olun
  3. Olarak XAMPP php dizin dizin, böyle yüklemek yeniden adlandırma C:\xampp\phphaline C:\xampp\php-7.1.11.
  4. Ek olarak çalıştırmak istediğiniz PHP sürümünü indirin (Örn: PHP 5.4.45 )
  5. Php dizinini indirdiğiniz versiyondan XAMPP kurulum dizinine taşıyın. PHP sürümünü içerecek şekilde yeniden adlandırın. Gibi C:\xampp\php-5.4.45.

Şimdi XAMPP ve Apache yapılandırmasını düzenlemeniz gerekiyor:

  1. İçinde C:\xampp\apache\conf\httpd.conf, PHP için XAMPP ayarlarını bulun, aşağıdaki gibi bir şeye değiştirmelisiniz:

#Diğer PHP sürümlerine yorum yapmak zorunda olduğunuzda ( o anda) yalnızca bir tanesi Includeyorumlanacaktır.

#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. Şimdi de C:\xampp\apache\conf\extradizin yeniden adlandırma httpd-xampp.confiçin httpd-xampp.conf.7.1ve yeni bir yapılandırma dosyası eklemek httpd-xampp.conf.5.4.45. Benim durumumda, sözdizimi her sürüm için biraz farklı olabileceğinden php 5.5 için başka bir XAMPP kurulumunun conf dosyasını kopyaladım.

  2. Düzen httpd-xampp.conf.5.4.45ve httpd-xampp.conf.7.1ve değiştir orada tüm referans phpyeni ile dizine php-X.Xsürümü. Her dosya için burada en az 10 değişiklik yapılacak.

  3. Şimdi iki sürüm için php.ini dosyasını düzenlemeniz gerekiyor. Php 7.1, düzenleme için Örneğin C:\xampp\php-7.1.11\php.inisizin için php dizininin yolunu değiştirir include_path, browscap, error_log, extension_dir..

Ve bu kadar. Artık Apache'yi XAMPP Denetim Masası'ndan başlatabilirsiniz. Bir sürümden diğerine geçmek için, C:\xampp\apache\conf\httpd.confApache'yi yeniden başlatmadan önce yalnızca dahil edilen PHP sürümünü düzenlemeniz ve değiştirmeniz gerekir .


3

Komut İstemi pencerelerinde (cmd.exe) çalıştırın.

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

php 7 kurulumunu nereye koyacağınıza bağlı olarak değiştirin.


2

Bu yapılandırmalarla zaman kaybetmenize gerek yok sadece MAMP kullanın :)

MAMP, arayüzde bir PHP sürüm seçim özelliğine sahiptir.


2

Bu muhtemelen sorunun en az teknik yanıtıdır, ancak başarılması en kolay yöntemdir.

C: ve D: gibi iki sürücünüz varsa , farklı php sürümlerine sahip her iki sürücüye ayrı bir XAMPP örneği yükleyebilirsiniz. Bu beni yapmak için 10 dakikadan daha az sürdü ve en az hata eğilimli.

Ben sadece xampp-control.exe iki masaüstü kısayolları oluşturmak ve onların php sürümü sonra kısayolları adlandırın. Umarım bu benim gibi birine çok hızlı ve kirli bir çözümü tercih eder.


1

Bu kolay adımları izleyin . Şu anda PHP 7.2'de XAMPP kullanıyorum ancak eski projelerde çalışmak için PHP 5.6 gerekiyor

AŞAMA 1

Https://windows.php.net/download adresinden PHP'nin Thread Safe sürümünü indirin

[Drive] sürücünüze dosya yerleştirin: \ xampp \ php5.6

  • Php sürümüne bağlı olarak klasörü yeniden adlandırın

ADIM 2

[Drive] 'ı kopyalayın: \ xampp \ apache \ conf \ extra \ httpd-xampp.conf

[Drive] olarak yeniden adlandırın: \ xampp \ apache \ conf \ extra \ httpd-xampp5.6.conf Php sürümüne bağlı olarak dosyayı yeniden adlandırın

AŞAMA 3

Yeni oluşturulan 'httpd-xampp5.6.conf' dosyasını düzenleyin

Temelde Tüm PHP kaynağını ve .dll dosyasını değiştirmeniz gerekir

Önce

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

Sonra

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

İşte benim dosyam: https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec

4.ADIM

[Drive] dosyasını düzenleyin: \ xampp \ apache \ conf \ httpd.conf

Önce

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

Sonra

# XAMPP settings
Include "conf/extra/httpd-xampp5.6.conf"
  • Farklı sürüme geçiş yaparken bu satırı düzenleyebilirsiniz

ADIM 5

PHP 5.6 yapılandırmanızı düzenleyin - php.ini

Size uzantı dizini ekleyin: extension_dir = "C: \ xampp \ php5.6 \ ext"

6.ADIM

Apache'yi başlat

7.ADIM

Windows'ta PHP ortam değişkeni yolunu düzenleme


0

Belki biraz geç, ama ben PHP klasörler ( yıllar önce buldum phpswitch biraz değiştirilmiş bir sürümü) yeniden adlandırmak için bir toplu iş kullanıyorum .

Farklı klasörleri XAMPP kurulumunuza kopyalarsınız. Her PHP klasörü (etkin olanlar hariç) sürüm numarasını bir sonek olarak alır (örn. Php_5.6.32 ). In TÜM Senaryo bu bilgileri kapmak böylece PHP klasörler, bir dosyanın (PHP_VERSION), sadece ilgili sürüm numarasını içeren, oluşturulur. Ancak bunların hepsi README'de açıklanmıştır.

PHP7 yana httpd-xampp.conf yükleri php7ts.dll yerine php5ts.dll . Bu yüzden aynı yaklaşımı izleyerek bu yapılandırma dosyalarını yeniden adlandırmak için komut dosyasını (PHPSwitch.php) genişletmek zorunda kaldım.

    $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

Aynı şeyi yapmam gerekiyordu, bu yüzden OP'nin aynı sorunu olduğu yerde nasıl taştı ve yığın taşmaya geldim ... Yani bulgularım .. Dosyaları farklı yönlerden yeniden adlandırmayı denedim ve sonucum temelde beni alıyor çok uzun. SOOOO Ben sadece sürüm 7 yüklemek buradan sona erdi:

https://www.apachefriends.org/index.html (hizmetleri öldürün ve denemeden önce xampp'den çıkın)

Dizin adını nereye koyacağınız sorulduğunda (farklı bir ad verin):

resim açıklamasını buraya girin

ve

DONEZO! Şimdi sadece ileri geri takas hizmetlerini öldürmek ve çıkmak emin olun ve oynamak için 2 steril XAMPP envs var ..

Yaşasın! şimdi işe başlayabilirim!


Zaten yukarıdaki 2 cevap, Maulik Gangani ve og1842 tarafından önerildiğini düşünüyorum.
Munim Munna


0

Bu eski yazı olduğunu biliyorum ama ben hala PHP 7 mysql_connect () çalıştırmak için kütüphane paylaşmak istiyorum Bu gerçek işlevi (mysql_connect () bu kütüphane üzerinde çalışan mysqli_connect () tarafından geçersiz kılınarak çalışır.

Bu videodan https://www.youtube.com/watch?v=Eqd-jJu4sQ4 buldum

umarım yardımcı olur


0

~ 7.3.0 gerektirirken magento2'yi yüklerken aynı sorunla karşılaştım ama 7.4.1'e sahibim. Bu yüzden, bu yöntemi kullanarak php sürümünü düşürdüm.

Adım 1: Php sürümünü buradan indirin nts sürümü https://windows.php.net/downloads/releases/archives/ ve bu sürümü 'php71' olarak adlandırılan c: \ xampp \ klasörüne yapıştırın

Adım 2: Sanal Ana Bilgisayar Ortamı'nı kurun ve başka değişiklikler yapın. "C: \ xampp / \ pache \ conf \ extra \ httpd-vhosts.conf" adresine gidin ve kod snippet'ini satır sonuna yerleştirin

<VirtualHost 127.0.0.1:80>
    DocumentRoot "C:/xampp/htdocs/magento/crashcourse/"
    ServerName magento2.test
    <Directory "C:/xampp/htdocs/magento/crashcourse/">
        Require all granted    
    </Directory>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php71-cgi
    </FilesMatch>
</VirtualHost>

"C: \ Windows \ System32 \ drivers \ etc \ hosts" dizinine gidin ve dosyayı yönetici ayrıcalıklarını kullanarak düzenleyin ve ardından kodu satırın sonuna ekleyin.

127.0.0.1 magento2.test

Apache Config dosyasına "c: /xampp/apache/conf/extra/httpd-xampp.conf" gidin ve satırın sonuna aşağıdaki kodu yapıştırın

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

Şimdi, hepsi hazır. Url adresine gidin: http: //magento2.test hepsi iyi çalışıyor!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.