
به اشتراک بگذارید

به اشتراک بگذارید
💡 Moodle = سامانه LMS متنباز برای کلاس و آزمون آنلاین
🔶 سرور اختصاصی برای سامانه آموزشی
Browser ➡️ Nginx / Apache (root = moodle/public)
⬇️
PHP-FPM 8.3+ ➡️ Redis (cache, sessions)
⬇️
Database (PostgreSQL 16+ / MySQL 8.4+ / MariaDB 10.11+)
⬇️
moodledata (outside web root) + cron every minute
🔸 نکته فنی: پوشه public از Moodle 5.1

| بخش | حداقل نسخه یا تنظیم | توضیح |
|---|---|---|
| PHP | 8.3.0 (8.4 هم پشتیبانی میشود) | فقط نسخه 64 بیتی PHP |
| افزونه PHP | sodium | الزامی در Moodle 5.2 |
| تنظیم PHP | max_input_vars ≥ 5000 | هم برای وب و هم CLI |
| PostgreSQL | 16 | توصیه: آخرین نسخه |
| MySQL | 8.4 | توصیه: آخرین نسخه |
| MariaDB | 10.11.0 | توصیه: آخرین نسخه |
| Microsoft SQL Server | 2019 | Oracle از Moodle 5.0 پشتیبانی نمیشود |
| ارتقا | از Moodle 4.4 به بعد | نسخههای قدیمیتر باید مرحلهای ارتقا یابند |
⚠️ فرمول رسمی «رم به ازای هر کاربر» وجود ندارد

sudo apt update
sudo apt install nginx postgresql git \
php8.3-fpm php8.3-cli php8.3-pgsql php8.3-curl php8.3-gd \
php8.3-intl php8.3-mbstring php8.3-xml php8.3-zip php8.3-soap php-redis redis-server
php -m | grep -i sodium # must be listed
sudo -u postgres psql
CREATE USER moodleuser WITH PASSWORD 'StrongPass!';
CREATE DATABASE moodle WITH OWNER moodleuser ENCODING 'UTF8';
\q
cd /var/www
sudo git clone -b MOODLE_502_STABLE git://git.moodle.org/moodle.git
sudo mkdir /var/moodledata
sudo chown -R www-data:www-data /var/moodledata
# nginx server block: root /var/www/moodle/public;
max_input_vars = 5000 را تنظیم کنید و PHP-FPM را ریاستارت کنید. سپس نصب را از مرورگر ادامه دهید یا طبق مستندات Moodle، نصبکننده خط فرمان install.php را از پوشه admin/cli با کاربر وبسرور اجرا کنید. در پایان، صفحه Environment در مدیریت سایت هر پیشنیاز ناقص را گزارش میکند.sudo crontab -u www-data -e
* * * * * /usr/bin/php /var/www/moodle/admin/cli/cron.php >/dev/null
📚 از منابع معتبر

⚠️ محدودیت را صادقانه بدانید
Moodle یک سامانه LMS متنباز برای مدیریت دوره، محتوا، تکلیف و آزمون آنلاین است. مدارس، آموزشگاهها، دانشگاهها و واحدهای آموزش سازمانی از آن استفاده میکنند. چون متنباز است، هزینه لایسنس ندارد، اما هزینه سرور، نگهداری و پشتیبانی فنی را باید در نظر بگیرید.
برای چند کلاس کوچک، هاست مودل با PHP 8.3، کران دقیقهای و moodledata بیرون از public_html کافی است. اگر آزمون همزمان با صدها شرکتکننده دارید یا به Redis و تنظیمات PHP نیاز دارید، سرور مجازی قدرتمند یا سرور اختصاصی انتخاب مطمئنتری است.
مستندات رسمی Moodle فرمولی بر اساس تعداد کاربر ارائه نمیکند. 1000 کاربر ثبتنامی که پراکنده وارد میشوند با 1000 نفری که همزمان آزمون میدهند، بار کاملاً متفاوتی دارند. تعداد کاربران همزمان در ساعت اوج را تخمین بزنید، روی نسخه آزمایشی تست بار بگیرید و سپس منابع را انتخاب کنید.
برای نصب تازه، نسخه پایدار 5.2 امکانات جدیدتر و پشتیبانی امنیتی تا 4 اکتبر 2027 دارد. نسخه 4.5 LTS هم تا همان تاریخ بهروزرسانی امنیتی میگیرد. نسخه LTS بعدی یعنی 5.3 برای 5 اکتبر 2026 برنامهریزی شده و برای سازمانهایی که ارتقای کمتکرار میخواهند، گزینه مناسبی خواهد بود.
Moodle هر دو را رسمی پشتیبانی میکند و انتخاب بیشتر به تجربه تیم شما بستگی دارد. در Moodle 5.2 حداقل PostgreSQL 16، MySQL 8.4 و MariaDB 10.11 لازم است. روی Ubuntu 24.04، PostgreSQL 16 و MariaDB 10.11 از مخزن رسمی در دسترساند، اما MySQL مخزن 8.0 است و کافی نیست.
Moodle هسته آموزشی را فراهم میکند و برای کلاس زنده تصویری معمولاً سرویس جداگانهای مثل BigBlueButton به آن متصل میشود. این سرویس به پردازنده و پهنای باند زیادی نیاز دارد و بهتر است روی سرور جداگانه اجرا شود تا در زمان کلاس زنده، سرعت آزمونها و صفحات Moodle کم نشود.
کران اسکریپتی است که وظایف پسزمینه مثل ارسال ایمیل انجمنها، بکاپ دورهها و پاکسازیها را انجام میدهد. مستندات Moodle اجرای آن را هر دقیقه با کاربر وبسرور توصیه میکند. اگر اجرا نشود، ایمیلها ارسال نمیشوند، گزارشها بهروز نمیشوند و برخی حذفها و وظایف عقب میافتند.
اگر کد را با Git دریافت کرده باشید، ارتقا سادهتر است: ابتدا بکاپ کامل بگیرید، سایت را در حالت نگهداری بگذارید، شاخه نسخه جدید را دریافت کنید و اسکریپت ارتقای خط فرمان را اجرا کنید. طبق یادداشت انتشار، ارتقا به Moodle 5.2 فقط از نسخه 4.4 به بعد ممکن است؛ نسخههای قدیمیتر باید مرحلهای ارتقا یابند و پیش از آن، سازگاری افزونهها بررسی شود.
طبق مستندات Moodle، بکاپ کامل شامل دیتابیس، پوشه moodledata و کد Moodle است. بکاپ دورهها از داخل Moodle برای بازگرداندن یک دوره مفید است، اما جای بکاپ کامل را نمیگیرد. نسخهها را خارج از سرور نگه دارید و بازیابی را دستکم هر چند ماه یک بار روی سرور آزمایشی امتحان کنید.