الحصول على PEAR للعمل على XAMPP (مكدس Apache/MySQL على نظام التشغيل Windows)
سؤال
أحاول التثبيت لاكونيكا, ، تطبيق تدوين صغير مفتوح المصدر على خادم تطوير Windows الخاص بي باستخدام XAMPP وفقًا لـ التعليمات المقدمة.
لا يمكن لموقع الويب العثور على PEAR، ويعرض الأخطاء التالية:
تحذير:require_once(PEAR.php) [function.require-once]:فشل في فتح الدفق:لا يوجد مثل هذا الملف أو الدليل في C:\xampplite\htdocs\laconica\lib\common.php على السطر 31
خطأ فادح:require_once() [وظيفة.تتطلب]:فشل فتح المطلوب "PEAR.php" (include_path='.;\xampplite\php\pear\PEAR') في C:\xampplite\htdocs\laconica\lib\common.php على السطر 31
- يقع الكمثرى في
C:\xampplite\php\pear
phpinfo()
يظهر لي أن مسار التضمين هو.;\xampplite\php\pear
ما الخطأ الذي افعله؟لماذا لا يتم تضمين مجلد PEAR؟
المحلول
تحتاج إلى إصلاح الخاص بك include_path
متغير النظام للإشارة إلى الموقع الصحيح.
لإصلاحه قم بتحرير php.ini
ملف.ستجد في هذا الملف سطرًا يقول: "include_path = ...
".(يمكنك معرفة موقع php.ini عن طريق تشغيل phpinfo()
على الصفحة.) أصلح جزء السطر الذي يقول، "\xampplite\php\pear\PEAR
" ليقرأ "C:\xampplite\php\pear
".تأكد من ترك الفواصل المنقوطة قبل و/أو بعد السطر في مكانها.
أعد تشغيل PHP ويجب أن تكون جاهزًا للبدء.لإعادة تشغيل PHP في IIS، يمكنك إعادة تشغيل تجمع التطبيقات المخصص لموقعك، أو الأفضل من ذلك، إعادة تشغيل IIS معًا.
نصائح أخرى
إذا كنت تستخدم تثبيت XAMPP المحمول ونظام التشغيل Windows 7، ولديك الإصدار مثلي بعد إزالة غلاف XAMPP من لوحة التحكم، فلن تفيدك أي من الإجابات المقترحة هنا كثيرًا حيث لن يتم تثبيت الحزم.
المشكلة هي في ملف الكونفيجلقد وجدت الإعدادات الصحيحة بعد الكثير من التجارب والخطأ.
ما عليك سوى سحب نافذة الأوامر في الدليل \xampp\php وتشغيلها
pear config-set doc_dir :\xampp\php\docs\PEAR
pear config-set cfg_dir :\xampp\php\cfg
pear config-set data_dir :\xampp\php\data\PEAR
pear config-set test_dir :\xampp\php\tests
pear config-set www_dir :\xampp\php\www
سوف ترغب في استبدال ':' بحرف محرك الأقراص الفعلي الذي يعمل عليه محرك الأقراص المحمول الخاص بك في الوقت الحالي.لسوء الحظ، يجب القيام بذلك في أي وقت يتغير فيه حرف محرك الأقراص هذا، ولكنه تم تثبيت الوحدة التي كنت بحاجة إليها.
لقد جربت جميع الإجابات الأخرى أولاً ولكن يبدو أن أياً منها لم يعمل لذا قمت بتعيين مسار الكمثرى بشكل ثابت في ملف تكوين الكمثرى
C:\xampp\php\pear\Config.php
ابحث عن هذا الرمز:
if (!defined('PEAR_INSTALL_DIR') || !PEAR_INSTALL_DIR) {
$PEAR_INSTALL_DIR = PHP_LIBDIR . DIRECTORY_SEPARATOR . 'pear';
}
else {
$PEAR_INSTALL_DIR = PEAR_INSTALL_DIR;
}
واستبدله بهذا فقط:
$PEAR_INSTALL_DIR = "C:\\xampp\\php\\pear";
لقد قمت بإعادة تشغيل أباتشي واستخدمت الأمر:
pear config-all
تأكد من أن جميع المسارات لم تعد تبدأ بـ C:\php\pear
وفقًا للنقطة 1، فإن مسار PEAR الخاص بك هو c:\xampplite\php\pear\
ومع ذلك، فإن المسار الخاص بك يشير إلى \xampplite\php\pear\PEAR
وضع الاثنين فوق الآخر يمكنك أن ترى بوضوح أن أحدهما طويل جدًا:
ج:\xampplite\php\الكمثرى\
\xampplite\php\pear\PEAR
تم ضبط مسار التضمين الخاص بك على الانتقال بمقدار PEAR إلى عمق شجرة الكمثرى.يتضمن المجلد الفرعي PEAR للمجلد PEAR مكون PEAR.تحتاج إلى ضبط مسار التضمين الخاص بك لأعلى مستوى واحد.
(لست بحاجة إلى ج:بالمناسبة، طريقك جيد كما هو، ولكنه عميق جدًا)
حاول إضافة حرف محرك الأقراص:
include_path='.;c:\xampplite\php\pear\PEAR'
تحقق أيضًا من وجود PEAR.php بالفعل، وقد يكون في \php\ بدلاً من ذلك:
include_path='.;c:\xampplite\php'
مسكتك أخرى لهذا النوع من المشاكل:تجنب تشغيل الكمثرى داخل غلاف Unix (على سبيل المثال، Git Bash أو Cygwin) على جهاز يعمل بنظام Windows.واجهت نفس المشكلة ولم يساعد إصلاح المسار المقترح أعلاه.تم التبديل إلى Windows shell، ويعمل الأمر pear كما هو متوقع.
في نظام التشغيل Windows، استخدم قذيفة Xampp (يوجد زر "Shell" في لوحة تحكم XAMPP الخاصة بك)
ثم
cd php\pear
للانتقال إلى "C:\xampp\php\pear"
ثم اكتب
pear
لقد أصلحت
Avast يحذف الخادم الخاص بك
تحقق من ملف (server.php) الموجود في مجلد laravel الخاص بك
server.php
<?php
/**
* Laravel - A PHP Framework For Web Artisans
*
* @package Laravel
* @author Taylor Otwell <taylor@laravel.com>
*/
$uri = urldecode(
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
);
// This file allows us to emulate Apache's "mod_rewrite" functionality from the
// built-in PHP web server. This provides a convenient way to test a Laravel
// application without having installed a "real" web server software here.
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
return false;
}
require_once __DIR__.'/public/index.php';