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).
Jawaban:
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.
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 kehttp://localhost:8056/any_project/
xampp menjalankan PHP 5.6.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.
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: Konfigurasi
php.ini
Buka
c:\xampp\php56\php.ini
file di notepad. Jika file tidak ada salinphp.ini-development
kephp.ini
dan buka di notepad. Kemudian batalkan komentar pada baris berikut: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: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.
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.
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.
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.
Jika Anda menemukan kesalahan di atas, buka
httpd-xampp.conf
lagi dan komentari baris berikut dengan # yang memimpin (karakter hash).sumber
php somefile.php
tanpa kesalahan?SetEnv PHPRC
jadi saya tidak bisa berkomentar, namun saya masih mendapatkan kesalahan itu. :(Error message: End of script output before headers: php-cgi.exe
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.conf
dan 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.conf
dan 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
.conf
file dan kemudian restart Apache. Melakukan ini hanya membutuhkan beberapa detik dan Anda bahkan dapat berkomentar versi sehingga "beralih" hanya membutuhkan beberapa penekanan tombol, misalnyaGunakan PHP 5:
Gunakan PHP 7:
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
.so
file di Windows. Jawaban yang saya berikan diadaptasi dari bagaimana saya mengatur berbagai hal pada Mac saya (yang menggunakan.so
file alih-alih.dll
). Namun prinsip jawabannya masih tetap benar. Anda menggunakan file konfigurasi Apache,httpd.conf
untuk menentukan di mana modul PHP (.so
atau.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).sumber
Anda dapat mengunduh dan menginstal dua xampps yang berbeda seperti yang saya lakukan: (pertama adalah php7 detik adalah php5)
dan jika Anda tidak ingin melakukan itu, saya sarankan Anda menggunakan wamp dan mengubah versi seperti yang ditunjukkan di sini .
sumber
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.
sumber
Saya menggunakan Uniserver.
Ini memiliki fitur bawaan.
http://www.uniformserver.com/
Sesederhana itu.
Itu bahkan lari dari flash drive. Memiliki emulasi cron, dukungan untuk perl, mariaDB, beberapa versi Mysql, server filezilla dan beberapa hal lainnya.
sumber
Anda dapat memiliki dua versi XAMPP yang berbeda.
sumber
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;
v7.3.8 (terbaru): https://windows.php.net/download/
v5.2: https://www.apachelounge.com/viewtopic.php?t=7349
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
PHP 5.2 untuk folder D: \ www \ php52
Beberapa catatan bermanfaat:
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;
Terima kasih kepada @Munim Munna untuk jawaban terperinci, saya ingin berbagi sampel yang solid dengan pemberitahuan penting di atas.
sumber
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:
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.
sumber
Ya kamu bisa. Saya menganggap Anda sudah menginstal xampp. Begitu,
Begitulah cara saya bekerja dengan beberapa xampp diinstal
sumber
Dimungkinkan untuk membuat beberapa versi PHP diatur dengan satu instalasi XAMPP. Petunjuk di bawah ini berfungsi untuk Windows.
C:\xampp\php
menjadiC:\xampp\php-7.1.11
.C:\xampp\php-5.4.45
.Sekarang Anda perlu mengedit konfigurasi XAMPP dan Apache:
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 yangInclude
akan ditafsirkan pada saat itu.Sekarang dalam
C:\xampp\apache\conf\extra
direktori ganti namahttpd-xampp.conf
menjadihttpd-xampp.conf.7.1
dan tambahkan file konfigurasi baru untukhttpd-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.Edit
httpd-xampp.conf.5.4.45
danhttpd-xampp.conf.7.1
ganti semua referensi kephp
direktori denganphp-X.X
versi yang baru . Setidaknya ada 10 perubahan yang harus dilakukan di sini untuk setiap file.Anda sekarang perlu mengedit php.ini untuk dua versi. Misalnya untuk php 7.1, mengedit
C:\xampp\php-7.1.11\php.ini
mana Anda akan menggantikan jalur direktori php untukinclude_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.conf
dan mengubah versi PHP yang disertakan sebelum memulai kembali Apache.sumber
jalankan ini di jendela Command Prompt (cmd.exe).
ubah tergantung tempat Anda meletakkan instalasi php 7.
sumber
Anda tidak perlu membuang waktu dengan konfigurasi ini, cukup gunakan MAMP :)
MAMP memiliki fitur pemilihan versi PHP pada antarmuka.
sumber
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.
sumber
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
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
Setelah
Ini file saya: https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec
LANGKAH 4
Edit file [Drive]: \ xampp \ apache \ conf \ httpd.conf
Sebelum
Setelah
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
sumber
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.
sumber
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):
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!
sumber
Gunakan pengalih php ini
Anda dapat mengontrol versi php untuk proyek apa pun yang Anda inginkan melalui konfigurasi vhost.
sumber
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
sumber