it-swarm.asia

كيفية تثبيت اباتشي يدويا ، PHP و MySQL على ويندوز؟

كيف أقوم بتثبيت Apache بدعم PHP وخادم MySQL على نظام Windows بدون استخدام أي حزم جاهزة للاستخدام مثل WAMPServer أو XAMPP؟

44
user256743

أباتشي

أولاً ، أنصحك بقراءة ملاحظات خاصة بالنظام الأساسي من Apache for Windows - فهي تشرح بعض الميزات الخاصة بنظام Windows مثل التشغيل كخدمة ليس لديك على أنظمة تشغيل أخرى وربما لم تستخدمها من قبل.

كما هو مذكور في هذه الملاحظات الخاصة بالنظام الأساسي ، لا يوفر Apache ثنائيات لنظام التشغيل Windows ، ولكن لديهم روابط إلى عدة مواقع تابعة لجهات خارجية توفر ثنائيات ، على سبيل المثال Apache Lounge .

من موقع الويب هذا ، يمكننا تنزيل الإصدار 32 بت (win32) أو الإصدار 64 بت واحد (Win64) - إذا كان نظام التشغيل لديك 64 بت ، فيجب أن تحاول دائمًا تثبيت إصدارات 64 بت من البرامج ، ولكن لاحظ أنك ستحتاج إلى استخدام وحدات 64 بت أيضًا ، وهذا يعني أنه إذا كان لديك وحدة 32 بت فقط ، فقم بتنزيل الإصدار 32 بت Apache.

إليك الإصدار الذي استخدمته عند كتابة هذا: (Apache 2.4.10 Win64. أحدث إصدار عند آخر تحديث لهذه الإجابة: Apache 2.4.38 Win64 (انظر تاريخ التحرير في أسفل المنشور).

بمجرد التنزيل ، ما عليك سوى استخراج المجلد Apache24 إلى جذر محرك الأقراص الثابتة ، بحيث يكون لديك مسار مثل C:\Apache24\bin.

افتح نافذة سطر الأوامر (Windows + R واكتب cmd ثم اضغط على Enter) ، وقم بتغيير الدليل إلى C:\Apache24\bin وقم بتشغيل httpd.exe ، وعادة لا ينبغي طباعة أي أخطاء.

إذا تلقيت مربع حوار خطأ يشير إلى أن MSVCR110.dll مفقود على نظامك ، فستحتاج إلى تثبيت Visual C++ Redistributable for Visual Studio 2012 - كما هو الحال دائمًا ، عند المطالبة ، حدد إصدار البت المناسب: vcredist_x86.exe لـ 32 أنظمة بت و vcredist_x64.exe لأنظمة 64 بت.

إذا ظهرت لك رسالة تفيد بعدم إمكانية ربطه بالمنفذ 80 ، فتحقق مما إذا كان هناك تطبيق آخر يستخدم هذا المنفذ - كما يُعرف Skype باستخدام المنفذين 80 و 443 افتراضيًا ؛ ألغ تحديد "استخدام المنفذ 80 و 443 كبدائل للاتصالات الواردة" في إعدادات الاتصال المتقدمة الخاصة به ، أعد تشغيل Skype لتطبيق التغييرات ، ومن ثم يجب أن تتمكن من تشغيل Apache دون مشاكل.

يمكن تجاهل تحذير مثل Could not reliably determine the server's fully qualified domain name في الوقت الحالي.

قد يطالبك جدار حماية Windows بالسماح لـ Apache بالاتصال على شبكات محددة ، نوصيك باستخدام الإعدادات الافتراضية: السماح بها على الشبكات المنزلية والعمل ، ولكن ليس على الشبكات العامة/غير الموثوق بها.

بعد ذلك ، افتح متصفحًا وتصفح إلى http://localhost ، إذا رأيت صفحة تقول It works ! فهذا يعني أن تثبيت Apache يعمل.

يمكنك الآن إيقاف تشغيل Apache الجاري تشغيله حاليًا عن طريق الضغط على Ctrl + C في موجه الأوامر.

إذا تلقيت تحذيرًا بشأن عدم قدرتك على تحديد اسم المجال المؤهل بالكامل للنظام ، فقم بإصلاحه عن طريق تحرير C:\Apache24\conf\httpd.conf وتحرير المتغير ServerNameيجب أن يكون موجودًا بالفعل في تعليق ، فقط قم بإلغاء التعليق وتغييره):

ServerName <yourhostname>

(استبدل <yourhostname> إما باسم المضيف للنظام أو localhost.

أخيرًا ، إذا كنت ترغب في تشغيل الخادم تلقائيًا عند بدء تشغيل النظام (حتى إذا لم يقم أحد بتسجيل الدخول) ، فستحتاج إلى تشغيله كخدمة - في أمر موجه جديد (كمسؤول) موجه ، اكتب:

httpd.exe -k install

هذا كل شيء ، الآن لديك خدمة جديدة في الخدمات (Windows + R ثم اكتب "services.msc" ثم اضغط على Enter) المسمى "Apache2.4" بحيث يمكنك التحكم تمامًا مثل أي خدمة Windows أخرى.

تقييد وصول Apache إلى localhost فقط - اختياري

إذا كنت تقوم بإعداد هذا لأغراض التطوير وتريد التأكد من أنه لا يوجد أحد غيرك يمكنك الوصول إليه ، فيجب أن يقوم جدار الحماية الخاص بك بالفعل بالاعتناء بذلك ولكن دعنا نضيف طبقة أخرى من الأمان إليه من خلال إخبار Apache بقبول الطلبات من المحلي الجهاز فقط.

افتح ملف تكوين Apache C:\Apache24\conf\httpd.conf ، ابحث عن كتلة الدليل الافتراضية <Directory "c:/Apache24/htdocs">.

في النهاية ، إذا كان يجب أن يكون هناك سطر Require all granted ، فهذا يعني أنه يمكن لأي شخص الوصول إلى هذا الخادم. لنجعل ذلك Require local الذي يسمح فقط بالوصول من الجهاز المحلي.

يمكنك أيضًا إخبار Apache بالربط فقط بواجهة الاسترجاع ، وبهذه الطريقة ، حتى إذا فشل كل من جدار الحماية وتوجيهات التحكم في الوصول المذكورة أعلاه ، فلن يكون الخادم مفتوحًا للإنترنت بالكامل.

لهذا ، حدد موقع التوجيه Listen (بشكل افتراضي ، تم تعيينه على 80) وقم بتغييره إلى ما يلي:

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

السطر الأول واضح بذاته ، والثاني هو مكافئ IPv6 الخاص بالواحد ، ويتم استخدام الأقواس في تدوين IPv6 لفصل العنوان والمنفذ.

احفظ الملف ، إذا كنت تقوم بالفعل بتشغيل الخادم ثم أعد تشغيله من أجل أخذ تغييراتنا في الاعتبار ، والآن localhost فقط لديه حق الوصول ، سيحصل الجميع على 403 Forbidden.

PHP

أقترح عليك قراءة _ (مسؤول PHP الوثائق حول تثبيته على أنظمة Windows.

قم بتنزيل أحدث PHP ثنائيات من المسؤول PHP) صفحة تنزيل Windows ، اختر إصدار مؤشر الترابط الآمن الذي يطابق إصدار بت تثبيت Apache (x86 لـ 32 بت ، x64 ل 64 بت).

الإصدار غير الآمن من سلاسل الرسائل لا يكون إلا عند التشغيل كثنائي CGI - مزيد من المعلومات هنا .

الإصدار الذي استخدمته هو هذا: PHP 5.6.2 VC11 x64 Thread Safe. أحدث إصدار عند آخر تحديث لهذه الإجابة: PHP 7.3.3 VC15 x64 Safe Safe (انظر تاريخ التحرير في أسفل المنشور).

قم بإنشاء مجلد 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>

حاول الآن بدء تشغيل Apache يدويًا عن طريق فتح أمر موجه في C:\Apache24\bin وتشغيل httpd.exe - إذا لم تشاهد أية أخطاء ، فهذا يعني أن ملف التكوين صالح وأن PHP هو يعمل على الأرجح).

يمكنك اختبار PHP التثبيت الخاص بك عن طريق إنشاء ملف مثل info.php مع <?php phpinfo(); من الداخل والانتقال إلى http://localhost/info.php - يجب أن تشاهد بعض المعلومات حول نظامك وتثبيت PHP وكل ما يتعلق به وحدات. إذا حصلت على شيء آخر مثل "خطأ داخلي في الخادم" فهذا يعني وجود خطأ ما.

يمكنك الآن قتل عملية Apache الحالية (Ctrl + C في وحدة التحكم) وبدء الخدمة - الجزء التالي لا يتفاعل مع Apache ويمكن القيام به مع الخادم الذي بدأ بالفعل.

الملحن - اختياري

الملحن هو أداة لإدارة التبعية في PHP ، مثل مدير الحزم. يسمح بسهولة بتثبيت الحزم PHP وحتى الأطر بأكملها.

يتطلب الملحن تمكين PHP امتداد OpenSSL ، لذلك دعونا نمكنه في C:\PHP\php.ini.

استخدم وظيفة البحث الخاصة بمحرر النصوص للبحث عن php_openssl.dll ، يجب أن يكون هناك بالفعل سطر معلق عليه ، فقط قم بإلغاء تحديد هذا السطر.

الآن قم بتنزيل أداة تثبيت Windows Composer من _ (صفحة التنزيل - أو فقط استخدم هذا الرابط المباشر .

اتبع الإرشادات ، عند مطالبتك بالمسار إلى PHP ، استعرض للوصول إلى C:\PHP وحدد php.exe.

هذا كل شيء ، يتم الآن تثبيت Composer على مستوى النظام ويمكن استخدامه من أي مكان - يمكنك تجربته ، ما عليك سوى فتح أمر جديد موجه (لا يمكنك استخدام واحد مفتوح بالفعل لأنه يحتاج إلى قراءة متغير PATH الجديد الذي تم تعيينه بواسطة مثبت الملحن) واكتب composer.

يجب أن تحصل على شعار Nice ASCII-art وشيء من هذا القبيل:

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

ملحقات PHP MySQL - اختياري

إذا كنت ترغب في الوصول إلى قاعدة بيانات MySQL الخاصة بك من PHP ، فستحتاج إلى تمكين الإضافات التي تسمح لك بالقيام بذلك ، مثل php_mysqli أو php_pdo_mysql - أوصي بتمكينهما كليهما.

افتح ملف تهيئة PHP C:\PHP\php.ini في محرر النصوص الخاص بك وابحث عن php_mysqli أو php_pdo_mysql - يجب أن يكون هناك بالفعل ، وإلغاء التثبيت.

تم ، يمكنك الآن الوصول إلى أي قاعدة بيانات MySQL باستخدام إما mysqli أو PDO .

الخلية

في صفحة تنزيل MySQL Installer قم بتنزيل مثبت الويب mysql-installer-web-community-xxxxx.msi.

اعتدت mysql-installer-web-community-5.6.21.1.msi. أحدث إصدار عند آخر تحديث لهذه الإجابة: mysql-installer-web-community-8.0.15.0.msi (انظر تاريخ التحرير في أسفل المنشور).

سيقوم المثبت بتثبيت الإصدار المناسب تلقائيًا (32 بت أو 64 بت) وفقًا لنظامك ، على الرغم من أن إصدار بت MySQL لا يجب أن يتطابق مع إصدار Apache و PHP ولكن لا يزال من المفيد استخدام الإصدار 64 بت إصدار نظامك يدعمه للاستفادة من أكثر من 3 غيغابايت من RAM ، هذا أمر مهم للغاية لأن خوادم قاعدة البيانات تميل إلى استخدام الكثير من ذاكرة الوصول العشوائي.

اتبع الخطوات الموجودة في برنامج التثبيت ، إذا كنت تقوم بتثبيت هذا من أجل التطوير ، فسيكون Developer default هو خيارك الأفضل ، وسوف يقوم أيضًا بتثبيت MySQL Workbench وهو عميل واجهة المستخدم الرسومية الأصلي ، وبالتالي تجنب الاضطرار إلى تثبيت أدوات بطيئة تستند إلى الويب مثل كـ PHPMyAdmin إذا لم تكن راضيًا عن استخدام عميل سطر الأوامر.

بمجرد تثبيت كل شيء ، سيسألك برنامج التثبيت عن بعض قيم التكوين الأساسية ، أوصي بتعطيل "منفذ جدار الحماية المفتوح للوصول إلى الشبكة" إلا إذا كنت ترغب في الوصول إلى قاعدة البيانات من جهاز آخر على الشبكة.

عيّن كلمة مرور الجذر - إذا كان ذلك فقط لأغراض التطوير وكان جدار الحماية الخاص بك يحظر الاتصالات الواردة من الشبكة فإن كلمة مرور قوية ليست ضرورية.

أخيرًا ، يمكنك تعطيل MySQL Notifier عديمة الفائدة عن طريق النقر بزر الماوس الأيمن على أيقونة الدرج ، والذهاب إلى Actions -> Options ، ثم إلغاء تحديد خانة الاختيار Run at Windows Startup والتطبيق. سيوفر لك ذلك بضع ميغابايت من RAM وتجنب إبطاء الجهاز عند التشغيل.

وهذا كل شيء ، لديك الآن خادم WAMP يعمل بكامل طاقته ويعمل كخدمة ولا يعتمد على أي مستخدم (يمكن الوصول إليه حتى لو لم يتم تسجيل دخول أي شخص).

لاحظ أنه ليس لدي أي فكرة حول أمان هذا ، ولأغراض التطوير ، أقول أن هذا آمن جدًا حيث يجب أن يقوم جدار الحماية الخاص بك بحظر الاتصالات الواردة لكل من Apache (المنفذ 80 و أو 443) و MySQL (المنفذ 3306).

تم اختبار هذا على تثبيت Windows 7 ، يجب أن يعمل بشكل جيد على أنظمة التشغيل Windows Vista و Windows 8 وربما Windows Server 2008/2012 - لا تتردد في التعليق و/أو التصويت في حالة عدم حدوث ذلك.

61
user256743

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 ، فمن المحتمل أنك قمت بتنزيل الحزمة الخطأ.

5
rahuldottech