انتقل إلى المقال

Publinoحل المشكلات

حل المشكلات

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

Docker لا يعمل

ما تراه
failed to connect to the docker API at unix:///…/docker.sock; check if the path is correct and if the daemon is running

تعرض إصدارات Docker الأقدم الرسالة "Cannot connect to the Docker daemon" بدلًا من ذلك. وفي الحالتين، محرك Docker غير مُشغَّل.

  1. افتح Docker Desktop

    شغّل Docker Desktop وانتظر حتى يُظهر أن المحرك يعمل. على Linux، شغّل الخدمة: sudo systemctl start docker.

  2. تحقق من أن Docker يستجيب

    الطرفية
    docker info

    النتيجة المتوقعة: يطبع قسم Server بدلًا من رسالة خطأ.

  3. شغّل أمرك مجددًا

    docker build -t publino-landing .، ثم docker run -p 3030:3030 publino-landing.

المنفذ مستخدم بالفعل

ما تراه
Bind for 0.0.0.0:3030 failed: port is already allocated
ports are not available: exposing port TCP 0.0.0.0:3030 … bind: address already in use
Error: listen EADDRINUSE: address already in use :::3030

السطران الأولان من Docker، والأخير من yarn dev أو yarn start. برنامج آخر يستمع بالفعل على المنفذ 3030: غالبًا تشغيل سابق لهذا الموقع، أو خادم مشروع آخر.

  1. اعرف ما الذي يشغل المنفذ

    على macOS أو Linux:

    الطرفية
    lsof -i :3030

    على Windows، في PowerShell:

    الطرفية
    netstat -ano | findstr :3030
  2. أوقفه

    أغلق ذلك البرنامج، أو أوقف التشغيل السابق: Ctrl+C في طرفيته، أو docker stop مع معرّف الحاوية من docker ps. ثم شغّل الموقع مرة أخرى.

  3. أو استخدم منفذًا آخر

    أبقِ البرنامج الآخر وشغّل الموقع على منفذ متاح، هنا 3041:

    طريقة التشغيلالأمر
    Dockerdocker run -p 3041:3030 publino-landing
    خادم التطويرyarn dev -p 3041
    بناء الإنتاجyarn start -p 3041

    مع Docker، غيّر الرقم الأول بعد -p فقط: الموقع داخل الحاوية يستمع دائمًا على 3030.

    النتيجة المتوقعة: يعمل الموقع على localhost:3041محلي.

فشل البناء

يتوقف docker build بالرسالة "failed to solve" مع الخطوة التي فشلت؛ ويتوقف yarn build مع الخطأ نفسه. الأسباب المعتادة:

  • لا يوجد اتصال أو انتهت المهلة: ينزّل البناء الاعتماديات من سجل npm. أعد تشغيل الأمر عندما تتصل بالإنترنت؛ ومع Docker تُحفظ الخطوات المنتهية.
  • `Invalid URL`: قيمة NEXT_PUBLIC_SITE_URL ليست عنوانًا كاملًا. اكتبها مع https://، مثل https://www.your-domain.com.
  • لا توجد مساحة كافية على الجهاز (No space left on device): حرّر مساحة في Docker Desktop، أو تحقق مما يستخدمه Docker بالأمر docker system df.
  • يفشل عند الخطوة نفسها في كل مرة: أعد البناء من دون ذاكرة التخزين المؤقت.
الطرفيةفي Publino-template
docker build --no-cache -t publino-landing .

من دون Docker، احذف المجلدين node_modules و.next، ثم شغّل yarn install وyarn build مجددًا.

يقول Yarn إن إصداره 1.22

ما تراه
This project's package.json defines "packageManager": "yarn@4.6.0…". However the current global version of Yarn is 1.22…

يثبّت المشروع Yarn 4 عبر Corepack. تعني هذه الرسالة أن Corepack لم يُفعَّل بعد، فأجاب Yarn عام قديم بدلًا منه.

الطرفية
corepack enable

ثم شغّل yarn install من جديد. استخدم Yarn بدل npm، فالملف yarn.lock هو ما يُبقي تثبيتك على الإصدارات التي اختُبر بها القالب.

لا يوجد أمر corepack

ما تراه
corepack: command not found

لم يعد Node.js 25 وما بعده يتضمن Corepack. ثبّته مرة واحدة بـ npm، ثم فعّله:

الطرفية
npm install -g corepack
corepack enable

ثم شغّل yarn install من جديد. الأمران نفسهما يصلحان yarn: command not found.

إصدار Node.js قديم

ما تراه
You are using Node.js 18.20.4. For Next.js, Node.js version ">=20.9.0" is required.

يحتاج Next.js 16 إلى Node.js 20.9 أو أحدث. اعرف إصدارك بالأمر node -v. ثبّت Node.js 22 أو 24، وافتح طرفية جديدة، وشغّل corepack enable من جديد، ثم yarn install وyarn dev.

مع Docker لا ينطبق هذا، فالصورة تأتي بـ Node.js 24 الخاص بها.

تغيير الإعداد لا يُحدث أي أثر

تُضمَّن NEXT_PUBLIC_SITE_URL وبقية قيم NEXT_PUBLIC_ في الموقع عند بنائه. تغيير إحداها لا يغيّر شيئًا حتى يُبنى الموقع من جديد.

طريقة التشغيلبعد تغيير قيمة
yarn devغيّره في .env.local، وأوقف الخادم، ثم شغّل yarn dev مجددًا.
yarn build وyarn startغيّره في .env.local، وشغّل yarn build مجددًا، ثم yarn start.
Dockerابنِ الصورة مجددًا مع القيمة كوسيط --build-arg. يتجاهل بناء الصورة .env و.env.local.
Vercelغيّره في Environment Variables الخاصة بالمشروع وانشر مجددًا.

يفشل yarn start أو يعرض نسخة قديمة

ما تراه
Could not find a production build in the '.next' directory. Try building your app with 'next build' before starting the production server.

يقدّم yarn start آخر بناء إنتاج من المجلد .next. شغّل yarn build أولًا، ومن جديد بعد كل تغيير.

إذا ظهرت في الموقع أخطاء لا تطابق كودك، وغالبًا بعد تغيير إصدار اعتمادية أو BUILD_STANDALONE، فاحذف المجلد .next وابنِ من جديد:

الطرفيةفي Publino-template
rm -rf .next
yarn build

على Windows، في PowerShell، احذفه بالأمر Remove-Item -Recurse -Force .next.

يقول النموذج إنه أُرسل، لكن لا يصل شيء

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

الكابتشا تعرض خطأ

ما تراه
ERROR for site owner: Invalid domain for site key

يعرض نموذج الصفحة الرئيسية مربع Google reCAPTCHA فقط عند ضبط NEXT_PUBLIC_RECAPTCHA_SITE_KEY. تعني هذه الرسالة أن النطاق الذي فتحت عليه الموقع ليس في قائمة نطاقات ذلك المفتاح. في لوحة إدارة reCAPTCHA، أضف نطاقك، وأضف localhost لتجربته على جهازك. يجب أن يكون المفتاح من نوع reCAPTCHA v2 «أنا لست برنامج روبوت».

لإزالة خطوة الكابتشا، اترك المتغير فارغًا وابنِ من جديد.

زر لا يفعل شيئًا

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

صورة معاينة قالب لا تظهر

ما تراه
Invalid src prop (https://…) on `next/image`, hostname "…" is not configured under images in your `next.config.js`

تحمّل بطاقات القوالب الأربع النموذجية في الصفحة الرئيسية معاينتها من خادم صور Aniq UI، وهو مسموح في next.config.js. بلا اتصال بالإنترنت تبقى فارغة. إذا وجّهت بطاقة إلى صورة على خادم آخر، يتوقف Next.js برسالة الخطأ أعلاه: ضع الصورة في public/ بدلًا من ذلك، أو أضف مضيفها إلى images.remotePatterns في next.config.js.

يفتح الموقع بالعربية

عند فتح / يُوجَّه الزائر إلى /ar إذا كان متصفحه يفضّل العربية. وبعد أن يختار الزائر لغة من قائمة الترويسة يتذكرها الموقع. اختر الإنجليزية من القائمة، أو افتح /pricing أو أي صفحة أخرى بلا بادئة.

يبقى الموقع داكنًا، أو يبقى فاتحًا

يفتح الموقع بالسمة الداكنة. زر الشمس والقمر في الترويسة يبدّلها، ويتذكر المتصفح اختيارك. لترى ما يراه زائر جديد، امسح بيانات الموقع الخاصة بـ localhost:3030 في متصفحك، أو افتح نافذة خاصة.

المجلد يبدو مختلفًا

شغّل الأوامر داخل المجلد الذي يُستخرج إليه ملف ZIP، وهو Publino-template. فيه Dockerfile وpackage.json وyarn.lock وmessages وpublic وsrc. إذا كان الأمر unzip غير موجود، فاستخرج الملف بمدير الملفات. بعض الأدوات تضيف مجلدًا إضافيًا باسم ملف ZIP، فادخل إلى المجلد الداخلي.

توقفت عند خطوة؟

ابحث عن الحل قبل أن تبدأ من جديد.

حل المشكلات

تفضيلات ملفات تعريف الارتباط

نستخدم ملفات تعريف الارتباط لتعزيز تجربة التصفح الخاصة بك وتحليل حركة المرور على الموقع وتخصيص المحتوى. بالنقر على "قبول الكل"، فإنك توافق على استخدامنا لملفات تعريف الارتباط للتحليلات والإعلانات المخصصة.