راهنمای نصب دستی 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- برای MySQLmbstring- برای کار با متنهای فارسیjson- برای کار با JSONcurl- برای درخواستهای HTTPgd- برای پردازش تصاویر
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 پروژه را از لینک زیر دانلود کنید:
لینک دانلود:
https://github.com/your-username/dima-cms/releases
محتوای فایل دانلود شده:
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:
- وارد cPanel شوید
- File Manager را باز کنید
- به پوشه public_html بروید
- فایلها را آپلود کنید
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. مراحل نصب:
- بررسی پیشنیازها: سیستم نیازمندیها را بررسی میکند
- تنظیمات پایگاه داده: اطلاعات اتصال به پایگاه داده
- ایجاد کاربر ادمین: کاربر اصلی سیستم
- تنظیمات سایت: نام و توضیحات سایت
- پایان نصب: ایجاد فایل .installed
3. اطلاعات مورد نیاز:
- نام سایت: نام نمایشی سایت
- ایمیل ادمین: ایمیل کاربر اصلی
- نام کاربری: نام کاربری ادمین
- رمز عبور: رمز عبور قوی
- زبان: زبان پیشفرض سایت
4. پس از نصب:
نصب موفق:
- فایل .installed ایجاد میشود
- پوشه install حذف میشود
- سیستم آماده استفاده است
8 پس از نصب
1. ورود به پنل مدیریت:
آدرس پنل مدیریت:
http://your-domain.com/admin/
2. تنظیمات اولیه:
- تنظیمات عمومی: نام سایت، توضیحات، لوگو
- تنظیمات ایمیل: SMTP برای ارسال ایمیل
- تنظیمات آپلود: محدودیت اندازه و نوع فایل
- تنظیمات امنیتی: محدودیت ورود، 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 قرار دهید
- بهروزرسانی منظم نرمافزارها را انجام دهید
- پشتیبانگیری منظم داشته باشید
- لاگهای سیستم را بررسی کنید