وبسایت موتور یک سامانه مدیریت محتوای سبک، فارسی و راستچین است که با PHP خالص و بدون هیچ کتابخانه یا وابستگی بیرونی نوشته شده است. کل موتور یک فایل است: index.php.
یک هاست با پشتیبانی از PHP و یک دامنه (یا زیردامنه). هاست اشتراکی با کنترلپنل cPanel یا DirectAdmin، سرور مجازی یا اختصاصی، همه قابل استفادهاند. وبسرور باید از .htaccess پشتیبانی کند (آپاچی یا سازگار — پیکربندی پیشفرض اکثر هاستهای اشتراکی کافی است).
در صورت در دسترس نبودن هر یک از موارد زیر، نصب یا اجرای موتور با مشکل مواجه میشود:
| دسته | ماژولها | کاربرد |
|---|---|---|
| ضروری | session json filter ctype mbstring dom xml fileinfo PDO pdo_sqlite | هسته موتور و پایگاه داده SQLite |
| ضروری | GD (همراه FreeType) | تصویر کد امنیتی، بندانگشتی تصاویر، تصاویر نمونه |
| شرطی | curl | درگاههای پرداخت، نصب پوسته از مخزن، فراخوانی سرویسهای وب |
| شرطی | Zip | بارگذاری پوسته بهصورت فایل فشرده، فشردهسازی در مدیریت پرونده |
برای پشتیبانی از تصاویر AVIF، ماژول GD باید همراه کتابخانه libavif کامپایل شده باشد.
نکته: پشتیبانی از MySQL یا هر ابزار دیگر مدیریت دادهها مورد نیاز نیست؛ SQLite از طریق ماژول
pdo_sqliteتأمین میشود و روی اکثر هاستها بهصورت پیشفرض فعال است.
index.php را از وبسایت موتور دریافت کنید.public_html بهعنوان ریشه سایت اختصاص یافته است.index.html در ریشه سایت دارید، آنها را جابجا یا حذف کنید تا با صفحه اصلی سایت تداخل نکنند.example.com).همین. موتور تکفایلی است و نیازی به بارگذاری پوشه یا اجرای مراحل پیچیده نیست: فایل .htaccess، پوشههای data و themes و images، قلم کد امنیتی و پایگاههای داده، همگی بهطور خودکار در همین مرحله ساخته میشوند (بخش ۵).
نکته: بارگذاری را با حالت باینری انجام دهید و مطمئن شوید نام فایل دقیقاً
index.phpبا حروف کوچک است.
فرم راهاندازی بسیار ساده است و فقط سه ردیف دارد:
| ردیف | شرح |
|---|---|
| نام سایت | نام و عنوان اصلی سایت که در پوسته نمایش داده میشود؛ بعداً از تنظیمات قابل تغییر است |
| نشانی ایمیل | ایمیل کاربر مدیر؛ ابزار ورود به مدیریت و دریافت پیوند بازنشانی رمز. تأیید نمیشود و برای راهاندازی، ارسال ایمیل لازم نیست |
| رمز عبور | رمز ورود مدیر؛ حداقل ۴ نویسه و حساس به حروف بزرگ و کوچک. دکمه «رمز تصادفی» یک رمز مطمئن پیشنهاد میدهد |
پس از تأیید فرم:
/ctrl/) هدایت و وارد میشوید.⚠ هشدار: اگر در بازدید از سایت، صفحه راهاندازی را دیدید در حالی که سایت از قبل راهاندازی شده است، یعنی فایل
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 | — | فعالسازی دستی از بخش «پوسته» |
با تغییر پوسته، محتوا و مطالب سایت دستنخورده میماند و فقط ظاهر سایت عوض میشود. تنظیمات هر پوسته در فایل خودش ذخیره میشود و با بازگشت به پوسته قبلی، از دست نمیرود.
طراحی پوسته اختصاصی یا سفارش تولید پوسته از هوش مصنوعی: راهنمای «طراحی پوسته».
اگر میخواهید کالا، فایل یا خدمت الکترونیک بفروشید، قابلیت فروشگاه را از برگه تنظیمات سایت فعال کنید. با فعالسازی:
data/orders.sqlite) ساخته میشود.راهنمای کامل تنظیم درگاهها و مدیریت سفارشها: راهنمای «ناحیه مدیریت»، بخش ۱۰. در پوستهها، کدهای جاوااسکریپت پردازش فروشگاه بهطور پیشفرض درج میشود؛ اگر قصد استفاده از فروشگاه را ندارید، میتوانید آن کدها را از پوسته حذف کنید.
در ابتدای فایل index.php دو ثابت قابل تنظیم در نظر گرفته شده است. برای نصب معمول، نیازی به تغییر هیچکدام نیست:
| ثابت | پیشفرض | کاربرد |
|---|---|---|
DATA_FOLDER | 'data' | مسیر پوشه دادهها. برای امنیت بیشتر میتوان نام دیگری گذاشت یا پوشه را حتی خارج از ریشه سایت قرار داد، مثل '../wotor-data' که به هیچوجه از طریق وب قابل دسترس نیست. شرح جابجایی: راهنمای «ناحیه مدیریت»، بخش ۱۴ |
STORE_SSL_VERIFY | true | تأیید گواهی SSL هنگام اتصال به درگاههای پرداخت. روی هاستهایی با انباره گواهیهای قدیمی ممکن است اتصال با خطای SSL شکست بخورد؛ راهحل درست، بهروزرسانی گواهیهای سرور است و در صورت تعذر میتوان موقتاً این مقدار را false گذاشت |
نکته: پس از هر تغییر در
index.php، یک نسخه پشتیبان از فایل قبلی نگه دارید و تغییرات را در ساعات کمبازدید اعمال کنید.
چون موتور فقط به PHP و وبسرور آپاچی نیاز دارد، روی رایانه شخصی هم با شبیهسازهای محلی مثل XAMPP یا WAMP اجرا میشود: index.php را در پوشه htdocs قرار دهید و در مرورگر به localhost مراجعه کنید. این روش برای آشنایی با موتور و توسعه پوسته بسیار کارآمد است.
کل سایت یک مجموعه فایل است؛ بنابراین:
/images/…) هستند و با دامنه جدید کار میکنند.توصیه: پیش از هر تغییر مهم (پوسته، افزونه، بهروزرسانی)، یک نسخه کامل از کل پوشه سایت تهیه کنید. شرح روشهای پشتیبانگیری: راهنمای «ناحیه مدیریت»، بخش ۱۳.
از ناحیه مدیریت (فقط مدیر سایت)، موتور نسخه جدید را از وبسایت رسمی دریافت میکند؛ پس از تطبیق امضا، نسخه فعلی در پوشه 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 از کنترلپنل هاست |
فهرست کامل خطاها و راهحلها: راهنمای «خطاها».
/ctrl/) با موفقیت آزمایش شودctrl به عبارت دیگری تغییر یابد