क्या XAMPP में दो PHP संस्करणों का उपयोग करने का तरीका है?


157

हम PHP 7.0 के साथ XAMPP चला रहे हैं क्योंकि हमारे नए उत्पादों के लिए PHP 7 की आवश्यकता है।

लेकिन पुरानी परियोजनाएं हैं जो कार्यों का उपयोग करती हैं mysql_connect , कि PHP 7.0 में हटा दी जाती हैं।

तो, क्या XAMPP में PHP संस्करणों को आसानी से बदलने का एक तरीका है?

नोट : कृपया नए संस्करणों के साथ संगत करने के लिए पुरानी परियोजना को अपग्रेड करने का सुझाव न दें क्योंकि मैं ऐसा करने की स्थिति में नहीं हूं क्योंकि उन निर्णयों को मैं डेवलपर (सिर्फ एक कर्मचारी) के रूप में प्राप्त नहीं कर सकता।


मुझे नहीं लगता कि आप अपग्रेड के अलावा क्या करना चाहते हैं, इसके लिए वर्कअराउंड है। इसके अलावा, आपको पुराने और पदावनत एपीआई को संगत बनाने के तरीके नहीं खोजने चाहिए। उन्हें पूरी तरह से हटा दिया जाना चाहिए। जाहिर है कि बहुत काम है, लेकिन यह मन की शांति की गारंटी देगा
रोटिमी

1
जब मैं MAMP में PHP संस्करणों को स्विच करना चाहता हूं, तो मैं अपाचे को बंद कर देता हूं और शुरू करता हूं। यह एक दर्द है, लेकिन यह काम करता है।
स्कॉट सी विल्सन

आप दोहरी बूट कर सकते हैं

आप वर्चुअल होस्ट बना सकते हैं, फिर हर एक के लिए php संस्करण निर्दिष्ट कर सकते हैं
Aref Ben Lazrek

2
@IlmariKaronen मैं आपके बीच अपने विकास कार्य केंद्र पर स्विच करना चाहता हूं। बस जब मैं प्रोजेक्ट ए कर रहा हूं तो मैं PHP 5 का उपयोग करना चाहता हूं, मैं PHP 7 चाहता हूं जब मैं प्रोजेक्ट बी कर रहा हूं। यहां तक ​​कि सबसे मूल्यांकित उत्तर भी काम नहीं कर रहा है, मुझे यह नहीं मिल रहा है ... और कई उपयोगकर्ता ..
I

जवाबों:


133

जब आप एक ही xampp स्थापना के साथ एक ही समय में कई PHP संस्करण का उपयोग कर सकते हैं तो PHP संस्करणों के बीच स्विच क्यों करें ? एक एकल xampp स्थापना के साथ, आपके पास 2 विकल्प हैं:

  1. अपने पुराने प्रोजेक्ट की केवल निर्देशिका के लिए एक पुराना PHP संस्करण चलाएं: यह अधिकांश समय उद्देश्य को पूरा करेगा, आपके पास एक या दो पुरानी परियोजनाएँ हो सकती हैं जिन्हें आप पुराने PHP संस्करण के साथ चलाने का इरादा रखते हैं। केवल उन प्रोजेक्ट निर्देशिकाओं के लिए पुराने PHP संस्करण को चलाने के लिए xampp कॉन्फ़िगर करें।

  2. एक पुराने PHP संस्करण को xampp के एक अलग बंदरगाह पर चलाएं: कभी-कभी आप नए PHP संस्करण पर उसी परियोजना को चलाने के लिए उन्नत और पुराने प्रोजेक्ट को ले सकते हैं, जब आपको नए और पुराने PHP संस्करण पर आगे और पीछे एक ही प्रोजेक्ट चलाना हो। तब आप एक भिन्न पोर्ट पर एक पुराना PHP संस्करण (जैसे कि 8056) सेट कर सकते हैं ताकि जब आप http://localhost/any_project/xampp पर जाएँ तो PHP 7 चले और जब आप http://localhost:8056/any_project/xampp पर जाएँ तो PHP 5.6 चलता है।

  3. वर्चुअलहोस्ट पर पुराने PHP संस्करण को चलाएं: आप PHP 5.6 को चलाने के लिए लोकलहोस्ट 56 की तरह एक वर्चुअलहोस्ट बना सकते हैं, जबकि आप लोकलहोस्ट के लिए PHP 7 का उपयोग कर सकते हैं।

इसे सेट करें।

चरण 1: PHP डाउनलोड करें

तो आपके पास PHP 7 xampp के तहत चल रहा है, आप इसे एक पुराने PHP संस्करण को जोड़ना चाहते हैं, PHP 5.6 कहते हैं। एनटीएस (गैर धागा सुरक्षित) से पीएचपी ज़िप संग्रह के संस्करण को डाउनलोड करें php.net (देखें संग्रह पुराने संस्करणों के लिए) और के तहत फ़ाइलों को अलगc:\xampp\php56 । थ्रेड सेफ वर्जन में php-cgi.exe शामिल नहीं है।

चरण 2: कॉन्फ़िगर करेंphp.ini

c:\xampp\php56\php.iniनोटपैड में फ़ाइल खोलें । फ़ाइल प्रतिलिपि मौजूद नहीं है php.ini-developmentके लिए php.iniऔर नोटपैड में खोलें। फिर निम्नलिखित लाइन को अनइंस्टॉल करें:

extension_dir = "ext"

चरण 3: अपाचे को कॉन्फ़िगर करें

Xampp नियंत्रण कक्ष खोलें, अपाचे के लिए विन्यास बटन पर क्लिक करें और क्लिक करें Apache (httpd-xampp.conf)। एक टेक्स्ट फ़ाइल खुल जाएगी, जो फ़ाइल के निचले भाग में निम्नलिखित सेटिंग्स डाल देगी:

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

नोट: यदि आप चाहते हैं तो चरण 1 से 3 के बाद आप अपने xampp इंस्टॉलेशन में PHP के और संस्करण जोड़ सकते हैं।

चरण 4 (विकल्प 1): [विशिष्ट PHP संस्करण चलाने के लिए निर्देशिकाएँ जोड़ें]

अब आप उन निर्देशिकाओं को सेट कर सकते हैं जो PHP 5.6 में चलेंगी। निर्देशिकाओं को सेट करने के लिए बस कॉन्फ़िगर फ़ाइल के निचले भाग पर निम्न जोड़ें।

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

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

चरण 4 (विकल्प 2): [अलग बंदरगाह पर पुराने PHP संस्करण चलाएं]

अब PHP v5.6 को पोर्ट 8056 में सेट करने के लिए निम्नलिखित कोड को कॉन्फिगर फाइल के निचले हिस्से में जोड़ें।

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

चरण 4 (विकल्प 3): [वर्चुअलाइजेशन पर एक पुराने PHP संस्करण को चलाएं]

एक निर्देशिका (htdocs56) पर एक वर्चुअलहोस्ट (लोकलहोस्ट 56) बनाने के लिए http: // localhost56 पर PHP v5.6 का उपयोग करने के लिए , अपने इच्छित स्थान पर निर्देशिका htdocs56 बनाएं और अपनी होस्ट फ़ाइल में लोकलहोस्ट 56 को जोड़ें ( देखें कैसे ), फिर निम्न कोड जोड़ें 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>

समाप्त करें: अपाचे को सहेजें और पुनः प्रारंभ करें

कॉन्फ़िगरेशन फ़ाइल को सहेजें और बंद करें, xampp नियंत्रण कक्ष से अपाचे को पुनरारंभ करें। यदि आप विकल्प 2 के लिए गए थे, तो आप अपने xampp नियंत्रण कक्ष में सूचीबद्ध अतिरिक्त पोर्ट (8056) देख सकते हैं।

यहां छवि विवरण दर्ज करें

त्रुटि के लिए अद्यतन:
स्क्रिप्ट 'php-cgi.exe' से विकृत हेडर: खराब हेडर

यदि आप उपरोक्त त्रुटि का सामना करते हैं, तो httpd-xampp.confफिर से खोलें और एक अग्रणी # (हैश चरित्र) के साथ निम्नलिखित पंक्ति पर टिप्पणी करें।

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

9
नमस्ते, मैं इस विधि (चरण 4 विकल्प 1) की कोशिश कर रहा था, लेकिन स्क्रिप्ट 'php-cgi.exe' से एक विकृत विकृत हेडर प्राप्त करें: खराब हेडर: <br />, कोई भी विचार समस्या क्या हो सकती है?
प्रियांशु

@Priyanshu आपकी PHP स्थापना ठीक है? क्या आप कमांड फाइल से PHP फाइल को चला सकते हैं जैसे कि php somefile.phpकोई त्रुटि?
मुनीम मुन्ना

2
उत्तर में अब शामिल करने के लिए कोड भी नहीं है SetEnv PHPRCइसलिए मैं इसे टिप्पणी नहीं कर सकता, फिर भी मुझे अभी भी वह त्रुटि मिल रही है। :(
ब्रेट

1
नमस्ते। जब मैं लोकलहोस्ट चलाता हूं: 8056, मुझे ऑब्जेक्ट नहीं मिला पेज मिला।
नास

1
कोई xdebug के साथ कई php संस्करण काम करने में सक्षम है? मुझे मिलाError message: End of script output before headers: php-cgi.exe
नोमान

87

आप पीएचपी के जो भी संस्करण डाउनलोड कर सकते हैं, उन्हें डाउनलोड कर सकते हैं और उन्हें अपनी निर्देशिका में रख सकते हैं, जैसे

c:\php5\

c:\php7\

आपको बस अपने वेब सर्वर (अपाचे) को पीएचपी के किस संस्करण का उपयोग करना है, यह बताना है, जिसे आप उपयुक्त मॉड्यूल लोड करके करते हैं। अपाचे में आप फ़ाइल ढूंढकर httpd.confऔर फिर उपयुक्त पंक्ति को संपादित करके ऐसा कर सकते हैं :

LoadModule php7_module c:\php7\libphp7.so

आपको पाठ्यक्रम के सही रास्तों का पता लगाना होगा - यह सिर्फ दृष्टांत के लिए है।

सहेजें httpd.confअपना सर्वर और पुनः आरंभ करें। ध्यान दें, यदि आप इसे पुनः आरंभ नहीं करते हैं, तो परिवर्तन प्रभावी नहीं होंगे।

ऐसा करने में सक्षम होने के लिए कोई GUI स्विच नहीं है, आपको .confफ़ाइल को संपादित करने और फिर Apache को पुनरारंभ करने की आवश्यकता है । ऐसा करने में केवल कुछ सेकंड लगते हैं और आप एक संस्करण भी टिप्पणी कर सकते हैं ताकि "स्विचिंग" केवल कीस्ट्रोक्स के एक जोड़े को ले जाए, जैसे:

PHP 5 का प्रयोग करें:

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

PHP 7 का प्रयोग करें:

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

आपको XAMPP के कई संस्करणों की आवश्यकता नहीं है , या दोहरे बूट के लिए, या एक अलग मशीन, या किसी भी अन्य "समाधान" का उपयोग करने की सलाह दी है, जो कि जटिल वर्कअराउंड का सुझाव दिया है। ओपी XAMPP का उपयोग करना चाहता है और यह बताना चाहता है कि PHP के किस संस्करण का उपयोग करना है। यह इसे करने का सबसे तेज और सबसे कुशल तरीका है, और इसके लिए केवल एक XAMPP इंस्टालेशन की आवश्यकता होती है।

1-Nov-2017 को संपादित करें: जाहिरा तौर पर कुछ लोग कह रहे हैं कि .soविंडोज पर कोई फाइल नहीं है । मैंने जो उत्तर दिया वह इस बात से अनुकूलित किया गया था कि मेरे मैक पर चीजें कैसे सेट होती हैं (जो .soइसके बजाय फाइलों का उपयोग करती हैं .dll)। उत्तर का सिद्धांत हालांकि अभी भी बिल्कुल सही है। आप अपाचे की कॉन्फ़िगरेशन फ़ाइल का उपयोग कर रहे हैं, httpd.confयह निर्दिष्ट करने के लिए कि आपके सिस्टम पर PHP मॉड्यूल ( .soया .dll) कहाँ स्थित है। तो विंडोज के लिए एकमात्र अंतर फ़ाइल नाम और / या पथ स्थान होगा। मैंने जो उत्तर दिया है वह अपाचे / पीएचपी (बिना XAMPP के) की एक वेनिला स्थापना के लिए भी सही है।


3
मैंने फिर से जाँच की। मैं इसे ढूंढ़ नहीं पाया। क्या आप कृपया मेरी httpd.conf फ़ाइल देख सकते हैं। यह उसी की नकल है। freetexthost.com/sjxz4lh1i5 कृपया मुझे बताएं कि क्या आपको वह लाइन मिल गई है जिसे मुझे बदल देना चाहिए।
मैं

2
XAMPP में कोई भी libphp7.so नहीं है और किसी फाइल में कोई LoadModule स्ट्रिंग नहीं है
Federico Schiocchet

2
मुझे भी यह प्रविष्टि नहीं मिली। मैंने अपनी php डायरेक्टरी को भी खोजा और किसी भी .so फाइल को बिल्कुल नहीं खोज पाया।
इयोन

19
V3.2.2 में लाइन xampp / apache / conf / extra / httpd-xampp.conf
Manuel

5
यह सिर्फ एक पंक्ति नहीं है। आपको httpd-xampp.conf का एक अच्छा हिस्सा संपादित करना होगा। इसलिए बेहतर होगा कि आप हर बार पूरे httpd-xampp.conf को स्विच करें।
जेफज़

34

आप दो अलग-अलग xampps डाउनलोड और इंस्टॉल कर सकते हैं जैसे मैं करता हूं: (पहला php7 है दूसरा php5 है) यहां छवि विवरण दर्ज करें

और यदि आप ऐसा नहीं करना चाहते हैं, तो मेरा सुझाव है कि आप यहां दिखाए गए जैसे वैम्प और परिवर्तन संस्करणों का उपयोग करें


4
आप ऐसा क्यों करेंगे? आप एक ही सॉफ्टवेयर का एक बहुत फिर से स्थापित कर रहे हैं, बस एक छोटे अंतर (PHP के विभिन्न संस्करण के लिए, जब Apache और MySQL जैसे बाकी सॉफ़्टवेयर बिल्कुल समान हैं)। मैंने एक समाधान पोस्ट किया है जहां आप XAMPP की 1 स्थापना का उपयोग कर सकते हैं और इसे PHP के उपयुक्त संस्करण में इंगित कर सकते हैं।
एंडी

15
आप ऐसा क्यों करेंगे? क्योंकि यह काम करता है, और अगर यह कुछ समय बचाता है तो मुझे कई अपाचे और mysql स्थापित करने में कोई आपत्ति नहीं है।
मौलिक गंगानी

23
यहां सर्वोत्तम प्रथाओं की देखभाल करने की आवश्यकता नहीं है, यह एक स्थानीय वातावरण है
रिकार्डो विगत्ती 13

2
मैं इस aproach का उपयोग करता हूं, विज्ञापन में, मैं आपको प्रत्येक इंस्टॉलेशन के लिए विशिष्ट प्रारंभ मेनू प्रविष्टियां जोड़ने की सलाह देता हूं, जैसे: C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ XAMPP56 और C: \ ProgramData \ Microsoft \ Windows \ Start मेनू उदाहरण के लिए \ प्रोग्राम \ XAMPP7
रिकार्डो विगत्ती

2
यदि यह एक अच्छा समाधान नहीं है तो आप एक सही समाधान क्यों नहीं पोस्ट करते हैं? वास्तव में एक ही xampp पर 2 संस्करण स्थापित करना बहुत मुश्किल है और यहां सभी समाधान गलत हैं ...
फेडेरिको शियोचेट

12

मैं डॉकर का उपयोग करने की सलाह दूंगा, इससे आप पर्यावरण को विभिन्न घटकों में विभाजित कर सकते हैं और किसी भी समय आप जो चाहते हैं उसे मिला सकते हैं।

डॉकर आपको MySQL के साथ एक कंटेनर, PHP के साथ एक और चलाने की अनुमति देगा। जैसा कि वे अलग-अलग चित्र हैं आपके पास दो कंटेनर हो सकते हैं, एक PHP 5 एक और PHP 7, आप शुरू करते हैं जो कभी भी आप चाहते हैं और पोर्ट 80 को दोनों कंटेनरों में मैप किया जा सकता है।

https://hub.docker.com में पूर्वनिर्मित छवियों की एक विस्तृत श्रृंखला है, जिसे आप बहुत परेशानी के बिना स्थापित और चला सकते हैं।

मैंने पोर्टेनेर भी जोड़ा है एक छवि के रूप में को , जो आपको अपने डॉक सेटअप के विभिन्न पहलुओं को प्रबंधित करने की अनुमति देता है - एक डॉक छवि के भीतर से (मैंने कमांड लाइन का उपयोग करने के लिए मुझे बचाने के लिए स्टार्टअप पर इस कंटेनर को शुरू किया था)। यह आपके लिए सब कुछ नहीं करता है और कभी-कभी कमांड लाइन से पहली बार छवियों को कॉन्फ़िगर और लॉन्च करना आसान होता है, लेकिन एक बार सेटअप करने के बाद आप वेब इंटरफ़ेस के माध्यम से उन्हें शुरू और रोक सकते हैं।

एक ही समय में दोनों कंटेनरों को चलाना और प्रत्येक के लिए अलग-अलग पोर्ट को मैप करना भी संभव है। तो पोर्ट 80 को PHP 5 और 81 से PHP 81 (या अगर 2017 में आपका यह देखना है तो PHP 7) में मैप किया जा सकता है।

डॉकर ( https://docs.docker.com/engine/installation/ ) कैसे स्थापित करें और अन्य 'कैसे' प्रकार की चीजों को लोड करने के लिए विभिन्न ट्यूटोरियल हैं। एक विकास पर्यावरण विन्यास के लिए http://www.masterzendframework.com/docker-development-environment/ आज़माएं ।


मैं इसे अपनी सहमति देता हूँ। अपनी कंपनी को एक एहसान करो और डॉकर को चलाओ। PHP के संस्करणों को स्विच करें, नए डेवलपर्स को तेज़ी से चालू करें, तैनाती आसान करें, और उत्पादन में कोई आश्चर्य नहीं करें।
क्रिश पीलिंग

और 81 से PHP 81. क्या आपका मतलब PHP 7 है? मुझे लगता है कि हम PHP 81 से अभी तक कुछ दूर हैं :)
एंडी

2
इर्र्र्र ... मेरा वास्तव में मतलब था 81 (मैं सुनिश्चित कर रहा हूं कि मेरा जवाब भविष्य का प्रमाण है: - /)
निगेल रेन

1
@NigelRen मैंने इसे डाउन-वोट नहीं किया है, लेकिन अनुमान लगाएगा कि ऐसा इसलिए है क्योंकि आप XAMPP के भीतर यह कैसे संभव है, इसे संबोधित करने के बजाय एक पूरी तरह से अलग समाधान (डॉकर) का उपयोग करने का प्रस्ताव कर रहे हैं - जो कि निश्चित रूप से है। आपका उत्तर समस्या का एक (बहुत अच्छा) वैकल्पिक समाधान है, लेकिन उस प्रश्न का उत्तर नहीं है जो पूछा गया था।
एंडी

7

मैं यूनीसेवर का उपयोग करता हूं।

इसमें इस फीचर को बनाया गया है।

http://www.uniformserver.com/

यह इत्ना आसान है।

यूनिफ़ॉर्म सर्वर विंडोज के लिए एक नि: शुल्क हल्के WAMP सर्वर समाधान है। 24MB से कम, मॉड्यूलर डिज़ाइन में Apache2, Perl5, PHP के नवीनतम संस्करण (PHP53, PHP54, PHP55 या PHP56 के बीच स्विच), MySQL5 या MariaDB5, phpMyAdmin या Admin4 शामिल हैं। कोई स्थापना की आवश्यकता है! कोई रजिस्ट्री धूल! बस अनपैक और आग लगाओ!

यह भी एक फ्लैश ड्राइव बंद चलाता है। क्रोन इम्यूलेशन, पर्ल के लिए समर्थन, मारियाबीडी, मैसिकल के एक दो संस्करण, फाइलज़िला सर्वर और कुछ अन्य चीजें हैं।

यहां छवि विवरण दर्ज करें


मेरे हिसाब से यह सबसे अच्छा उपाय है। मैंने अपनी जान बचाई।
स्कापुल

मुझे वायरस का अलर्ट मिल रहा है। Win32 / Uwamson.A-ml
नॉर्मन हथ

6

आपके पास XAMPP के दो अलग-अलग संस्करण हो सकते हैं।

  • उन फ़ाइलों को https://www.apachefriends.org/download.html से डाउनलोड करें और C: \ 5.6.31 \ xampp और C: \ 7.1.18 \ xampp में उदाहरण के लिए, अपनी पसंद की निर्देशिका में स्थापित करें।
  • हर इंस्टॉलेशन के बाद इंस्टॉल की गई डायरेक्टरी (उदा। C: \ 5.6.31 \ xampp, C: \ 7.1.18 \ xampp) पर जाएं और "setup_xampp.bat" शुरू करें और आपको कुछ इस तरह देखना चाहिए
  • आप अपने डेस्कटॉप पर "xampp-control.exe" के शॉर्टकट बना सकते हैं (पूर्व के लिए "xampp-control.exe" भेजें पर राइट क्लिक करें) और पूर्व के लिए शॉर्टकट का नाम बदलें। "xampp 5.6.31" और "xampp 7.1.8"।
  • XAMPP कंट्रोल पैनल को "xampp-control.exe" पर डबल-क्लिक करें या पहले से बनाए गए शॉर्टकट से शुरू करें और Apache और MySQL सर्वर शुरू करें।
  • इंस्टालेशन का परीक्षण करने के लिए अपना ब्राउज़र खोलें और लोकेशन बार में 127.0.0.1 या लोकलहोस्ट टाइप करें। आपको XAMPP स्टार्ट स्क्रीन देखनी चाहिए।
  • अधिक न खोलें तो एक XAMPP कंट्रोल पैनल।
  • XAMPP की स्थापना रद्द करें? बस "xampp" निर्देशिका को हटा दें। लेकिन कृपया अपाचे और mysql को बंद करें।
  • बस इतना ही। आप XAMPP कंट्रोल पैनल से संबंधित अलग-अलग php संस्करणों का उपयोग कर सकते हैं।

यदि यह वास्तव में संभव है तो 1 संस्थापन के साथ करें क्यों आप एक समाधान पोस्ट नहीं करते हैं? वास्तव में 2 संस्करणों को स्थापित करना बहुत मुश्किल है और यहां सभी समाधान गलत हैं ...
फेडेरिको शियोथेट

@ और अगर डीबी इतना बड़ा नहीं है, तो डबल इंस्टॉल एक व्यवहार्य विकल्प है। लेकिन आपके जवाब से मेरा हौसला बढ़ गया।
जेफज़

6

मैं काम पर एक दस साल पुरानी परियोजना पर काम कर रहा हूं। तो 5.6 मेरी डिफ़ॉल्ट है। पुरानी पुरानी परियोजनाएँ भी हैं जो केवल 5.2 के साथ काम करती हैं और मैं 7.3.8 के साथ अपनी व्यक्तिगत परियोजनाओं के लिए नए संस्करणों पर भी काम करना चाहता हूं

यहाँ मैंने डिफ़ॉल्ट 5.6 संस्करण में 5.2 और 7.3.8 को जोड़ने के लिए क्या किया है।

1 - डाउनलोड किए गए php टीएस संस्करण;

2 - c: \ xampp \ php738 और c: \ xampp \ php52 फ़ोल्डर क्रम में निकाला गया

3 - httpd-xampp.conf (या httpd.conf) के नीचे से इन पंक्तियों को जोड़ा गया;

*** महत्वपूर्ण सूचना: आप अपने लक्ष्य फ़ोल्डर के नाम के रूप में स्क्रिप्ट उपनाम नाम का उपयोग नहीं करना चाहिए, वे अलग होना चाहिए। (उदाहरण के लिए / php7x ठीक है, / php7 नहीं है)

फ़ोल्डर D: \ www \ php7 के लिए PHP 7.3.8

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

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

फ़ोल्डर D के लिए 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>

कुछ उपयोगी नोट:

  • यदि आपको कंपोज़र स्विच टर्मिनल का उपयोग 7.3.8 करने के दौरान php5.x से परेशानी है
  • यदि आप php को 7.3.8 बनाना चाहते हैं, तो विंडोज़ पर आपकी डिफॉल्ट कमांड लाइन php दुभाषिया, php के लिए अपने विंडोज़ पर्यावरण पथ को बदलकर 7.3.8 फोल्डर पथ पर ले जाती है।
  • अपने प्रासंगिक php.ini conf को संपादित करना न भूलें जैसा कि आपको प्रत्येक संस्करण फ़ोल्डर में चाहिए।

और अंतिम बोनस नोट के रूप में, यदि आपको किसी भी संस्करण के साथ वर्चुअल होस्ट सेट करने की आवश्यकता है, तो आप इसी तरह के दृष्टिकोण का उपयोग कर सकते हैं। 7.3.8 php के लिए एक नमूना लार्वा vhost;

<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

विस्तृत उत्तर के लिए @ मुनीम मुन्ना का धन्यवाद, मैं ऊपर दिए गए महत्वपूर्ण नोटिस के साथ एक ठोस नमूना साझा करना चाहता था।


5

जब तक कि यह बिल्कुल और निश्चित रूप से XAMPP न हो, आप WAMP के साथ जो चाहें प्राप्त करने की कोशिश कर सकते हैं। विभिन्न पैकेज में WAMP बहुत समान है।

एक बार जब आप इसे स्थापित कर लेते हैं, तो आप यहाँ php संस्करणों के बीच स्विच कर सकते हैं:

यहां छवि विवरण दर्ज करें

आप पीएचपी के कई संस्करणों को स्थापित कर सकते हैं जितनी आपको आवश्यकता है।

यहां बताया गया है कि यह कैसे किया जाता है।

बस यहां जाएं: WAMP डाउनलोड

फिर अपना आधार सर्वर चुनें, जैसे कि php7 के साथ नवीनतम।

फिर, जब WAMP 3 इंस्टॉल हो जाता है, तो फ़ोल्डर पर जाएं: addons और उसके बाद php संस्करण (या संस्करण) का चयन करें। वे php 5.3.29 से शुरू होने वाले php फ्लेवर की पेशकश करते हैं, जो mysql_connect के साथ काम करना चाहिए।

इंस्टॉलेशन को स्थापित करने के लिए, इंस्टॉलेशन के दौरान (डबल क्लिक एक्सई फ़ाइल) बस उस फ़ोल्डर को इंगित करें जहां आपने अपना डब्ल्यूएएमपी 3 स्थापित किया है।

फिर आप अन्य फ़ोल्डरों की सामग्री का उपयोग कर सकते हैं, जैसे: एप्लिकेशन आदि को अधिक कार्यक्षमता जोड़ने के लिए

हर चीज का अंतःक्षेपण होता है, इसलिए आप अपने पर्यावरण को कोडिंग और हैकिंग पर ध्यान केंद्रित कर सकते हैं।


4

हाँ तुम कर सकते हो। मुझे लगता है कि आपके पास पहले से स्थापित एक xampp है। इसलिए,

  • सभी xampp उदाहरण बंद करें। कार्य प्रबंधक का उपयोग करना अपाचे और mysqld को रोकना।
  • फिर xampp1 या xampp नाम के बाद कुछ का नाम बदलें।
  • अब अन्य xampp संस्करण डाउनलोड करें। केवल फ़ोल्डर नाम बनाएँ xampp। डाउनलोड किए गए xampp को वहां स्थापित करें।
  • अब अपनी आवश्यकता के xampp संस्करण के आधार पर, लक्ष्य फ़ोल्डर का नाम बदलकर केवल xampp और अन्य फ़ोल्डर के लिए अलग-अलग नाम रखें।

इस तरह से मैं कई xampp स्थापित के साथ काम कर रहा हूँ


4
यह सुनिश्चित नहीं है कि यह क्यों डाउनवोट हो जाता है क्योंकि यह उत्तर काम करता है और ठीक वैसा ही है जैसा सवाल पूछ रहा है। सुधार का सुझाव दिए बिना मूक downvoting सामान्य रूप में एक चतुर बात नहीं है।
फैबियन शॉनर

@ FabianSchöner धन्यवाद। मुझे नहीं पता कि मैं इस जवाब पर नाराज क्यों हो रहा था।
शुव्रो

1
इसका कारण यह माना गया है कि किसी ने पहले ही इस उत्तर को पोस्ट कर दिया है। और दूसरी बात, यह काम करने का एक पूरी तरह से आवश्यक तरीका है क्योंकि आप सभी समान सॉफ्टवेयर को फिर से स्थापित कर रहे हैं बस एक छोटा सा अंतर पाने के लिए। यह संभव है - जैसा कि मैंने पोस्ट किए गए उत्तर में कहा है - XAMPP की 1 स्थापना का उपयोग करने के लिए और फिर इसे PHP के विभिन्न संस्करणों का उपयोग करने के लिए कॉन्फ़िगर करें।
एंडी

3

PHP के कई संस्करणों को एकल XAMPP इंस्टॉलेशन के साथ सेट करना संभव है। नीचे दिए गए निर्देश विंडोज के लिए काम कर रहे हैं।

  1. Windows के लिए नवीनतम XAMPP संस्करण स्थापित करें (मेरे मामले में यह PHP 7.1 के साथ था)
  2. सुनिश्चित करें कि Apache XAMPP कंट्रोल पैनल से नहीं चल रहा है
  3. XAMPP इंस्टाल डायरेक्टरी में php डाइरेक्टरी का नाम बदलें, जैसे कि C:\xampp\phpबन C:\xampp\php-7.1.11
  4. PHP का वह संस्करण डाउनलोड करें जिसे आप अतिरिक्त चलाना चाहते हैं (जैसे: PHP 5.4.45 )
  5. उस संस्करण से php निर्देशिका को ले जाएँ जिसे आपने XAMPP इंस्टॉल निर्देशिका में डाउनलोड किया है। इसका नाम बदलें तो इसमें PHP संस्करण शामिल है। इस तरह के रूप में C:\xampp\php-5.4.45

अब आपको XAMPP और Apache कॉन्फ़िगरेशन को संपादित करने की आवश्यकता है:

  1. में C:\xampp\apache\conf\httpd.conf, पीएचपी के लिए XAMPP सेटिंग्स का पता लगाने, आप इसे इस तरह के रूप में कुछ में बदल जानी चाहिए:

जहां आपको #दूसरे PHP संस्करणों के साथ (साथ ) टिप्पणी करनी Includeहोगी, इसलिए उस समय केवल एक की व्याख्या की जाएगी।

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

#XAMPP settings PHP 5.4.45
#Include "conf/extra/httpd-xampp.conf.5.4.45"
  1. अब C:\xampp\apache\conf\extraडायरेक्टरी का नाम बदलकर इसके httpd-xampp.confलिए httpd-xampp.conf.7.1नई कॉन्फ़िगरेशन फ़ाइल जोड़ें httpd-xampp.conf.5.4.45। मेरे मामले में, मैंने php 5.5 के लिए XAMPP की एक और स्थापना की गोपनीय फाइल को कॉपी किया क्योंकि प्रत्येक संस्करण के लिए सिंटैक्स थोड़ा भिन्न हो सकता है।

  2. संपादित करें httpd-xampp.conf.5.4.45और नए संस्करण के साथ निर्देशिका के httpd-xampp.conf.7.1सभी संदर्भों को बदलें । प्रत्येक फ़ाइल के लिए यहां कम से कम 10 बदलाव किए जाने हैं।phpphp-X.X

  3. अब आपको दो संस्करणों के लिए php.ini को संपादित करना होगा। Php 7.1, संपादन के लिए उदाहरण के लिए C:\xampp\php-7.1.11\php.ini, जहाँ आप के लिए php निर्देशिका के रास्ते का स्थान ले लेगा include_path, browscap, error_log, extension_dir..

और बस। अब आप XAMPP कंट्रोल पैनल से Apache शुरू कर सकते हैं। और एक संस्करण से दूसरे में स्विच करने के लिए, आपको केवल C:\xampp\apache\conf\httpd.confअपाचे को पुनरारंभ करने से पहले शामिल PHP संस्करण को संपादित करने और बदलने की आवश्यकता है ।


3

कमांड प्रॉम्प्ट विंडो (cmd.exe) में इसे चलाएं।

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

यह बदलने पर निर्भर करता है कि आपने php 7 इंस्टॉलेशन कहां रखा है।


2

आप इस विन्यास के साथ अपना समय बर्बाद करने की जरूरत नहीं है बस MAMP :) का उपयोग करें

MAMP में इंटरफ़ेस पर PHP संस्करण चयन सुविधा है।


2

यह शायद सवाल का कम से कम तकनीकी उत्तर है, लेकिन यह भी पूरा करना सबसे आसान है।

यदि आपके पास दो ड्राइव हैं जैसे C: और D: आप दोनों अलग ड्राइव पर XAMPP का एक अलग इंस्टालेशन अलग php वर्जन के साथ इंस्टाल कर सकते हैं। यह मुझे करने के लिए 10 मिनट से कम समय लगा और कम से कम त्रुटि का खतरा है।

मैं दोनों xampp-control.exe के लिए दो डेस्कटॉप शॉर्टकट बनाता हूं और उनके php संस्करण के बाद शॉर्टकट का नाम देता हूं। मुझे उम्मीद है कि यह मेरे जैसे किसी व्यक्ति को मदद करता है जो बहुत जल्दी और गंदे समाधान को तरजीह देता है।


1

इस आसान चरणों का पालन करें । मैं वर्तमान में PHP 7.2 पर XAMPP चला रहा हूं, लेकिन पुराने प्रोजेक्ट्स पर काम करने के लिए PHP 5.6 की आवश्यकता है

चरण 1

Https://windows.php.net/download पर PHP का थ्रेड सुरक्षित संस्करण डाउनलोड करें

अपने [ड्राइव]: \ xampp \ php5.6 पर फ़ाइलें डालें

  • Php संस्करण के आधार पर फ़ोल्डर का नाम बदलें

चरण 2

[ड्राइव]: \ xampp \ apache \ conf \ extra \ httpd-xampp.conf कॉपी करें

इसे [ड्राइव] में बदलें: \ xampp \ apache \ conf \ extra \ httpd-xampp5.6.confRename फ़ाइल को Php संस्करण पर निर्भर करता है

चरण 3

नए बनाए गए 'httpd-xampp5.6.conf' को संपादित करें

मूल रूप से आपको सभी PHP स्रोत और .dll को बदलना होगा

इससे पहले

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

उपरांत

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

यहाँ मेरी फाइल है: https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec

चरण 4

फ़ाइल को संपादित करें [ड्राइव]: \ xampp \ apache \ conf \ httpd.conf

इससे पहले

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

उपरांत

# XAMPP settings
Include "conf/extra/httpd-xampp5.6.conf"
  • भिन्न संस्करण पर स्विच करते समय आप इस पंक्ति को संपादित कर सकते हैं

कदम 5

अपने PHP 5.6 कॉन्फ़िगरेशन को संपादित करें - php.ini

आप एक्सटेंशन निर्देशिका जोड़ें: extension_dir = "C: \ xampp \ php5.6 \ ext"

चरण 6

अपाचे शुरू करो

चरण 7

विंडोज पर PHP पर्यावरण चर पथ संपादित करें


0

शायद थोड़ी देर हो गई है, लेकिन मैं PHP फ़ोल्डरों का नाम बदलने के लिए एक बैच का उपयोग कर रहा हूं ( मैं पहले पाया गया phpswitch का थोड़ा संशोधित संस्करण )।

आप अपने XAMPP इंस्टालेशन में अलग-अलग फोल्डर कॉपी करते हैं। प्रत्येक PHP फ़ोल्डर (सक्रिय को छोड़कर) एक प्रत्यय के रूप में संस्करण संख्या प्राप्त करता है (जैसे। php_5.6.32 )। में सभी पीएचपी फोल्डर, एक फ़ाइल (PHP_VERSION) बनाया जाता है, जो केवल संबंधित संस्करण संख्या मौजूद है, इसलिए स्क्रिप्ट इस जानकारी प्राप्त कर सकते हैं। लेकिन यह सब README में वर्णित है।

PHP7 के बाद से httpd-xampp.conf भार php7ts.dll बजाय php5ts.dll । इसलिए मुझे इन विन्यास-फाइलों का नाम बदलने के लिए स्क्रिप्ट (PHPSwitch.php) का भी विस्तार करना पड़ा।

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

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

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

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

0

मुझे एक ही काम करने की आवश्यकता थी, इसलिए मैंने गुगली की कि कैसे और कैसे ओवरफ्लो हो गया, जहां ओपी एक ही मुद्दा रहा था ... इसलिए मेरे निष्कर्ष .. मैंने सभी अलग-अलग दिशाओं से फ़ाइलों का नाम बदलने की कोशिश की और मेरा निष्कर्ष मूल रूप से मुझे ले रहा था बहुत लंबा। SOOOO मैंने यहां से संस्करण 7 स्थापित करने को समाप्त कर दिया:

https://www.apachefriends.org/index.html (सेवाओं को मारने और प्रयास करने से पहले xampp से बाहर निकलें)

यह पूछे जाने पर कि निर्देशिका का नाम कहां रखना है (इसे अलग नाम दें):

यहां छवि विवरण दर्ज करें

तथा

DONEZO! अब बस सेवाओं को मारने के लिए सुनिश्चित करें और आगे और पीछे स्वैप करने से पहले छोड़ दें और आपके पास खेलने के लिए 2 बाँझ XAMPP envs हैं।

हुर्रे! अब मैं वास्तव में काम कर सकता हूं!


मुझे लगता है कि यह पहले से ही 2 उत्तर मौलिक गंगानी और ओग 1842 द्वारा सुझाया गया है।
मुनीम मुन्ना

0

इस php स्विचर का उपयोग करें

आप अपने किसी भी प्रोजेक्ट के लिए php संस्करण को नियंत्रित कर सकते हैं जिसे आप vhost config के माध्यम से चाहते हैं।


0

मुझे पता है कि यह पुरानी पोस्ट है लेकिन मैं साझा करना चाहता हूं कि PHP 7 में अभी भी mysql_connect () चल रहा है। यह वास्तविक फंक्शन (mysql_connect () को ओवरराइड करके काम करता है mysli_connect () जो इस लाइब्रेरी पर काम करता है)।

मुझे यह वीडियो https://www.youtube.com/watch?v=Eqd-jJu4sQ4 से मिला

उम्मीद है कि यह मदद करता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.