راهنمای نصب دستی Dima CMS

1 پیش‌نیازها

نیازمندی‌های سرور:

  • PHP: نسخه 8.0 یا بالاتر
  • MySQL: نسخه 5.7 یا بالاتر
  • Apache/Nginx: سرور وب
  • فضای دیسک: حداقل 50 مگابایت

بررسی نیازمندی‌ها:

# بررسی نسخه PHP php -v # بررسی نسخه MySQL mysql --version # بررسی ماژول‌های PHP php -m | grep -E "(pdo|mysql|mbstring|json|curl)"

ماژول‌های PHP مورد نیاز:

  • pdo - برای اتصال به پایگاه داده
  • pdo_mysql - برای MySQL
  • mbstring - برای کار با متن‌های فارسی
  • json - برای کار با JSON
  • curl - برای درخواست‌های HTTP
  • gd - برای پردازش تصاویر

2 دانلود

روش‌های دانلود:

1. دانلود از GitHub:

# کلون کردن مخزن git clone https://github.com/your-username/dima-cms.git # یا دانلود ZIP wget https://github.com/your-username/dima-cms/archive/main.zip unzip main.zip

2. دانلود مستقیم:

فایل ZIP پروژه را از لینک زیر دانلود کنید:

محتوای فایل دانلود شده:

dima-cms/ ├── admin/ ├── config/ ├── core/ ├── modules/ ├── styles/ ├── scripts/ ├── uploads/ ├── templates/ ├── index.php ├── auth.php ├── README.md └── composer.json

3 آپلود فایل‌ها

روش‌های آپلود:

1. استفاده از FTP/SFTP:

# اتصال به سرور ftp your-server.com # یا sftp username@your-server.com # آپلود فایل‌ها put -r dima-cms/* /public_html/

2. استفاده از File Manager:

  1. وارد cPanel شوید
  2. File Manager را باز کنید
  3. به پوشه public_html بروید
  4. فایل‌ها را آپلود کنید

3. استفاده از SSH:

# آپلود با SCP scp -r dima-cms/* username@your-server.com:/public_html/ # یا با rsync rsync -avz dima-cms/ username@your-server.com:/public_html/
نکته مهم:
  • فایل‌ها را در پوشه public_html یا www قرار دهید
  • ساختار پوشه‌ها را حفظ کنید
  • فایل‌های حساس را خارج از web root قرار دهید

4 تنظیم پایگاه داده

1. ایجاد پایگاه داده:

# ورود به MySQL mysql -u root -p # ایجاد پایگاه داده CREATE DATABASE dima_cms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # ایجاد کاربر CREATE USER 'dima_user'@'localhost' IDENTIFIED BY 'your_secure_password'; # اعطای مجوزها GRANT ALL PRIVILEGES ON dima_cms.* TO 'dima_user'@'localhost'; FLUSH PRIVILEGES; # خروج EXIT;

2. اجرای اسکریپت‌های SQL:

# اجرای اسکریپت اصلی mysql -u root -p dima_cms < database/schema.sql # اجرای اسکریپت ماژول‌ها mysql -u root -p dima_cms < database/modules.sql # اجرای اسکریپت امنیتی mysql -u root -p dima_cms < database/login_attempts.sql

3. بررسی جداول ایجاد شده:

mysql -u root -p dima_cms SHOW TABLES; # باید جداول زیر را ببینید: # - users # - posts # - pages # - categories # - comments # - settings # - modules # - module_settings # - login_attempts

5 تنظیمات

1. تنظیم فایل database.php:

# فایل config/database.php را ویرایش کنید return [ 'host' => 'localhost', 'port' => '3306', 'database' => 'dima_cms', 'username' => 'dima_user', 'password' => 'your_secure_password', 'charset' => 'utf8mb4', 'options' => [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ] ];

2. تنظیم فایل .env (اختیاری):

# فایل .env را ایجاد کنید DB_HOST=localhost DB_PORT=3306 DB_NAME=dima_cms DB_USER=dima_user DB_PASS=your_secure_password APP_SECRET=your_random_secret_key SESSION_SECRET=your_session_secret MAX_FILE_SIZE=5242880 UPLOAD_PATH=uploads ENABLE_HTTPS=true DEBUG_MODE=false

3. تنظیم فایل .htaccess:

# فایل .htaccess را بررسی کنید Options -Indexes # محافظت از فایل‌های حساس <Files ".env"> Order allow,deny Deny from all </Files> # تنظیمات PHP <IfModule mod_php.c> php_flag display_errors Off php_flag log_errors On php_flag allow_url_fopen Off php_flag allow_url_include Off php_flag expose_php Off </IfModule>

6 مجوزهای فایل

تنظیم مجوزهای امن:

# تنظیم مجوزهای پوشه‌ها chmod 755 uploads/ chmod 755 templates/ chmod 755 modules/ # تنظیم مجوزهای فایل‌ها chmod 644 config/database.php chmod 644 .env chmod 644 .htaccess # تنظیم مالکیت (در صورت نیاز) chown www-data:www-data uploads/ chown www-data:www-data templates/ chown www-data:www-data modules/

بررسی مجوزها:

# بررسی مجوزهای فایل‌ها ls -la config/ ls -la uploads/ ls -la templates/ # باید چیزی شبیه این ببینید: # -rw-r--r-- 1 www-data www-data 1234 Jan 1 12:00 database.php # drwxr-xr-x 2 www-data www-data 4096 Jan 1 12:00 uploads/
نکات امنیتی:
  • فایل‌های حساس نباید قابل خواندن توسط وب باشند
  • پوشه uploads باید قابل نوشتن باشد
  • فایل‌های .env و database.php را محافظت کنید

7 نصب

1. دسترسی به نصب‌کننده:

در مرورگر به آدرس زیر بروید:

آدرس نصب: http://your-domain.com/install/

2. مراحل نصب:

  1. بررسی پیش‌نیازها: سیستم نیازمندی‌ها را بررسی می‌کند
  2. تنظیمات پایگاه داده: اطلاعات اتصال به پایگاه داده
  3. ایجاد کاربر ادمین: کاربر اصلی سیستم
  4. تنظیمات سایت: نام و توضیحات سایت
  5. پایان نصب: ایجاد فایل .installed

3. اطلاعات مورد نیاز:

  • نام سایت: نام نمایشی سایت
  • ایمیل ادمین: ایمیل کاربر اصلی
  • نام کاربری: نام کاربری ادمین
  • رمز عبور: رمز عبور قوی
  • زبان: زبان پیش‌فرض سایت

4. پس از نصب:

نصب موفق:
  • فایل .installed ایجاد می‌شود
  • پوشه install حذف می‌شود
  • سیستم آماده استفاده است

8 پس از نصب

1. ورود به پنل مدیریت:

آدرس پنل مدیریت: http://your-domain.com/admin/

2. تنظیمات اولیه:

  1. تنظیمات عمومی: نام سایت، توضیحات، لوگو
  2. تنظیمات ایمیل: SMTP برای ارسال ایمیل
  3. تنظیمات آپلود: محدودیت اندازه و نوع فایل
  4. تنظیمات امنیتی: محدودیت ورود، CSRF

3. فعال‌سازی ماژول‌ها:

# در پنل مدیریت: # 1. به بخش "ماژول‌ها" بروید # 2. ماژول‌های مورد نیاز را فعال کنید # 3. تنظیمات هر ماژول را انجام دهید

4. ایجاد محتوا:

  • صفحات: درباره ما، تماس با ما
  • دسته‌بندی‌ها: دسته‌بندی مطالب
  • مطالب: پست‌های اولیه
  • منوها: منوهای اصلی سایت

5. بهینه‌سازی:

# فعال‌سازی کش # تنظیم CDN # بهینه‌سازی تصاویر # فعال‌سازی HTTPS

9 رفع مشکلات

مشکلات رایج:

1. خطای اتصال به پایگاه داده:

# بررسی تنظیمات database.php # بررسی دسترسی کاربر MySQL # بررسی وجود پایگاه داده mysql -u dima_user -p dima_cms

2. خطای مجوزهای فایل:

# تنظیم مجوزهای صحیح chmod 755 uploads/ chmod 644 config/database.php # بررسی مالکیت ls -la uploads/ ls -la config/

3. خطای 500:

# بررسی لاگ‌های خطا tail -f /var/log/apache2/error.log tail -f /var/log/nginx/error.log # فعال‌سازی نمایش خطا (فقط در توسعه) php_flag display_errors On

4. مشکل آپلود فایل:

# بررسی تنظیمات PHP php.ini: upload_max_filesize = 10M post_max_size = 10M max_execution_time = 300 memory_limit = 256M

بررسی‌های امنیتی:

# بررسی فایل‌های حساس ls -la .env ls -la config/database.php # بررسی مجوزهای پوشه‌ها ls -la uploads/ ls -la templates/ # بررسی لاگ‌های امنیتی tail -f /var/log/auth.log

پشتیبان‌گیری:

# پشتیبان‌گیری از پایگاه داده mysqldump -u root -p dima_cms > backup.sql # پشتیبان‌گیری از فایل‌ها tar -czf files_backup.tar.gz /path/to/dima-cms/ # پشتیبان‌گیری خودکار 0 2 * * * mysqldump -u root -p dima_cms > /backup/db_$(date +\%Y\%m\%d).sql

نکات مهم:

  • همیشه از رمزهای عبور قوی استفاده کنید
  • فایل‌های حساس را خارج از web root قرار دهید
  • به‌روزرسانی منظم نرم‌افزارها را انجام دهید
  • پشتیبان‌گیری منظم داشته باشید
  • لاگ‌های سیستم را بررسی کنید