विंडोज पर अपाचे, PHP और MySQL मैन्युअल रूप से कैसे स्थापित करें?


48

मैं बिना किसी रेडी-टू-यूज़ पैकेज जैसे WAMPServer या XAMPP का उपयोग किए बिना Windows में Apache PHP सपोर्ट और MySQL सर्वर के साथ Apache कैसे स्थापित करूँ ?

जवाबों:


65

अमरीका की एक मूल जनजाति

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

जैसा कि इन प्लेटफ़ॉर्म विशिष्ट नोटों में उल्लेख किया गया है, अपाचे विंडोज के लिए बायनेरिज़ प्रदान नहीं करता है, हालांकि उनके पास कई तृतीय-पक्ष साइटों के लिंक हैं जो कि बायनेरी प्रदान करते हैं, उदाहरण के लिए अपाचे लाउंज

उस वेबसाइट से, हम 32-बिट संस्करण (win32) या 64-बिट एक (Win64) डाउनलोड कर सकते हैं - यदि आपका OS 64-बिट है तो आपको हमेशा 64-बिट संस्करण सॉफ़्टवेयर स्थापित करने का प्रयास करना चाहिए, लेकिन ध्यान दें कि आप '64-बिट मॉड्यूल का उपयोग करने की आवश्यकता होगी, इसका मतलब है कि यदि आपके पास केवल 32-बिट मॉड्यूल है तो 32-बिट एपाचे डाउनलोड करें।

यहाँ संस्करण है जो मैंने इसे लिखते समय उपयोग किया था: Apache 2.4.10 Win64 । नवीनतम उत्तर जब यह उत्तर आखिरी बार अपडेट किया गया था: Apache 2.4.38 Win64 (पोस्ट के निचले भाग पर स्थित संपादन तिथि देखें)।

एक बार डाउनलोड करने के बाद, बस Apache24फ़ोल्डर को अपनी हार्ड ड्राइव के मूल में निकालें , ताकि आपके पास एक रास्ता हो C:\Apache24\bin

एक कमांड लाइन विंडो खोलें (विंडोज + आर और टाइप करें cmdफिर एंटर दबाएं), डायरेक्टरी को बदलकर C:\Apache24\binचलाएं httpd.exe, आम तौर पर इसे किसी भी त्रुटि को प्रिंट नहीं करना चाहिए।

यदि आपको एक त्रुटि संवाद मिलता है जो बताता है कि MSVCR110.dllआपके सिस्टम में गायब है, तो आपको विजुअल C ++ Redistributable को Visual Studio 2012 के लिए इंस्टॉल करना होगा - हमेशा की तरह, जब संकेत दिया जाए, तो उपयुक्त बिट-वर्जन चुनें: vcredist_x86.exe32-बिट सिस्टम के लिए और vcredist_x64.exe64 के लिए -बेटे हैं।

यदि आपको यह कहते हुए एक त्रुटि मिलती है कि यह 80 पोर्ट में बाँध नहीं सकता है, तो जांचें कि क्या कोई अन्य एप्लिकेशन उस पोर्ट का उपयोग करता है - यह भी कि Skype डिफ़ॉल्ट रूप से पोर्ट 80 और 443 का उपयोग करने के लिए जाना जाता है; अपनी उन्नत कनेक्शन सेटिंग्स में "आने वाले कनेक्शन के लिए विकल्प के रूप में पोर्ट 80 और 443 का उपयोग करें" को अनचेक करें , परिवर्तनों को लागू करने के लिए Skype को पुनरारंभ करें, और फिर आपको बिना मुद्दों के Apache शुरू करने में सक्षम होना चाहिए।

जैसी चेतावनी Could not reliably determine the server's fully qualified domain nameको अब नजरअंदाज किया जा सकता है।

विंडोज फ़ायरवॉल आपको अपाचे को विशिष्ट नेटवर्क पर संचार करने की अनुमति देने के लिए प्रेरित कर सकता है, मैं आपको डिफ़ॉल्ट सेटिंग्स का उपयोग करने की सलाह देता हूं: इसे घर और कार्य नेटवर्क पर अनुमति दें, लेकिन सार्वजनिक / अविश्वसनीय नेटवर्क पर नहीं।

फिर, एक ब्राउज़र खोलें और ब्राउज़ करें http://localhost, यदि आप एक पृष्ठ कहते हुए देखते हैं It works !तो इसका मतलब है कि आपकी Apache स्थापना काम कर रही है।

अब आप कमांड प्रॉम्प्ट में Ctrl + C दबाकर वर्तमान में चल रहे Apache को रोक सकते हैं।

यदि आपको सिस्टम के पूरी तरह से योग्य डोमेन नाम का निर्धारण करने में सक्षम नहीं होने के बारे में चेतावनी मिली है, तो इसे संपादित करके C:\Apache24\conf\httpd.confऔर ServerNameचर को संपादित करके ठीक करें (यह पहले से ही एक टिप्पणी में होना चाहिए, बस इसे अनसुना कर दें और इसे बदल दें):

ServerName <yourhostname>

<yourhostname>सिस्टम के होस्ट नाम के साथ बदलें या localhost

अंत में, यदि आप सिस्टम शुरू होने पर स्वचालित रूप से सर्वर चलाना चाहते हैं (भले ही कोई भी लॉग इन नहीं करता है), तो आपको इसे एक सेवा के रूप में चलाने की आवश्यकता होगी - एक नए एलिवेटेड (एक प्रशासक के रूप में) कमांड प्रॉम्प्ट पर, टाइप करें:

httpd.exe -k install

यही है, अब आपके पास सेवाओं में एक नई सेवा है (Windows + R तब "services.msc" टाइप करें "Enter" दबाएं) जिसका नाम "Apache2.4" है जिसे आप किसी अन्य विंडोज सेवा की तरह ही नियंत्रित कर सकते हैं।

localhostकेवल अपाचे एक्सेस पर प्रतिबंध - वैकल्पिक

यदि आप इसे विकास के उद्देश्यों के लिए स्थापित कर रहे हैं, तो आप यह सुनिश्चित करना चाहते हैं कि आपके अलावा कोई भी इसे एक्सेस नहीं कर सकता है, आपके फ़ायरवॉल को पहले से ही इसका ध्यान रखना चाहिए, लेकिन स्थानीय से अनुरोध स्वीकार करने के लिए अपाचे को बताकर सुरक्षा की एक और परत जोड़ दें। केवल मशीन।

अपाचे की कॉन्फ़िगरेशन फ़ाइल खोलें C:\Apache24\conf\httpd.conf, डिफ़ॉल्ट निर्देशिका ब्लॉक की खोज करें <Directory "c:/Apache24/htdocs">

अंत में अगर यह है, तो एक रेखा होनी चाहिए Require all granted, इसका मतलब है कि कोई भी इस सर्वर तक पहुंच सकता है। आइए बनाते हैं Require localजो केवल स्थानीय मशीन से पहुंच की अनुमति देता है।

इसके अलावा, आप अपाचे को केवल लूपबैक इंटरफ़ेस से बाँध सकते हैं, इस तरह से भले ही आपके फ़ायरवॉल और उपर्युक्त नियंत्रण निर्देश दोनों विफल हों, सर्वर अभी भी पूरे इंटरनेट के लिए खुला नहीं होगा।

इसके लिए, Listenनिर्देश का पता लगाएं (डिफ़ॉल्ट रूप से यह सेट है 80) और इसे निम्न में बदलें:

Listen 127.0.0.1:80
Listen [::1]:80

पहली पंक्ति आत्म व्याख्यात्मक है, दूसरी पहली पहली IPv6 समकक्ष है, कोष्ठक IPv6 अंकन में पते और बंदरगाह को अलग करने के लिए उपयोग किया जाता है।

फ़ाइल को सहेजें, यदि आप पहले से ही सर्वर चला रहे हैं, तो हमारे परिवर्तनों को ध्यान में रखने के लिए इसे पुनः आरंभ करें, और अब केवल localhostएक्सेस है, बाकी सभी को ए मिलेगा 403 Forbidden

पीएचपी

मेरा सुझाव है कि आप इसे विंडोज सिस्टम पर स्थापित करने के बारे में आधिकारिक PHP दस्तावेज पढ़ें ।

विंडोज डाउनलोड पेज के लिए आधिकारिक PHP से नवीनतम PHP बायनेरी डाउनलोड करें, थ्रेड-सेफ संस्करण चुनें जो आपके अपाचे इंस्टॉलेशन के बिट-वर्जन (32-बिट के लिए x86, 64-बिट के लिए x 64) से मेल खाता है।

गैर थ्रेड-सुरक्षित संस्करण केवल तब होता है जब सीजीआई बाइनरी के रूप में चल रहा हो - यहां अधिक जानकारी ।

मैंने जो संस्करण उपयोग किया है वह यह है: PHP 5.6.2 VC11 x64 थ्रेड सुरक्षित । नवीनतम उत्तर जब यह उत्तर अंतिम बार अपडेट किया गया था: PHP 7.3.3 VC15 x64 थ्रेड सुरक्षित (पोस्ट के निचले भाग पर स्थित संपादन तिथि को देखें)।

PHPअपनी हार्ड ड्राइव की जड़ में एक खाली फ़ोल्डर बनाएं , और पहले से डाउनलोड किए गए संग्रह को वहां निकालें, आपके पास एक रास्ता होना चाहिए C:\PHP\ext, अन्यथा आपने कुछ गलत किया।

में C:\PHP, ( php.ini-productionया php.ini-developmentजो आप चाहते हैं पर निर्भर करता है) का नाम बदलें php.ini

उस php.iniफ़ाइल को खोलें , extension_dir = "ext"उस लाइन को खोजें और अनकम्प्लीट करें (पहले निकालें ;)। यह डिफ़ॉल्ट एक्सटेंशन को dir को सेट extकरता है (जो इस पोस्ट के पिछले संस्करणों में मैन्युअल रूप से सभी एक्सटेंशन के पथों के लिए प्रस्तुत C:\PHP\extकरने से बचता है और इससे बचा जाता है) ext/

अब Apache को उस PHP का उपयोग करने के लिए कॉन्फ़िगर करें, संपादन के C:\Apache24\conf\httpd.confबाद - सभी LoadModuleलाइनों के बाद , निम्नलिखित जोड़ें:

( केवल PHP 7 के लिए अनुसरण है )

LoadModule php7_module "c:\php\php7apache2_4.dll"

<IfModule php7_module>

    AddHandler application/x-httpd-php .php
    AddType application/x-httpd-php .php .html
    PHPIniDir "c:\php"
</IfModule>

(निम्नलिखित केवल PHP 5 के लिए है )

LoadModule php5_module C:/PHP/php5apache2_4.dll

<IfModule php5_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

अब एक कमांड प्रॉम्प्ट को खोलकर C:\Apache24\binऔर चलाकर अपाचे को मैन्युअल रूप से शुरू करने का प्रयास करें httpd.exe- यदि आपको कोई त्रुटि नहीं दिखती है, तो इसका मतलब है कि आपकी कॉन्फ़िगरेशन फ़ाइल वैध है और PHP सबसे अधिक संभावना है

आप की तरह एक फ़ाइल बनाने के द्वारा अपने PHP स्थापना परीक्षण कर सकते हैं info.phpके साथ <?php phpinfo();अंदर और करने के लिए जा http://localhost/info.php- आप काफी अपने सिस्टम और अपने PHP स्थापना और उसके सभी मॉड्यूल के बारे में जानकारी का एक सा देखना चाहिए। यदि आपको "आंतरिक सर्वर त्रुटि" जैसा कुछ और मिलता है, जिसका अर्थ कुछ गलत है।

अब आप अपनी वर्तमान अपाचे प्रक्रिया (कंसोल में Ctrl + C) को मार सकते हैं और सेवा शुरू कर सकते हैं - निम्न भाग अपाचे के साथ बातचीत नहीं करता है और पहले से ही शुरू किए गए सर्वर के साथ किया जा सकता है।

संगीतकार - वैकल्पिक

कम्पोज़र PHP में निर्भरता प्रबंधन के लिए एक उपकरण है, पैकेज मैनेजर की तरह। यह आसानी से PHP पैकेज और यहां तक ​​कि पूरे ढांचे को स्थापित करने की अनुमति देता है।

संगीतकार को PHP OpenSSL एक्सटेंशन को सक्षम करने की आवश्यकता होती है, तो चलिए इसे सक्षम करते हैं C:\PHP\php.ini

खोजने के लिए अपने टेक्स्ट एडिटर के खोज फंक्शन का उपयोग करें php_openssl.dll, इसके लिए पहले से ही एक टिप्पणी लाइन होनी चाहिए, बस उस लाइन को अनकम्प्रेस्ड करें।

अब कम्पोज़र के विंडोज इंस्टॉलर को उनके डाउनलोड पेज से डाउनलोड करें - या बस इस डायरेक्ट लिंक का उपयोग करें ।

PHP के पथ के लिए संकेत दिए जाने पर, निर्देशों का पालन करें, ब्राउज़ करें C:\PHPऔर चुनें php.exe

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

आपको एक अच्छा ASCII- कला लोगो और कुछ इस तरह मिलना चाहिए:

Composer version e87bc894daf8d5f8e77a01dd7ae5f0446ae30b14 2014-05-01 15:40:28

PHP MySQL एक्सटेंशन - वैकल्पिक

यदि आप अपने MySQL डेटाबेस को PHP से एक्सेस करना चाहते हैं, तो आपको उन एक्सटेंशन को सक्षम करने की आवश्यकता होगी जो आपको ऐसा करने की अनुमति देते हैं, जैसे - php_mysqliया php_pdo_mysqlमैं उन दोनों को सक्षम करने की सलाह देता हूं।

C:\PHP\php.iniअपने टेक्स्ट एडिटर में PHP की कॉन्फिगरेशन फ़ाइल खोलें और उन्हें खोजें php_mysqliया php_pdo_mysqlउन्हें पहले से ही वहां मौजूद होना चाहिए।

हो गया, अब आप mysqliया तो का उपयोग करके किसी भी MySQL डेटाबेस का उपयोग कर सकते हैं PDO

माई एसक्यूएल

पर MySQL इंस्टालर डाउनलोड पृष्ठ वेब इंस्टॉलर डाउनलोड mysql-installer-web-community-xxxxx.msi

मैंने mysql-संस्थापक-वेब-समुदाय-5.6.21.1.msi का उपयोग किया। नवीनतम उत्तर जब यह उत्तर अंतिम बार अपडेट किया गया था: mysql-संस्थापक-वेब-समुदाय -8.0.15.0.msi (पोस्ट के निचले भाग पर संपादन दिनांक देखें)।

इंस्टॉलर स्वचालित रूप से आपके सिस्टम के आधार पर उपयुक्त संस्करण (32-बिट या 64-बिट) स्थापित करेगा, भले ही MySQL के बिट संस्करण को अपाचे और PHP के एक से मेल नहीं खाना है, लेकिन यह अभी भी आपके 64-बिट संस्करण का उपयोग करने के लिए फायदेमंद है सिस्टम 3 जीबी से अधिक रैम का लाभ उठाने के लिए इसका समर्थन करता है, यह काफी महत्वपूर्ण है क्योंकि डेटाबेस सर्वर बहुत अधिक रैम का उपयोग करते हैं।

इंस्टॉलर में दिए गए चरणों का पालन करें, यदि आप इसे विकास के लिए स्थापित कर रहे हैं, तो Developer defaultआपका सबसे अच्छा विकल्प होगा, यह MySQL वर्कबेंच भी स्थापित करेगा, जो एक देशी GUI क्लाइंट है, इस प्रकार आपको धीमी गति से वेब-आधारित टूल जैसे कि यदि आप कमांड लाइन क्लाइंट का उपयोग करने में सहज नहीं हैं, तो PHPMyAdmin।

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

रूट पासवर्ड सेट करें - यदि यह केवल विकास के उद्देश्यों के लिए है और आपका फ़ायरवॉल नेटवर्क से आने वाले कनेक्शन को अवरुद्ध करता है तो एक मजबूत पासवर्ड आवश्यक नहीं है।

अंत में, आप ट्रे आइकन पर राइट-क्लिक करके बेकार MySQL नोटिफ़ायर को अक्षम कर सकते हैं, क्रिया -> विकल्प में जा रहे हैं, फिर Run at Windows Startupचेकबॉक्स को अनचेक करें और आवेदन करें। यह आपको कुछ एमबी रैम बचा लेगा और बूट होने पर आपकी मशीन को धीमा करने से बचाएगा।

और ऐसा ही है, अब आपके पास पूरी तरह कार्यात्मक WAMP सर्वर है जो एक सेवा के रूप में चलता है और किसी भी उपयोगकर्ता पर निर्भर नहीं करता है (सुलभ है भले ही कोई भी लॉग इन न हो)।

ध्यान दें कि मुझे इसकी सुरक्षा के बारे में कोई जानकारी नहीं है, विकास के उद्देश्यों के लिए मैं कहूंगा कि यह बहुत ही सुरक्षित है क्योंकि आपके फ़ायरवॉल को अपाचे (पोर्ट 80 और या 443) और MySQL (पोर्ट 3306) दोनों के लिए आने वाले कनेक्शन को ब्लॉक करना चाहिए।

यह एक विंडोज 7 इंस्टॉलेशन पर परीक्षण किया गया था, यह विस्टा, विंडोज 8 और संभवतः विंडोज सर्वर 2008/2012 पर भी ठीक काम करना चाहिए - अगर यह मामला नहीं है, तो टिप्पणी और / या नीचे करने के लिए स्वतंत्र महसूस करें।


3
मैं बस यह ध्यान देना चाहूंगा कि php.ini में विंडोज के लिए extension_dir = "ext" लाइन को अनइंस्टॉल करना आवश्यक हो सकता है।
चिवविजिम

@jaffamcneill वास्तव में आप सही थे, मैंने उस के लिए अपने जवाब को अपडेट किया।

यपु ने मेरी जान बचाई। मैं पिछले एक सप्ताह से इससे जूझ रहा था लेकिन mysql सिर्फ phpinfo में सक्षम नहीं होगा। मैंने आपकी मदद से इसे ठीक कर दिया। अनेक अनेक धन्यवाद।
चतुर_बस्सी

हमें mod_fcgid मॉड्यूल का उपयोग कब करना चाहिए? मेरे पास एक समस्या है कि मेरे पास सिस्टम पर कई उपयोगकर्ता एक ही समय पर कई अनुरोध कर रहे हैं। मुझे 64 बिट संस्करण की आवश्यकता है क्योंकि 32 बिट मेमोरी से बाहर निकलता है (रिपोर्ट के लिए भारी अनुरोध के साथ वीएफपी ओडीबीसी)। क्या आपका सेटअप ठीक काम करेगा या क्या मुझे php_fcgid मॉड्यूल का उपयोग करने की आवश्यकता है और PHP को cgi मूड्यूल के रूप में स्थापित करना चाहिए? यह हमेशा मुझे भ्रमित करता है ... किसी भी जानकारी के लिए धन्यवाद।
जेरेमी

1
जब MSVCR110.dllत्रुटि दिखाई गई (वर्तमान अपाचे संस्करण पर) तो मैंने दृश्य C ++ Redistributable 2010 SP1 को स्थापित करना समाप्त कर दिया। बाद में मुझे फाइल के बारे में एक और त्रुटि मिली VCRUNTIME140.dll, जिसके लिए मुझे विजुअल सी ++ को विजुअल स्टूडियो 2015 में स्थापित करने की आवश्यकता थी।
कोडेड मंकी

8

PHP 7

उपरोक्त उत्तर में दिए गए निर्देश जुलाई 2017 तक पूरी तरह से काम करते हैं, हालाँकि, यदि आप PHP 7 का उपयोग करना चाहते हैं, तो आपको C:\Apache24\conf\httpd.confउस उत्तर के बजाय निम्नलिखित पंक्तियों को जोड़ना होगा (जो केवल PHP 5 के लिए काम करते हैं) [निम्नलिखित जोड़ें] सभी LoadModuleलाइनों के बाद ] :

LoadModule php7_module C:/PHP/php7apache2_4.dll

<IfModule php7_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

सुनिश्चित करें कि सभी रास्ते सही हैं। यदि php7apache2_4.dllआपकी PHP निर्देशिका में नहीं है , तो आप शायद गलत पैकेज डाउनलोड कर सकते हैं।

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