وب‌سایت موتور

راهنمای راه‌اندازی

۱. موتور در یک نگاه

وب‌سایت موتور یک سامانه مدیریت محتوای سبک، فارسی و راست‌چین است که با PHP خالص و بدون هیچ کتابخانه یا وابستگی بیرونی نوشته شده است. کل موتور یک فایل است: index.php.

۲. پیش‌نیازها

میزبانی و دامنه

یک هاست با پشتیبانی از PHP و یک دامنه (یا زیردامنه). هاست اشتراکی با کنترل‌پنل cPanel یا DirectAdmin، سرور مجازی یا اختصاصی، همه قابل استفاده‌اند. وب‌سرور باید از .htaccess پشتیبانی کند (آپاچی یا سازگار — پیکربندی پیش‌فرض اکثر هاست‌های اشتراکی کافی است).

نسخه PHP

ماژول‌های PHP

در صورت در دسترس نبودن هر یک از موارد زیر، نصب یا اجرای موتور با مشکل مواجه می‌شود:

دستهماژول‌هاکاربرد
ضروریsession json filter ctype mbstring dom xml fileinfo PDO pdo_sqliteهسته موتور و پایگاه داده SQLite
ضروریGD (همراه FreeType)تصویر کد امنیتی، بندانگشتی تصاویر، تصاویر نمونه
شرطیcurlدرگاه‌های پرداخت، نصب پوسته از مخزن، فراخوانی سرویس‌های وب
شرطیZipبارگذاری پوسته به‌صورت فایل فشرده، فشرده‌سازی در مدیریت پرونده

برای پشتیبانی از تصاویر AVIF، ماژول GD باید همراه کتابخانه libavif کامپایل شده باشد.

نکته: پشتیبانی از MySQL یا هر ابزار دیگر مدیریت داده‌ها مورد نیاز نیست؛ SQLite از طریق ماژول pdo_sqlite تأمین می‌شود و روی اکثر هاست‌ها به‌صورت پیش‌فرض فعال است.

۳. نصب گام‌به‌گام

  1. فایل index.php را از وب‌سایت موتور دریافت کنید.
  2. آن را در پوشه اصلی دامنه بارگذاری کنید. در بیشتر خدمات میزبانی، پوشه‌ای با نام public_html به‌عنوان ریشه سایت اختصاص یافته است.
  3. اگر فایل‌های قدیمی دیگری مثل index.html در ریشه سایت دارید، آن‌ها را جابجا یا حذف کنید تا با صفحه اصلی سایت تداخل نکنند.
  4. در مرورگر به نشانی دامنه مراجعه کنید (مثل example.com).
  5. فرم راه‌اندازی نمایش داده می‌شود — بخش ۴.

همین. موتور تک‌فایلی است و نیازی به بارگذاری پوشه یا اجرای مراحل پیچیده نیست: فایل .htaccess، پوشه‌های data و themes و images، قلم کد امنیتی و پایگاه‌های داده، همگی به‌طور خودکار در همین مرحله ساخته می‌شوند (بخش ۵).

نکته: بارگذاری را با حالت باینری انجام دهید و مطمئن شوید نام فایل دقیقاً index.php با حروف کوچک است.

۴. فرم راه‌اندازی

فرم راه‌اندازی بسیار ساده است و فقط سه ردیف دارد:

ردیفشرح
نام سایتنام و عنوان اصلی سایت که در پوسته نمایش داده می‌شود؛ بعداً از تنظیمات قابل تغییر است
نشانی ایمیلایمیل کاربر مدیر؛ ابزار ورود به مدیریت و دریافت پیوند بازنشانی رمز. تأیید نمی‌شود و برای راه‌اندازی، ارسال ایمیل لازم نیست
رمز عبوررمز ورود مدیر؛ حداقل ۴ نویسه و حساس به حروف بزرگ و کوچک. دکمه «رمز تصادفی» یک رمز مطمئن پیشنهاد می‌دهد

پس از تأیید فرم:

⚠ هشدار: اگر در بازدید از سایت، صفحه راه‌اندازی را دیدید در حالی که سایت از قبل راه‌اندازی شده است، یعنی فایل data/setting.json در دسترس نیست یا تغییر نام یافته است. در این وضعیت هر بازدیدکننده‌ای می‌تواند فرم را تکمیل و مدیر سایت شود؛ بلافاصله موضوع را بررسی کنید. (شرح راه‌اندازی مجدد به‌عنوان راهکار فراموشی رمز: راهنمای «ناحیه مدیریت»، بخش ۱.)

۵. آنچه پس از راه‌اندازی ایجاد می‌شود

ساختار فایل‌ها

public_html/
├── index.php          ← موتور (تنها فایلی که خودتان بارگذاری کردید)
├── .htaccess          ← ارجاع همه درخواست‌ها به index.php (با mod_rewrite)
├── data/              ← داده‌های سایت؛ دسترسی وب به آن مسدود است
│   ├── .htaccess      ← جلوگیری از دسترسی وب به محتویات پوشه
│   ├── setting.json   ← تنظیمات کلی سایت
│   ├── countor.json   ← شمارنده بازدیدها
│   ├── wotor.log      ← گزارش وقایع
│   ├── captcha.0-9.ttf← قلم ارقام کد امنیتی
│   ├── users.sqlite   ← کاربران
│   ├── posts.sqlite   ← مطالب، دسته‌ها و برچسب‌ها
│   ├── comments.sqlite← دیدگاه‌ها
│   ├── post_rates.sqlite      ← بازدید و رأی مطالب
│   └── comment_rates.sqlite   ← رأی دیدگاه‌ها
├── themes/            ← پوسته‌ها (در ابتدای راه‌اندازی خالی)
└── images/            ← تصاویر مطالب
    ├── sample1.gif
    ├── sample2.gif
    └── sample3.gif

شرح کاربرد هر فایل: پیوست ب راهنمای «ناحیه مدیریت». در صورت فعال کردن قابلیت فروشگاهی، فایل orders.sqlite هم به این پوشه اضافه می‌شود.

محتوای نمونه

برای آنکه سایت از همان لحظه اول قابل مرور و آزمایش باشد، محتوای نمونه هم ایجاد می‌شود:

همه این موارد قابل ویرایش و حذف‌اند؛ پس از آشنایی با ساختار، آن‌ها را با محتوای واقعی خودتان جایگزین کنید.

۶. گام بعدی: نصب پوسته

تا زمانی که پوسته‌ای نصب و فعال نشده باشد، بازدید از سایت پیام «پوسته‌ای تنظیم نشده است» را نشان می‌دهد. اولین کاری که برای نمایش سایت ضروری است، نصب یک پوسته است.

روشالزامپس از نصب
دریافت از مخزن پوسته‌های وب‌سایت موتوراتصال سرور به اینترنت (curl)نصب و فعال‌سازی خودکار
بارگذاری فایل ZIP پوسته از بخش «پوسته» در مدیریتفعال بودن ماژول Zipنصب و فعال‌سازی خودکار
بارگذاری پوشه پوسته با FTP یا مدیریت پرونده، در مسیر themes—فعال‌سازی دستی از بخش «پوسته»

با تغییر پوسته، محتوا و مطالب سایت دست‌نخورده می‌ماند و فقط ظاهر سایت عوض می‌شود. تنظیمات هر پوسته در فایل خودش ذخیره می‌شود و با بازگشت به پوسته قبلی، از دست نمی‌رود.

طراحی پوسته اختصاصی یا سفارش تولید پوسته از هوش مصنوعی: راهنمای «طراحی پوسته».

۷. حالت فروشگاهی

اگر می‌خواهید کالا، فایل یا خدمت الکترونیک بفروشید، قابلیت فروشگاه را از برگه تنظیمات سایت فعال کنید. با فعال‌سازی:

راهنمای کامل تنظیم درگاه‌ها و مدیریت سفارش‌ها: راهنمای «ناحیه مدیریت»، بخش ۱۰. در پوسته‌ها، کدهای جاوااسکریپت پردازش فروشگاه به‌طور پیش‌فرض درج می‌شود؛ اگر قصد استفاده از فروشگاه را ندارید، می‌توانید آن کدها را از پوسته حذف کنید.

۸. پیکربندی‌های اختیاری

در ابتدای فایل index.php دو ثابت قابل تنظیم در نظر گرفته شده است. برای نصب معمول، نیازی به تغییر هیچ‌کدام نیست:

ثابتپیش‌فرضکاربرد
DATA_FOLDER'data'مسیر پوشه داده‌ها. برای امنیت بیشتر می‌توان نام دیگری گذاشت یا پوشه را حتی خارج از ریشه سایت قرار داد، مثل '../wotor-data' که به هیچ‌وجه از طریق وب قابل دسترس نیست. شرح جابجایی: راهنمای «ناحیه مدیریت»، بخش ۱۴
STORE_SSL_VERIFYtrueتأیید گواهی SSL هنگام اتصال به درگاه‌های پرداخت. روی هاست‌هایی با انباره گواهی‌های قدیمی ممکن است اتصال با خطای SSL شکست بخورد؛ راه‌حل درست، به‌روزرسانی گواهی‌های سرور است و در صورت تعذر می‌توان موقتاً این مقدار را false گذاشت

نکته: پس از هر تغییر در index.php، یک نسخه پشتیبان از فایل قبلی نگه دارید و تغییرات را در ساعات کم‌بازدید اعمال کنید.

۹. اجرای محلی و انتقال به هاست دیگر

اجرای محلی

چون موتور فقط به PHP و وب‌سرور آپاچی نیاز دارد، روی رایانه شخصی هم با شبیه‌سازهای محلی مثل XAMPP یا WAMP اجرا می‌شود: index.php را در پوشه htdocs قرار دهید و در مرورگر به localhost مراجعه کنید. این روش برای آشنایی با موتور و توسعه پوسته بسیار کارآمد است.

انتقال سایت

کل سایت یک مجموعه فایل است؛ بنابراین:

توصیه: پیش از هر تغییر مهم (پوسته، افزونه، به‌روزرسانی)، یک نسخه کامل از کل پوشه سایت تهیه کنید. شرح روش‌های پشتیبان‌گیری: راهنمای «ناحیه مدیریت»، بخش ۱۳.

۱۰. به‌روزرسانی موتور

به‌روزرسانی خودکار

از ناحیه مدیریت (فقط مدیر سایت)، موتور نسخه جدید را از وب‌سایت رسمی دریافت می‌کند؛ پس از تطبیق امضا، نسخه فعلی در پوشه trash نگه داشته می‌شود و نسخه جدید جایگزین می‌گردد. این عملیات به دسترسی سرور به websitemotor.com نیاز دارد.

به‌روزرسانی دستی

فایل index.php نسخه جدید را جایگزین نسخه فعلی کنید. مطالب، تنظیمات، پوسته‌ها و تصاویر همگی در فایل‌های جدا هستند و دست‌نخورده می‌مانند.

نکته: پیش از به‌روزرسانی — چه خودکار چه دستی — پشتیبان بگیرید و شماره نسخه فعلی را در مشخصات پنل مدیریت ببینید تا در صورت نیاز بدانید به کدام نسخه برمی‌گردید.

۱۱. خطاهای نصب رایج

علامتعلت محتملراه‌حل
صفحه «خطای ماژول … در دسترس نیست»ماژول PHP غیرفعالدر هاست اشتراکی: کنترل‌پنل ← Select PHP Version (cPanel) یا PHP Settings → Extensions (DirectAdmin). روی سرور اختصاصی: نصب بسته ماژول (مثل apt install php8.2-gd php8.2-sqlite3 php8.2-mbstring php8.2-curl) یا فعال‌سازی سطر مربوطه در php.ini و ری‌استارت وب‌سرور. شرح کامل: راهنمای «خطاها»
صفحه اصلی باز می‌شود اما همه نشانی‌های دیگر خطای 404 می‌دهندماژول mod_rewrite خاموش است یا وب‌سرور اجازه اجرای .htaccess (AllowOverride) نمی‌دهدفعال‌سازی mod_rewrite (مثل a2enmod rewrite) و تنظیم AllowOverride All؛ در هاست اشتراکی معمولاً نیازی به اقدام نیست — با پشتیبانی هاست بررسی کنید
تنظیمات ذخیره نمی‌شود، تصویر آپلود نمی‌شود یا صفحه سفید می‌آیدنبود مجوز نوشتن PHP روی پوشه‌هابرای data و images و themes و ریشه سایت مجوز نوشتن (معمولاً 755 برای پوشه و 644 برای فایل) تنظیم شود. اگر پایگاهی را با FTP آپلود کرده‌اید، مالکیت فایل ممکن است با کاربر اجرای PHP یکی نباشد؛ فایل را از طریق مدیریت پرونده دوباره بارگذاری کنید یا مالکیت را اصلاح کنید
تصویر کد امنیتی نمایش داده نمی‌شودماژول GD غیرفعال است یا همراه FreeType کامپایل نشدهنصب/فعال‌سازی GD با FreeType؛ در صورت نیاز به AVIF، همراه libavif
پیام «ماژول Zip روی سرور فعال نیست» هنگام نصب پوستهماژول Zip غیرفعالفعال‌سازی ماژول، یا نصب دستی: پوشه پوسته را با FTP در themes بارگذاری و از مدیریت فعال کنید
پیام «اتصال به سرور پوسته ممکن نشد»سرور به نشانی مخزن دسترسی نداردخروجی سرور به static.websitemotor.com را بررسی کنید؛ در صورت محدودیت، پوسته را به‌صورت فایل ZIP بارگذاری کنید
صفحه سفید در همان ابتدای نصبنسخه PHP قدیمی‌تر از 7.3ارتقای نسخه PHP از کنترل‌پنل هاست

فهرست کامل خطاها و راه‌حل‌ها: راهنمای «خطاها».

۱۲. چک‌لیست پس از راه‌اندازی

امنیت

محتوا و ظاهر

عملکرد