سؤال

لقد أضفت PHP كوحدة نمطية لـ Apache 2.2.11:

LoadModule php5_module "c:/php/php5apache2_2.dll"

وأضاف أيضا

AddType application/x-httpd-php .php

وفي PHP.ini، تم تعيين الامتداد الخاص بي على: extension_dir = "C:\php\ext"

و نعم, ، الدلائل صحيحة وجميع الملفات موجودة.

ولكن عندما أبدأ تشغيل Apache، تظهر لي هذه الأخطاء:

تحذير PHP:بدء تشغيل PHP:غير قادر على تحميل المكتبة الديناميكية 'C:\php\ext\php_mysql.dll' - تعذر العثور على الوحدة النمطية المحددة. في غير معروف في السطر 0
تحذير PHP:بدء تشغيل PHP:غير قادر على تحميل المكتبة الديناميكية 'C:\php\ext\php_pdo_pgsql.dll' - تعذر العثور على الوحدة النمطية المحددة. في غير معروف في السطر 0
تحذير PHP:بدء تشغيل PHP:غير قادر على تحميل المكتبة الديناميكية 'C:\php\ext\php_pgsql.dll' - تعذر العثور على الوحدة النمطية المحددة. في غير معروف في السطر 0

[الأحد 17 مايو 03:46:01 2009] [إشعار] تم تكوين Apache/2.2.11 (Win32) PHP/5.2.9-2 - استئناف العمليات العادية
[الأحد 17 مايو 03:46:01 2009] [إشعار] تم إنشاء الخادم:10 ديسمبر 2008 00:10:06
[الأحد 17 مايو 03:46:01 2009] [إشعار] الوالد:عملية الطفل التي تم إنشاؤها 4652

تحذير PHP:بدء تشغيل PHP:غير قادر على تحميل المكتبة الديناميكية 'C:\php\ext\php_mysql.dll' - تعذر العثور على الوحدة النمطية المحددة. في غير معروف في السطر 0
تحذير PHP:بدء تشغيل PHP:غير قادر على تحميل المكتبة الديناميكية 'C:\php\ext\php_pdo_pgsql.dll' - تعذر العثور على الوحدة النمطية المحددة. في غير معروف في السطر 0
تحذير PHP:بدء تشغيل PHP:غير قادر على تحميل المكتبة الديناميكية 'C:\php\ext\php_pgsql.dll' - تعذر العثور على الوحدة النمطية المحددة. في غير معروف في السطر 0

[الأحد 17 مايو 03:46:01 2009] [ملاحظة] الطفل 4652:عملية الطفل قيد التشغيل
[الأحد 17 مايو 03:46:01 2009] [ملاحظة] الطفل 4652:حصلت على كائن المزامنة البداية.
[الأحد 17 مايو 03:46:01 2009] [ملاحظة] الطفل 4652:بدء تشغيل 64 مؤشر ترابط عامل.
[الأحد 17 مايو 03:46:01 2009] [ملاحظة] الطفل 4652:بدء تشغيل الخيط للاستماع على المنفذ 80.

لذلك ربما نسيت شيئًا بسيطًا هنا، هل يمكن لأحد أن يخبرني بما نسيته؟

هل كانت مفيدة؟

المحلول

لا تحتاج فقط إلى ملفات DLL الخاصة بامتداد PHP لإضافة دعم MySQL وPostgreSQL إلى PHP.تحتاج أيضًا إلى مكتبات MySQL وPostgreSQL الأصلية.من المحتمل ألا تجد ملفات DLL الخاصة بامتداد PHP بعض ملفات DLL التي تعتمد عليها، لذا لا يمكنها البدء.

تأكد من تثبيت عميل MySQL وPostgreSQL، ومن ملفات DLL الخاصة بهم في مكان ما يمكن تحديد موقعه.

أي.مثال:

  • يعتمد php_mysql.dll على libmysql.dll

لذا، تأكد من أن PHP قادر على العثور على libmysql.dll (أعتقد أن هذا يأتي مع التوزيع الثنائي لنظام Windows PHP.لست متأكدا بالرغم من ذلك).

نصائح أخرى

لإضافة إلى المشورة بابلو سانتا كروز. على ويندوز يمكنك تضمين المكتبات المطلوبة في بيئة PATH. (نسخ لا بالضرورة إلى مجلد ويندوز). عند تحميل مكتبات الأرامل يبدو في الدلائل PATH كذلك.

إذا كنت تستخدم معيار التوزيع ثنائي Win32 من php.net لPHP5.2، ثم الحزمة يجب أن يحتوي على كافة التبعيات في جذر الحزم. لذا، إذا كنت قد قمت بتثبيت PHP5.2 إلى C:\php، إضافة هذا الدليل إلى envar PATH. إعادة تشغيل أباتشي وأتوقع ملحقات لتحميل بشكل صحيح.

وكان لي مشكلة مع إصدار محدد من PHP على ويندوز. كانت المشكلة libmysql. لقد وجدت علة نشر على موقع php.net من شخص لديها نفس المشكلة.

ولقد استخدمت الإفراج فب السابق وعملت libmysql. تحقق من الملاحظات على توزيع فب الذي تستخدمه. أعتقد أنه بعد إصدار محدد يذكرون سياسة جديدة بشأن libmysql.

ومن ما ذكرته فب غير قادر على العثور على التمديد. تأكد من تعيين المسار في ملف php.ini يحدد حيث توجد ملحقات، أن التمديدات موجودة وأن المجلد يمكن الوصول إلى (أذونات قراءة).

وإذا كان كل فشل محاولة تحريك تمديد النوافذ / System32 في محاولة للعثور على ما قد يكون مشكلة حقيقية.

والتحيات،

وهذه ملحقات تعتمد على المكتبات الوطنية التي يتم توفيرها من قبل الخلية وكيو التوزيعات الثنائية. تثبيتها ووضع يبس في مجلد bin أباتشي على سبيل المثال. تلك هي LIBMYSQL.DLL وLIBPQ.DLL على التوالي.

وأنا عادة القيام بذلك بدلا من تلويث مجلد Windows/System32 معهم، لأنه في نظام بلدي فقط اباتشي / PHP هو العميل من قواعد البيانات وأيضا يجعل لي الإعداد اباتشي / PHP أكثر المحمولة.

في تجربتي، PHP على ويندوز هو الألم كبير في الخلف. وعادة ما تحصل عليه للعمل في نهاية المطاف، ولكن هناك دائما الكثير من غوغلينغ والتجربة والخطأ المعنية - بالنسبة لي على الأقل

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

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

وماذا حلها بالنسبة لي، ونسخ أيضا libmysql.dl إلى الدليل اباتشي بن. والغريب في الأمر apparantly ملحقات حيث شملت بشكل صحيح ولكن ما زلت بحاجة للقيام بذلك.

لقد جربت العديد من هذه الحلول ونجح واحد أو أكثر منها.إعادة التشغيل هي المفتاح هنا.لم أقم بإعادة التشغيل بين هذه التغييرات، ولكن بعد إعادة التشغيل كان الأمر يعمل:

  • أضف Postgres DLL إلى Apache lib dir
  • إضافة مسار postgres إلى مسار النظام
  • إضافة Postgres DLL إلى System32

أعتقد أن PATH فقط كان سيعمل ولكن لا يوجد وقت للنظافة هنا لذا ها أنت ذا.

والمشكلة هنا هي أن اباتشي وقد حملت PHP، ولكن كان PHP لم يتمكن من تحميل امتداده (MySQL، الإنترنت، ...). أعتقد أن عليك أن إدخال قيم المسار في ملف php.ini الخاص بك في شكل يونكس (لا تستخدم الأحرف مائل كفاصل دليل). حتى في ملف php.ini الخاص بك تغيير هذا:

وextension_dir = "C: / فب / تحويلة"

وأنا كان أيضا نفس المشكلة وحلها عن طريق إضافة "كيو" بن الطريق إلى متغيرات بيئة النظام

وPATH: C: \ \ 8.4 \ بن ملفات البرنامج \ كيو يمكنك التحقق في phpinfo () أيضا.

عند أقوم بتثبيت الإنترنت، وضع في مسار النظام تفويتها. I يدويا وأضاف ثم إعادة تشغيل النظام.

وكان لي هذه المشكلة أيضا، ونسخ وثيقة الصلة (.dlls) لsysten 32 وأنه لا يزال لا يعمل بالنسبة لي. وأنا على تشغيل ويندوز 7 64BIT. للحصول على هذا العمل بالنسبة لي وأود أيضا أن نسخ libmysql.dll إلى الدليل تحويلة. تركت رسالة خطأ في سجل أباتشي والصفحة محملة ردا إيجابيا (كونيكشن إنشاء).

وكان لي نفس المشكلة وحاولت نسخ libmySQL.dll إلى المجلد اباتشي بن وتحل المشكلة (أنا إنشاء PHP 5.2.5 x64) و. شكرا جزيلا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top