Apakah ada cara untuk menggunakan dua versi PHP di XAMPP?


157

Kami menjalankan XAMPP dengan PHP 7.0 karena produk baru kami membutuhkan PHP 7.

Tetapi ada proyek-proyek lama yang menggunakan fungsi seperti mysql_connect, dll. Itu dihapus di PHP 7.0.

Jadi, apakah ada cara untuk dengan mudah mengubah versi PHP di XAMPP?

Catatan : Tolong jangan menyarankan untuk memutakhirkan proyek lama menjadi kompatibel dengan versi baru karena saya tidak dalam posisi untuk melakukannya karena keputusan itu saya tidak bisa dapatkan sebagai pengembang (hanya seorang karyawan).


Saya tidak berpikir ada solusi untuk apa yang ingin Anda lakukan selain meningkatkan. Anda juga seharusnya tidak menemukan cara untuk membuat API yang lama dan usang kompatibel. Mereka harus dihilangkan total. Jelas itu banyak pekerjaan, tetapi itu akan menjamin ketenangan pikiran
Rotimi

1
Saya berhenti dan mulai Apache ketika saya ingin beralih versi PHP di MAMP. Ini menyebalkan, tapi berhasil.
Scott C Wilson

Anda bisa dual boot

Anda dapat membuat virtual host kemudian menentukan versi php untuk masing-masing
Aref Ben Lazrek

2
@IlmariKaronen Saya ingin beralih di antara mereka di workstation pengembangan Anda. Cukup saya ingin menggunakan PHP 5 ketika saya melakukan Proyek A, saya ingin PHP 7 ketika saya melakukan Proyek B. Bahkan jawaban terberat dinilai tidak berfungsi, saya tidak dapat menemukannya ... Dan banyak pengguna ..
Saya Akulah Orang yang Paling Bodoh

Jawaban:


133

Mengapa beralih di antara versi PHP ketika Anda dapat menggunakan beberapa versi PHP secara bersamaan dengan instalasi xampp tunggal ? Dengan satu instalasi xampp, Anda memiliki 2 opsi:

  1. Jalankan versi PHP yang lebih lama hanya untuk direktori proyek lama Anda: Ini akan melayani sebagian besar waktu, Anda mungkin memiliki satu atau dua proyek lama yang ingin Anda jalankan dengan versi PHP yang lebih lama. Cukup konfigurasikan xampp untuk menjalankan versi PHP lama hanya untuk direktori proyek tersebut.

  2. Jalankan versi PHP lama pada port xampp yang terpisah: Kadang-kadang Anda mungkin memutakhirkan dan memproyeksikan lama ke versi PHP terbaru saat Anda perlu menjalankan proyek yang sama pada versi PHP baru dan lama bolak-balik. Kemudian Anda dapat mengatur versi PHP yang lebih lama pada port yang berbeda (katakanlah 8056) sehingga ketika Anda pergi ke http://localhost/any_project/xampp menjalankan PHP 7 dan ketika Anda pergi ke http://localhost:8056/any_project/xampp menjalankan PHP 5.6.

  3. Jalankan versi PHP yang lebih lama di virtualhost: Anda dapat membuat virtualhost seperti localhost56 untuk menjalankan PHP 5.6 saat Anda dapat menggunakan PHP 7 di localhost.

Mari kita atur.

Langkah 1: Unduh PHP

Jadi Anda menjalankan PHP 7 di bawah xampp, Anda ingin menambahkan versi PHP yang lebih lama, katakanlah PHP 5.6. Unduh versi nts (Non Thread Safe) versi arsip zip PHP dari php.net (lihat arsip untuk versi yang lebih lama) dan ekstrak file di bawah c:\xampp\php56. Versi utas aman tidak termasuk php-cgi.exe.

Langkah 2: Konfigurasiphp.ini

Buka c:\xampp\php56\php.inifile di notepad. Jika file tidak ada salin php.ini-developmentke php.inidan buka di notepad. Kemudian batalkan komentar pada baris berikut:

extension_dir = "ext"

Langkah 3: Konfigurasikan apache

Buka panel kontrol xampp, klik tombol config untuk apache, dan klik Apache (httpd-xampp.conf). Sebuah file teks akan terbuka menempatkan pengaturan berikut di bagian bawah file:

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>

Catatan: Anda dapat menambahkan lebih banyak versi PHP ke instalasi xampp Anda mengikuti langkah 1 hingga 3 jika Anda mau.

Langkah 4 (opsi 1): [Tambahkan Direktori untuk menjalankan versi PHP tertentu]

Sekarang Anda dapat mengatur direktori yang akan berjalan dalam PHP 5.6. Cukup tambahkan berikut ini di bagian bawah file konfigurasi untuk mengatur direktori.

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

Langkah 4 (opsi 2): [Jalankan versi PHP lama pada port terpisah]

Sekarang untuk mengatur PHP v5.6 ke port 8056 tambahkan kode berikut ke bagian bawah file konfigurasi.

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

Langkah 4 (opsi 3): [Jalankan versi PHP yang lebih lama di virtualhost]

Untuk membuat virtualhost (localhost56) pada direktori (htdocs56) untuk menggunakan PHP v5.6 di http: // localhost56 , buat direktori htdocs56 di lokasi yang Anda inginkan dan tambahkan localhost56 ke file host Anda ( lihat caranya ), lalu tambahkan kode berikut ke bagian bawah file 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>

Selesai: Simpan dan Mulai Ulang Apache

Simpan dan tutup file konfigurasi, Restart apache dari panel kontrol xampp. Jika Anda memilih opsi 2, Anda dapat melihat port tambahan (8056) yang tercantum di panel kontrol xampp Anda.

masukkan deskripsi gambar di sini

Pembaruan untuk Kesalahan:
header salah bentuk dari skrip 'php-cgi.exe': Header salah

Jika Anda menemukan kesalahan di atas, buka httpd-xampp.conflagi dan komentari baris berikut dengan # yang memimpin (karakter hash).

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

9
Hai, saya sedang mencoba metode ini (Langkah 4 Opsi 1), tetapi mendapatkan kesalahan header salah bentuk dari skrip 'php-cgi.exe': Header buruk: <br />, ada ide apa masalahnya?
Priyanshu

@Priyanshu apakah instalasi PHP Anda OK? Bisakah Anda menjalankan file PHP dari baris perintah seperti php somefile.phptanpa kesalahan?
Munim Munna

2
Jawabannya bahkan tidak lagi berisi kode untuk dimasukkan SetEnv PHPRCjadi saya tidak bisa berkomentar, namun saya masih mendapatkan kesalahan itu. :(
Brett

1
Hai. ketika saya menjalankan localhost: 8056, saya mendapatkan objek tidak ditemukan halaman.
nas

1
seseorang dapat bekerja beberapa versi php dengan xdebug? saya dapatkanError message: End of script output before headers: php-cgi.exe
Noman

87

Anda dapat mengunduh versi PHP apa pun yang Anda butuhkan dan menempatkannya di direktori mereka sendiri, mis

c:\php5\

c:\php7\

Yang perlu Anda lakukan adalah memberi tahu server web Anda (Apache) versi PHP mana yang akan digunakan, yang Anda lakukan dengan memuat modul yang sesuai. Di Apache Anda dapat melakukan ini dengan menemukan file httpd.confdan kemudian mengedit baris yang sesuai:

LoadModule php7_module c:\php7\libphp7.so

Anda harus mencari jalan yang benar tentu saja - ini hanya untuk ilustrasi.

Simpan httpd.confdan mulai ulang server Anda. Catatan, jika Anda tidak memulai ulang, perubahan tidak akan berpengaruh.

Tidak ada saklar GUI untuk dapat melakukan ini, Anda perlu mengedit .conffile dan kemudian restart Apache. Melakukan ini hanya membutuhkan beberapa detik dan Anda bahkan dapat berkomentar versi sehingga "beralih" hanya membutuhkan beberapa penekanan tombol, misalnya

Gunakan PHP 5:

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

Gunakan PHP 7:

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

Anda tidak perlu beberapa versi XAMPP , atau untuk dual boot, atau menggunakan mesin yang berbeda, atau "solusi" lainnya yang menyarankan solusi yang berbelit-belit. OP ingin menggunakan XAMPP dan memberitahukan versi PHP mana yang akan digunakan. Ini adalah cara tercepat dan paling efisien untuk melakukannya, dan hanya memerlukan satu instalasi XAMPP.

Sunting 1-Nov-2017: Rupanya beberapa orang mengatakan tidak ada .sofile di Windows. Jawaban yang saya berikan diadaptasi dari bagaimana saya mengatur berbagai hal pada Mac saya (yang menggunakan .sofile alih-alih .dll). Namun prinsip jawabannya masih tetap benar. Anda menggunakan file konfigurasi Apache, httpd.confuntuk menentukan di mana modul PHP ( .soatau .dll) berada di sistem Anda. Jadi satu-satunya perbedaan untuk Windows adalah nama file dan / atau lokasi jalur. Jawaban yang saya berikan juga benar untuk instalasi vanilla dari Apache / PHP (tanpa XAMPP sama sekali).


3
Saya kembali memeriksa. Saya tidak dapat menemukannya. Tolong periksa file httpd.conf saya. Ini salinannya. freetexthost.com/sjxz4lh1i5 Tolong beri tahu saya jika Anda menemukan baris yang harus saya ubah.
Saya Orang yang Paling Bodoh

2
Tidak ada libphp7.so ke dalam XAMPP dan semua string LoadModule ke dalam file conf
Federico Schiocchet

2
Saya juga tidak dapat menemukan entri ini. Saya juga mencari direktori php saya dan tidak dapat menemukan file .so sama sekali.
Eoin

19
Dalam v3.2.2 baris terletak di xampp / apache / conf / extra / httpd-xampp.conf
Manuel

5
Bukan hanya satu baris. Anda harus mengedit sebagian httpd-xampp.conf. Jadi lebih baik untuk beralih seluruh httpd-xampp.conf setiap kali Anda harus.
Jeffz

34

Anda dapat mengunduh dan menginstal dua xampps yang berbeda seperti yang saya lakukan: (pertama adalah php7 detik adalah php5) masukkan deskripsi gambar di sini

dan jika Anda tidak ingin melakukan itu, saya sarankan Anda menggunakan wamp dan mengubah versi seperti yang ditunjukkan di sini .


4
Mengapa kamu melakukan ini? Anda menginstal banyak perangkat lunak yang sama lagi, hanya untuk perbedaan kecil (versi PHP yang berbeda, ketika perangkat lunak lain seperti Apache dan MySQL persis sama). Saya telah memposting solusi di mana Anda cukup menggunakan 1 instalasi XAMPP dan arahkan ke versi PHP yang sesuai.
Andy

15
Mengapa kamu melakukan ini? karena berfungsi, dan saya tidak keberatan menginstal beberapa apache dan mysql jika menghemat waktu.
Maulik Gangani

23
tidak perlu peduli dengan praktik terbaik di sini, ini adalah lingkungan lokal
Ricardo Vigatti

2
Saya menggunakan pendekatan ini, dalam adition, saya sarankan Anda untuk menambahkan entri menu mulai khusus untuk setiap instalasi, seperti: C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Program \ XAMPP56 dan C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Program \ XAMPP7 misalnya
Ricardo Vigatti

2
Jika ini bukan solusi yang baik mengapa Anda tidak memposting solusi yang benar? Sebenarnya sangat sulit menginstal 2 versi pada xampp yang sama dan semua solusi di sini salah ...
Federico Schiocchet

12

Saya akan merekomendasikan menggunakan Docker, ini memungkinkan Anda untuk membagi lingkungan menjadi berbagai komponen dan mencampur dan mencocokkan yang Anda inginkan kapan saja.

Docker akan memungkinkan Anda untuk menjalankan satu wadah dengan MySQL, yang lain dengan PHP. Karena keduanya adalah gambar yang terpisah, Anda dapat memiliki dua wadah, satu PHP 5 PHP 7 lainnya, Anda memulai yang mana yang Anda inginkan dan port 80 dapat dipetakan ke kedua wadah.

https://hub.docker.com memiliki berbagai gambar yang telah dikonfigurasikan sebelumnya yang dapat Anda instal dan jalankan tanpa banyak kesulitan.

Saya juga menambahkan portainer sebagai gambar, yang memungkinkan Anda untuk mengelola berbagai aspek pengaturan buruh pelabuhan Anda - dari dalam gambar buruh pelabuhan (saya memang mulai wadah ini pada startup untuk menyelamatkan saya harus menggunakan baris perintah). Itu tidak melakukan segalanya untuk Anda dan kadang-kadang lebih mudah untuk mengkonfigurasi dan meluncurkan gambar untuk pertama kalinya dari baris perintah, tetapi sekali pengaturan Anda dapat memulai dan menghentikannya melalui antarmuka web.

Dimungkinkan juga untuk menjalankan kedua kontainer secara bersamaan dan memetakan port yang terpisah untuk masing-masing. Jadi port 80 dapat dipetakan ke PHP 5 dan 81 ke PHP 81 (Atau PHP 7 jika Anda menonton ini di 2017).

Ada berbagai tutorial tentang cara memasang Docker ( https://docs.docker.com/engine/installation/ ) dan banyak hal ketik 'bagaimana cara' lainnya. Coba http://www.masterzendframework.com/docker-development-environment/ untuk konfigurasi lingkungan pengembangan.


Saya yang kedua ini. Bantulah perusahaan Anda dan jalankan Docker. Ganti versi PHP, lebih cepat dengan pengembang baru, buat penyebaran lebih mudah, dan tidak ada kejutan dalam produksi.
Kris Peeling

dan 81 ke PHP 81. maksud Anda PHP 7? Saya pikir kita masih jauh dari PHP 81 :)
Andy

2
Errrr ... Maksud saya 81 (saya memastikan jawaban saya adalah bukti di masa depan: - /)
Nigel Ren

1
@NigelRen Saya belum memilihnya tetapi akan menebak bahwa itu karena Anda mengusulkan menggunakan solusi yang sama sekali berbeda (Docker) daripada membahas bagaimana hal itu mungkin dalam XAMPP - yang memang sudah pasti. Jawaban Anda adalah solusi alternatif (sangat bagus) untuk masalah tersebut, tetapi bukan jawaban untuk pertanyaan yang diajukan.
Andy

7

Saya menggunakan Uniserver.

Ini memiliki fitur bawaan.

http://www.uniformserver.com/

Sesederhana itu.

Uniform Server adalah solusi server WAMP ringan gratis untuk Windows. Kurang dari 24MB, desain modular, termasuk versi terbaru dari Apache2, Perl5, PHP (beralih antara PHP53, PHP54, PHP55 atau PHP56), MySQL5 atau MariaDB5, phpMyAdmin atau Adminer4. Tidak diperlukan instalasi! Tidak ada debu registri! Buka saja dan nyalakan!

Itu bahkan lari dari flash drive. Memiliki emulasi cron, dukungan untuk perl, mariaDB, beberapa versi Mysql, server filezilla dan beberapa hal lainnya.

masukkan deskripsi gambar di sini


Ini adalah solusi terbaik yang saya pikir. Saya menyelamatkan hidup saya.
skpaul

Saya mendapatkan peringatan virus. Win32 / Uwamson.A! Ml
Norman Huth

6

Anda dapat memiliki dua versi XAMPP yang berbeda.

  • Unduh file-file itu dari https://www.apachefriends.org/download.html dan instal ke direktori pilihan Anda, misalnya dalam C: \ 5.6.31 \ xampp dan C: \ 7.1.18 \ xampp.
  • Setelah setiap instalasi buka direktori yang diinstal (mis. C: \ 5.6.31 \ xampp, C: \ 7.1.18 \ xampp) dan mulai "setup_xampp.bat" dan Anda akan melihat sesuatu seperti ini.
  • Anda dapat membuat pintasan "xampp-control.exe" di desktop Anda (klik kanan pada "xampp-control.exe" Kirim ke -> Desktop) dan ganti nama pintasan untuk ex. "xampp 5.6.31" dan "xampp 7.1.8".
  • Mulai panel kontrol XAMPP dengan klik dua kali pada "xampp-control.exe" atau pintasan yang dibuat sebelumnya dan mulai server Apache dan MySQL.
  • Untuk menguji instalasi, buka browser Anda dan ketik 127.0.0.1 atau localhost di bilah lokasi. Anda akan melihat layar mulai XAMPP.
  • Jangan membuka lebih dari satu panel kontrol XAMPP.
  • Copot XAMPP? Hapus saja direktori "xampp". Tapi sebelum tolong matikan apache dan mysql.
  • Itu saja. Anda dapat menggunakan versi php yang berbeda untuk membuka panel kontrol XAMPP yang sesuai.

Jika benar-benar memungkinkan melakukannya dengan 1 instalasi mengapa Anda tidak memposting solusi? Sebenarnya sangat sulit menginstal 2 versi dan semua solusi di sini salah ...
Federico Schiocchet

@Andy Jika DB tidak terlalu besar, instal ganda adalah opsi yang layak. Tapi jawaban Anda mendapat jawaban saya.
Jeffz

6

Saya sedang mengerjakan proyek sepuluh tahun di tempat kerja. Jadi 5.6 adalah standar saya. Ada juga proyek-proyek kecil yang lebih tua yang hanya berfungsi dengan 5.2 dan saya juga ingin mengerjakan versi baru untuk proyek pribadi saya dengan 7.3.8

Inilah yang saya lakukan untuk menambahkan 5.2 dan 7.3.8 pada versi 5.6 default.

1 - Unduh versi TS TS;

2 - Diekstraksi ke folder c: \ xampp \ php738 dan c: \ xampp \ php52 secara berurutan

3 - Menambahkan baris-baris ini ke bagian bawah httpd-xampp.conf (atau httpd.conf);

*** PEMBERITAHUAN PENTING: Anda TIDAK boleh menggunakan nama alias skrip sebagai nama folder target Anda, mereka harus berbeda. (misalnya / php7x ok, / php7 tidak)

PHP 7.3.8 untuk folder 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 untuk folder 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>

Beberapa catatan bermanfaat:

  • Jika Anda memiliki masalah dengan php5.x saat menggunakan terminal saklar komposer ke 7.3.8
  • Jika Anda ingin membuat php 7.3.8 baris perintah default Anda penerjemah php di windows cukup ubah jalur lingkungan windows Anda untuk php ke jalur folder 7.3.8.
  • Jangan lupa untuk mengedit conf php.ini yang relevan seperti yang Anda butuhkan di setiap folder versi.

Dan sebagai catatan bonus terakhir, jika Anda perlu mengatur host virtual dengan versi apa pun, Anda dapat menggunakan pendekatan serupa. Contoh laravel vhost conf untuk php 7.3.8;

<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

Terima kasih kepada @Munim Munna untuk jawaban terperinci, saya ingin berbagi sampel yang solid dengan pemberitahuan penting di atas.


5

Kecuali harus benar-benar dan pasti XAMPP, Anda dapat mencoba untuk mendapatkan apa yang Anda inginkan dengan WAMP. WAMP adalah hal yang hampir sama dalam paket yang berbeda.

Setelah Anda menginstalnya, Anda bisa beralih di antara versi php di sini:

masukkan deskripsi gambar di sini

Anda dapat menginstal versi PHP sebanyak yang Anda butuhkan.

Begini cara melakukannya secara detail.

Buka saja di sini: unduh WAMP

Kemudian pilih server basis Anda, misalnya terbaru dengan php7.

Kemudian, ketika WAMP 3 diinstal, buka folder: addons dan pilih versi php (atau versi) yang Anda cari. Mereka menawarkan rasa php mulai dari php 5.3.29, yang seharusnya berfungsi dengan mysql_connect.

Untuk menginstal addon, selama instalasi (klik dua kali file exe) cukup arahkan ke folder tempat WAMP 3 Anda diinstal.

Kemudian Anda dapat menggunakan konten dari folder lain, seperti: aplikasi dll. Untuk menambahkan lebih banyak fungsi

Semuanya terhubung, sehingga Anda dapat berkonsentrasi pada pengkodean dan tidak meretas lingkungan Anda.


4

Ya kamu bisa. Saya menganggap Anda sudah menginstal xampp. Begitu,

  • Tutup semua instance xampp. Menggunakan task manager, berhenti apache dan mysqld.
  • Kemudian ganti nama xampp menjadi xampp1 atau sesuatu setelah nama xampp.
  • Sekarang Unduh versi xampp lainnya. Buat nama folder saja xampp. Instal xampp yang diunduh di sana.
  • Sekarang tergantung pada versi xampp dari kebutuhan Anda, cukup ganti nama folder target menjadi xampp saja dan folder lain untuk nama yang berbeda.

Begitulah cara saya bekerja dengan beberapa xampp diinstal


4
Tidak yakin mengapa hal ini tidak berlaku karena jawaban ini berfungsi dan persis seperti apa pertanyaannya. Diam-diam downvoting tanpa menyarankan perbaikan bukanlah hal yang cerdas sama sekali secara umum.
Fabian Schöner

@ FabianSchöner Terima kasih. Saya tidak tahu mengapa saya downvoted pada jawaban ini.
Shuvro

1
Alasannya telah diturunkan karena seseorang telah diposting persis jawaban ini. Dan kedua, ini adalah cara yang sama sekali tidak perlu dilakukan karena Anda menginstal SEMUA perangkat lunak yang sama lagi hanya untuk mendapatkan perbedaan kecil. Mungkin - sebagaimana dinyatakan dalam jawaban yang saya posting - untuk menggunakan 1 instalasi XAMPP dan kemudian mengkonfigurasinya untuk menggunakan versi PHP yang berbeda.
Andy

3

Dimungkinkan untuk membuat beberapa versi PHP diatur dengan satu instalasi XAMPP. Petunjuk di bawah ini berfungsi untuk Windows.

  1. Instal versi XAMPP terbaru untuk Windows (dalam kasus saya menggunakan PHP 7.1)
  2. Pastikan bahwa Apache tidak berjalan dari Panel Kontrol XAMPP
  3. Ganti nama direktori php di direktori instalasi XAMPP, seperti C:\xampp\phpmenjadi C:\xampp\php-7.1.11.
  4. Unduh versi PHP yang ingin Anda jalankan sebagai tambahan (Misalnya: PHP 5.4.45 )
  5. Pindahkan direktori php dari versi yang Anda unduh ke direktori instalasi XAMPP. Ganti nama itu jadi itu termasuk versi PHP. Seperti C:\xampp\php-5.4.45.

Sekarang Anda perlu mengedit konfigurasi XAMPP dan Apache:

  1. Di C:\xampp\apache\conf\httpd.conf, cari pengaturan XAMPP untuk PHP, Anda harus mengubahnya ke sesuatu seperti:

Di mana Anda harus berkomentar (dengan #) versi PHP lainnya sehingga hanya satu yang Includeakan ditafsirkan pada saat itu.

#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. Sekarang dalam C:\xampp\apache\conf\extradirektori ganti nama httpd-xampp.confmenjadi httpd-xampp.conf.7.1dan tambahkan file konfigurasi baru untuk httpd-xampp.conf.5.4.45. Dalam kasus saya, saya menyalin file conf instalasi XAMPP lain untuk php 5.5 karena sintaks mungkin sedikit berbeda untuk setiap versi.

  2. Edit httpd-xampp.conf.5.4.45dan httpd-xampp.conf.7.1ganti semua referensi ke phpdirektori dengan php-X.Xversi yang baru . Setidaknya ada 10 perubahan yang harus dilakukan di sini untuk setiap file.

  3. Anda sekarang perlu mengedit php.ini untuk dua versi. Misalnya untuk php 7.1, mengedit C:\xampp\php-7.1.11\php.inimana Anda akan menggantikan jalur direktori php untuk include_path, browscap, error_log, extension_dir..

Dan itu saja. Anda sekarang dapat memulai Apache dari Panel Kontrol XAMPP. Dan untuk beralih dari satu versi ke versi lain, Anda hanya perlu mengedit C:\xampp\apache\conf\httpd.confdan mengubah versi PHP yang disertakan sebelum memulai kembali Apache.


3

jalankan ini di jendela Command Prompt (cmd.exe).

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

ubah tergantung tempat Anda meletakkan instalasi php 7.


2

Anda tidak perlu membuang waktu dengan konfigurasi ini, cukup gunakan MAMP :)

MAMP memiliki fitur pemilihan versi PHP pada antarmuka.


2

Ini mungkin jawaban teknis paling tidak untuk pertanyaan, tetapi juga yang paling mudah untuk dicapai.

Jika Anda memiliki dua drive seperti C: dan D: Anda dapat menginstal instance XAMPP terpisah pada kedua drive dengan versi php yang berbeda. Ini membutuhkan waktu kurang dari 10 menit untuk saya lakukan dan rawan kesalahan.

Saya hanya membuat dua cara pintas desktop untuk xampp-control.exe dan beri nama cara pintas setelah versi php mereka. Saya harap ini membantu orang seperti saya yang lebih suka solusi yang sangat cepat dan kotor.


1

Ikuti langkah-langkah mudah ini . Saat ini saya menjalankan XAMPP pada PHP 7.2 tetapi membutuhkan PHP 5.6 untuk bekerja pada proyek-proyek lama

LANGKAH 1

Unduh Thread Safe versi PHP di https://windows.php.net/download

Letakkan file di [Drive] Anda: \ xampp \ php5.6

  • Ganti nama folder tergantung pada versi Php

LANGKAH 2

Salin [Drive]: \ xampp \ apache \ conf \ extra \ httpd-xampp.conf

Ganti nama menjadi [Drive]: \ xampp \ apache \ conf \ extra \ httpd-xampp5.6.confRename file tergantung pada versi Php

LANGKAH 3

Edit 'httpd-xampp5.6.conf' yang baru dibuat

pada dasarnya Anda perlu mengubah Semua sumber PHP dan .dll

Sebelum

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

Setelah

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

Ini file saya: https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec

LANGKAH 4

Edit file [Drive]: \ xampp \ apache \ conf \ httpd.conf

Sebelum

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

Setelah

# XAMPP settings
Include "conf/extra/httpd-xampp5.6.conf"
  • Anda bisa mengedit baris ini ketika beralih ke versi yang berbeda

LANGKAH 5

Edit konfigurasi PHP 5.6 Anda - php.ini

Tambahkan Anda direktori ekstensi: extension_dir = "C: \ xampp \ php5.6 \ ext"

LANGKAH 6

Mulai Apache

LANGKAH 7

Edit jalur variabel lingkungan PHP pada Windows


0

Mungkin agak terlambat, tapi saya menggunakan batch untuk mengubah nama folder PHP (versi phpswitch yang sedikit dimodifikasi yang saya temukan tahun lalu).

Anda menyalin folder yang berbeda ke instalasi XAMPP Anda. Setiap folder PHP (kecuali yang aktif) menerima nomor versi sebagai sufiks (mis. Php_5.6.32 ). Di SEMUA folder PHP, file (PHP_VERSION) dibuat, yang hanya berisi nomor versi masing-masing, sehingga Script dapat mengambil informasi ini. Tapi itu semua dijelaskan dalam README.

Sejak PHP7 httpd-xampp.conf memuat php7ts.dll bukan php5ts.dll . Jadi saya harus memperluas skrip (PHPSwitch.php) untuk mengganti nama file konfigurasi ini juga dengan mengikuti pendekatan yang sama.

    $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

Saya perlu melakukan hal yang sama, jadi saya mencari di Google bagaimana dan datang untuk menumpuk, di mana OP memiliki masalah yang sama ... Jadi temuan saya .. Saya mencoba mengubah nama file dari semua arah yang berbeda DAN kesimpulan saya pada dasarnya itu membawa saya terlalu panjang. SOOOO Saya akhirnya hanya menginstal versi 7 dari sini:

https://www.apachefriends.org/index.html (bunuh layanan dan keluar dari xampp sebelum mencoba)

Ketika ditanya di mana harus meletakkan nama direktori seperti itu (berikan nama yang berbeda):

masukkan deskripsi gambar di sini

dan

DONEZO! Sekarang pastikan untuk membunuh layanan dan berhenti sebelum bertukar dan sebagainya dan Anda memiliki 2 XAMPP steril untuk dimainkan.

Hore! sekarang saya benar-benar bisa mulai bekerja!


Saya pikir itu sudah disarankan oleh 2 jawaban di atas, Maulik Gangani dan og1842.
Munim Munna

0

Gunakan pengalih php ini

Anda dapat mengontrol versi php untuk proyek apa pun yang Anda inginkan melalui konfigurasi vhost.


0

Saya tahu ini adalah postingan lama tapi saya ingin membagikan ada pustaka untuk masih menjalankan mysql_connect () di PHP 7. Ia berfungsi dengan menimpa fungsi sebenarnya (mysql_connect () ditimpa oleh mysqli_connect () yang berfungsi di perpustakaan ini).

Saya temukan dari video ini https://www.youtube.com/watch?v=Eqd-jJu4sQ4

semoga membantu

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.