24 KiB
24 KiB
🚀 المرحلة 3: نشر التطبيقات (Application Deployment)
📋 نظرة عامة
هذه المرحلة تركّز على نشر التطبيقات بأمان على السيرفر المحمي مع CloudPanel.
🎯 الأهداف
- نشر تطبيقات PHP/Python بأمان
- تكوين قواعد البيانات
- إعداد SSL/TLS
- اختبار وفحص التطبيقات
- مراقبة الأداء
⚙️ الخطوة 1: التحقق من CloudPanel
1.1 فحص التثبيت
# الاتصال بالسيرفر (باستخدام knock)
~/FORTRESS_KEYS/knock.sh 194.163.xxx.xxx
# بعد الدخول:
# التحقق من CloudPanel
if [ -d "/usr/local/cloudpanel" ]; then
echo "✅ CloudPanel مثبت"
cat /usr/local/cloudpanel/version
else
echo "❌ CloudPanel غير مثبت - سيتم التثبيت"
fi
1.2 تثبيت CloudPanel (إن لم يكن مثبتاً)
# تثبيت CloudPanel
curl -sS https://installer.cloudpanel.io/ce/v2/install.sh -o install.sh
sudo bash install.sh
# الانتظار حتى يكتمل التثبيت (5-10 دقائق)
# بعد التثبيت:
# الوصول: https://SERVER_IP:8443
# المستخدم: admin
# كلمة المرور: ستُعرض بعد التثبيت
1.3 تأمين CloudPanel
# 1. فتح منفذ CloudPanel في UFW
sudo ufw allow 8443/tcp comment 'CloudPanel Admin'
# 2. إنشاء سكريبت للوصول الآمن
sudo tee /usr/local/bin/fortress/cloudpanel_access.sh > /dev/null <<'EOF'
#!/bin/bash
# 🔐 CloudPanel Safe Access
# فتح المنفذ مؤقتاً (30 دقيقة)
sudo ufw allow from $SSH_CLIENT to any port 8443 proto tcp
echo "✅ CloudPanel متاح لـ 30 دقيقة"
echo "🌐 https://$(curl -s ifconfig.me):8443"
# إغلاق تلقائي بعد 30 دقيقة
(sleep 1800 && sudo ufw delete allow from $SSH_CLIENT to any port 8443 proto tcp) &
EOF
sudo chmod +x /usr/local/bin/fortress/cloudpanel_access.sh
📦 الخطوة 2: إعداد قواعد البيانات
2.1 تأمين MySQL/MariaDB
# تشغيل معالج الأمان
sudo mysql_secure_installation
# الإجابات الموصى بها:
# Enter current password: [اضغط Enter]
# Set root password? [Y]
# Remove anonymous users? [Y]
# Disallow root login remotely? [Y]
# Remove test database? [Y]
# Reload privilege tables? [Y]
2.2 إنشاء مستخدم قاعدة بيانات للتطبيق
# الدخول إلى MySQL
sudo mysql
# إنشاء قاعدة بيانات ومستخدم
CREATE DATABASE app_production CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'STRONG_PASSWORD_HERE';
GRANT ALL PRIVILEGES ON app_production.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
# التحقق
SHOW DATABASES;
SELECT User, Host FROM mysql.user;
EXIT;
2.3 نسخ احتياطي تلقائي لقواعد البيانات
sudo tee /usr/local/bin/fortress/db_backup.sh > /dev/null <<'DBBACKUPEOF'
#!/bin/bash
# 💾 Database Backup Script
BACKUP_DIR="/backup/databases"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
DB_NAME="app_production"
DB_USER="appuser"
DB_PASS="STRONG_PASSWORD_HERE"
mkdir -p "$BACKUP_DIR"
# نسخة احتياطية مضغوطة
mysqldump -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "${BACKUP_DIR}/${DB_NAME}_${TIMESTAMP}.sql.gz"
# تشفير النسخة
openssl enc -aes-256-cbc -salt -pbkdf2 \
-in "${BACKUP_DIR}/${DB_NAME}_${TIMESTAMP}.sql.gz" \
-out "${BACKUP_DIR}/${DB_NAME}_${TIMESTAMP}.sql.gz.enc" \
-k "TRIPZ_DB_$(hostname)_$(date +%Y)"
# حذف غير المشفر
rm -f "${BACKUP_DIR}/${DB_NAME}_${TIMESTAMP}.sql.gz"
# الاحتفاظ بآخر 14 يوم
find "$BACKUP_DIR" -name "*.sql.gz.enc" -mtime +14 -delete
echo "✅ نسخة احتياطية: ${DB_NAME}_${TIMESTAMP}.sql.gz.enc"
DBBACKUPEOF
sudo chmod +x /usr/local/bin/fortress/db_backup.sh
# جدولة (يومياً 3 صباحاً)
(sudo crontab -l 2>/dev/null; echo "0 3 * * * /usr/local/bin/fortress/db_backup.sh >> /var/log/fortress/db_backup.log 2>&1") | sudo crontab -
🌐 الخطوة 3: نشر تطبيق PHP
3.1 إنشاء موقع في CloudPanel
📝 من واجهة CloudPanel:
1. اذهب إلى: Sites → Add Site
2. املأ البيانات:
- Site Name: myapp.com
- Site User: myapp
- Document Root: /home/myapp/htdocs/myapp.com
- PHP Version: 8.2 (الأحدث)
- Enable Varnish Cache: نعم
3. اضغط: Create Site
3.2 تكوين PHP (من SSH)
# تحرير php.ini للموقع
SITE_USER="myapp"
PHP_VERSION="8.2"
sudo tee /home/$SITE_USER/.php/cli/php.ini > /dev/null <<'PHPEOF'
# ══════════════════════════════════════
# TRIPZ FORTRESS - PHP Security Config
# ══════════════════════════════════════
# الأمان
expose_php = Off
display_errors = Off
log_errors = On
error_log = /home/myapp/logs/php_error.log
# الحدود
memory_limit = 256M
upload_max_filesize = 10M
post_max_size = 10M
max_execution_time = 30
max_input_time = 60
# الجلسات
session.cookie_httponly = 1
session.cookie_secure = 1
session.use_strict_mode = 1
# الملفات المعطلة (الخطيرة)
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
PHPEOF
# إعادة تشغيل PHP-FPM
sudo systemctl restart php${PHP_VERSION}-fpm
3.3 رفع الكود
# من اللابتوب - رفع الملفات عبر rsync
cd /path/to/your/app
rsync -avz --progress \
-e "ssh -i ~/FORTRESS_KEYS/fortress_master -p 2200" \
./ tripzadmin@194.163.xxx.xxx:/tmp/app_upload/
# على السيرفر - نقل الملفات
sudo mv /tmp/app_upload/* /home/myapp/htdocs/myapp.com/
sudo chown -R myapp:myapp /home/myapp/htdocs/myapp.com/
sudo chmod -R 755 /home/myapp/htdocs/myapp.com/
# الصلاحيات الخاصة (للمجلدات القابلة للكتابة)
sudo chmod -R 775 /home/myapp/htdocs/myapp.com/storage
sudo chmod -R 775 /home/myapp/htdocs/myapp.com/cache
3.4 تكوين قاعدة البيانات للتطبيق
# تحرير ملف التكوين (.env للـ Laravel مثلاً)
sudo -u myapp nano /home/myapp/htdocs/myapp.com/.env
# المحتوى:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=app_production
DB_USERNAME=appuser
DB_PASSWORD=STRONG_PASSWORD_HERE
# حماية الملف
sudo chmod 600 /home/myapp/htdocs/myapp.com/.env
🐍 الخطوة 4: نشر تطبيق Python (Flask/Django)
4.1 تثبيت Python والأدوات
# تثبيت Python 3.11
sudo apt install -y python3.11 python3.11-venv python3-pip
# إنشاء مستخدم للتطبيق
sudo useradd -m -s /bin/bash pyapp
4.2 إنشاء بيئة افتراضية
# إنشاء المجلدات
sudo mkdir -p /home/pyapp/app
sudo mkdir -p /home/pyapp/logs
# إنشاء venv
sudo -u pyapp python3.11 -m venv /home/pyapp/venv
# تفعيل وتثبيت المتطلبات
sudo -u pyapp /home/pyapp/venv/bin/pip install --upgrade pip
sudo -u pyapp /home/pyapp/venv/bin/pip install flask gunicorn
# أو من requirements.txt:
# sudo -u pyapp /home/pyapp/venv/bin/pip install -r /home/pyapp/app/requirements.txt
4.3 تكوين Gunicorn (WSGI Server)
sudo tee /etc/systemd/system/pyapp.service > /dev/null <<'GUNICORNEOF'
[Unit]
Description=Python App - Gunicorn
After=network.target
[Service]
User=pyapp
Group=pyapp
WorkingDirectory=/home/pyapp/app
Environment="PATH=/home/pyapp/venv/bin"
ExecStart=/home/pyapp/venv/bin/gunicorn \
--workers 3 \
--bind unix:/home/pyapp/app.sock \
--access-logfile /home/pyapp/logs/access.log \
--error-logfile /home/pyapp/logs/error.log \
wsgi:app
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
GUNICORNEOF
# تفعيل وبدء
sudo systemctl daemon-reload
sudo systemctl enable pyapp
sudo systemctl start pyapp
# التحقق
sudo systemctl status pyapp
4.4 تكوين Nginx للتطبيق Python
sudo tee /etc/nginx/sites-available/pyapp.conf > /dev/null <<'NGINXEOF'
server {
listen 80;
server_name pyapp.example.com;
# التحويل إلى HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name pyapp.example.com;
# SSL Certificates (سيتم إضافتها لاحقاً)
ssl_certificate /etc/letsencrypt/live/pyapp.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pyapp.example.com/privkey.pem;
# الأمان
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
# السجلات
access_log /home/pyapp/logs/nginx_access.log;
error_log /home/pyapp/logs/nginx_error.log;
# Proxy إلى Gunicorn
location / {
proxy_pass http://unix:/home/pyapp/app.sock;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# الملفات الثابتة
location /static {
alias /home/pyapp/app/static;
expires 30d;
add_header Cache-Control "public, immutable";
}
}
NGINXEOF
# تفعيل الموقع
sudo ln -s /etc/nginx/sites-available/pyapp.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
🔒 الخطوة 5: إعداد SSL/TLS (Let's Encrypt)
5.1 تثبيت Certbot
sudo apt install -y certbot python3-certbot-nginx
5.2 الحصول على شهادة SSL
# لموقع PHP (عبر CloudPanel)
# استخدم الواجهة: SSL/TLS → Let's Encrypt
# لموقع Python (يدوياً)
sudo certbot --nginx -d pyapp.example.com
# الإجابات:
# Email: your-email@example.com
# Agree to TOS: Yes
# Redirect HTTP to HTTPS: Yes
5.3 التجديد التلقائي
# اختبار التجديد
sudo certbot renew --dry-run
# التجديد مُجدول تلقائياً في systemd timer
sudo systemctl status certbot.timer
🔍 الخطوة 6: الفحص والاختبار
6.1 سكريبت فحص التطبيق
sudo tee /usr/local/bin/fortress/app_check.sh > /dev/null <<'APPCHECKEOF'
#!/bin/bash
# 🔍 Application Health Check
echo "🔍 TRIPZ FORTRESS - Application Check"
echo "════════════════════════════════════════"
# 1. فحص المواقع
echo "🌐 المواقع:"
for site in /home/*/htdocs/*; do
if [ -d "$site" ]; then
SITE_NAME=$(basename $site)
SITE_USER=$(basename $(dirname $(dirname $site)))
echo " 📁 $SITE_NAME (المستخدم: $SITE_USER)"
# فحص الصلاحيات
PERMS=$(stat -c %a $site)
if [ "$PERMS" == "755" ]; then
echo " ✅ الصلاحيات: $PERMS"
else
echo " ⚠️ الصلاحيات: $PERMS (مقترح: 755)"
fi
fi
done
# 2. فحص قواعد البيانات
echo ""
echo "💾 قواعد البيانات:"
sudo mysql -e "SHOW DATABASES;" | grep -v -E "Database|information_schema|performance_schema|mysql|sys" | while read db; do
SIZE=$(sudo mysql -e "SELECT ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)' FROM information_schema.TABLES WHERE table_schema='$db';" | tail -1)
echo " 📊 $db: ${SIZE} MB"
done
# 3. فحص Nginx
echo ""
echo "🌍 Nginx:"
if nginx -t 2>&1 | grep -q "successful"; then
echo " ✅ التكوين صحيح"
else
echo " ❌ أخطاء في التكوين!"
fi
# 4. فحص PHP-FPM
echo ""
echo "🐘 PHP-FPM:"
for version in 8.0 8.1 8.2 8.3; do
if systemctl is-active --quiet php${version}-fpm 2>/dev/null; then
echo " ✅ PHP $version نشط"
fi
done
# 5. فحص Python Apps
echo ""
echo "🐍 Python Apps:"
if systemctl is-active --quiet pyapp 2>/dev/null; then
echo " ✅ pyapp نشط"
WORKERS=$(ps aux | grep gunicorn | grep -v grep | wc -l)
echo " Workers: $WORKERS"
else
echo " ⚠️ pyapp غير نشط"
fi
# 6. فحص SSL
echo ""
echo "🔒 SSL Certificates:"
sudo certbot certificates 2>/dev/null | grep "Certificate Name" | while read line; do
DOMAIN=$(echo $line | awk '{print $3}')
EXPIRY=$(sudo certbot certificates 2>/dev/null | grep -A 10 "Certificate Name: $DOMAIN" | grep "Expiry Date" | awk '{print $3, $4}')
echo " 🔐 $DOMAIN → ينتهي: $EXPIRY"
done
echo ""
echo "════════════════════════════════════════"
echo "✅ الفحص مكتمل"
APPCHECKEOF
sudo chmod +x /usr/local/bin/fortress/app_check.sh
# تشغيل الفحص
sudo /usr/local/bin/fortress/app_check.sh
6.2 اختبار الأداء
# تثبيت أدوات الاختبار
sudo apt install -y apache2-utils
# اختبار PHP site
ab -n 1000 -c 10 https://myapp.com/
# اختبار Python app
ab -n 1000 -c 10 https://pyapp.example.com/
🛡️ الخطوة 7: حماية التطبيقات
7.1 ModSecurity (WAF)
# تثبيت ModSecurity
sudo apt install -y libmodsecurity3 modsecurity-crs
# تكوين Nginx مع ModSecurity
sudo tee /etc/nginx/modsec/main.conf > /dev/null <<'MODSECEOF'
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecAuditEngine RelevantOnly
SecAuditLog /var/log/modsec_audit.log
# OWASP Core Rule Set
Include /etc/nginx/modsec/crs-setup.conf
Include /etc/nginx/modsec/rules/*.conf
MODSECEOF
# تفعيل في Nginx
# (يتطلب إعادة بناء Nginx مع ModSecurity module)
7.2 Rate Limiting في Nginx
# إضافة Rate Limiting للحماية من DDoS
sudo tee -a /etc/nginx/nginx.conf > /dev/null <<'RATELIMITEOF'
# ══════════════════════════════════════
# TRIPZ FORTRESS - Rate Limiting
# ══════════════════════════════════════
# تحديد المعدل: 10 طلبات/ثانية
limit_req_zone $binary_remote_addr zone=general:10m rate=10r/s;
# تحديد الاتصالات المتزامنة
limit_conn_zone $binary_remote_addr zone=addr:10m;
RATELIMITEOF
# تطبيق على المواقع
# في ملفات sites-enabled، أضف:
# limit_req zone=general burst=20 nodelay;
# limit_conn addr 10;
7.3 Fail2Ban للمواقع
# فلتر Nginx
sudo tee /etc/fail2ban/filter.d/nginx-limit-req.conf > /dev/null <<'F2BEOF'
[Definition]
failregex = limiting requests, excess:.* by zone.*client: <HOST>
ignoreregex =
EOF
# Jail
sudo tee -a /etc/fail2ban/jail.local > /dev/null <<'EOF'
[nginx-limit-req]
enabled = true
filter = nginx-limit-req
port = http,https
logpath = /var/log/nginx/*error.log
maxretry = 5
bantime = 3600
findtime = 600
EOF
sudo systemctl restart fail2ban
📊 الخطوة 8: المراقبة والتنبيهات
8.1 تثبيت Netdata (اختياري)
# Netdata للمراقبة في الوقت الفعلي
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
# الوصول: http://SERVER_IP:19999
# ⚠️ يجب تأمينه بـ password أو VPN!
# تأمين Netdata
sudo tee -a /etc/netdata/netdata.conf > /dev/null <<'EOF'
[web]
bind to = localhost
EOF
sudo systemctl restart netdata
# الآن يمكن الوصول فقط عبر SSH tunnel:
# ssh -L 19999:localhost:19999 -i ~/FORTRESS_KEYS/fortress_master -p 2200 tripzadmin@SERVER_IP
8.2 تنبيهات الأداء
sudo tee /usr/local/bin/fortress/performance_alert.sh > /dev/null <<'PERFEOF'
#!/bin/bash
# 📊 Performance Monitoring & Alerts
# حدود التنبيه
CPU_THRESHOLD=80
MEMORY_THRESHOLD=85
DISK_THRESHOLD=90
# الحالة الحالية
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)
MEMORY_USAGE=$(free | grep Mem | awk '{print ($3/$2) * 100.0}' | cut -d'.' -f1)
DISK_USAGE=$(df -h / | awk 'NR==2 {print $5}' | cut -d'%' -f1)
# التحقق والتنبيه
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
/usr/local/bin/fortress/telegram_notify.sh "⚠️ CPU مرتفع: ${CPU_USAGE}%"
fi
if [ "$MEMORY_USAGE" -gt "$MEMORY_THRESHOLD" ]; then
/usr/local/bin/fortress/telegram_notify.sh "⚠️ الذاكرة مرتفعة: ${MEMORY_USAGE}%"
fi
if [ "$DISK_USAGE" -gt "$DISK_THRESHOLD" ]; then
/usr/local/bin/fortress/telegram_notify.sh "⚠️ القرص ممتلئ: ${DISK_USAGE}%"
fi
PERFEOF
sudo chmod +x /usr/local/bin/fortress/performance_alert.sh
# جدولة الفحص (كل 30 دقيقة)
(sudo crontab -l 2>/dev/null; echo "*/30 * * * * /usr/local/bin/fortress/performance_alert.sh") | sudo crontab -
🧪 الخطوة 9: الاختبار النهائي
9.1 قائمة الفحص النهائية
sudo tee /usr/local/bin/fortress/final_test.sh > /dev/null <<'FINALTESTEOF'
#!/bin/bash
# ✅ Final Deployment Test
echo "🧪 TRIPZ FORTRESS - Final Deployment Test"
echo "════════════════════════════════════════════════"
# 1. الاتصال
echo "1️⃣ فحص الاتصال:"
ping -c 2 8.8.8.8 >/dev/null && echo " ✅ Internet" || echo " ❌ Internet"
curl -s https://google.com >/dev/null && echo " ✅ HTTPS" || echo " ❌ HTTPS"
# 2. الخدمات
echo ""
echo "2️⃣ الخدمات الأساسية:"
SERVICES=("nginx" "mysql" "php8.2-fpm" "sshd" "ufw" "fail2ban")
for svc in "${SERVICES[@]}"; do
systemctl is-active --quiet $svc && echo " ✅ $svc" || echo " ❌ $svc"
done
# 3. المواقع
echo ""
echo "3️⃣ فحص المواقع:"
for site in myapp.com pyapp.example.com; do
STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://$site 2>/dev/null || echo "000")
if [ "$STATUS" == "200" ]; then
echo " ✅ $site → $STATUS"
else
echo " ⚠️ $site → $STATUS"
fi
done
# 4. SSL
echo ""
echo "4️⃣ SSL Certificates:"
sudo certbot certificates 2>/dev/null | grep -c "Certificate Name" && echo " ✅ شهادات نشطة" || echo " ⚠️ لا توجد شهادات"
# 5. قواعد البيانات
echo ""
echo "5️⃣ قواعد البيانات:"
mysql -e "SHOW DATABASES;" 2>/dev/null | grep -c "app_production" && echo " ✅ app_production" || echo " ❌ app_production"
# 6. الأمان
echo ""
echo "6️⃣ الطبقات الأمنية:"
systemctl is-active --quiet knockd && echo " ✅ Port Knocking" || echo " ❌ Port Knocking"
systemctl is-active --quiet endlessh && echo " ✅ Honeypot" || echo " ❌ Honeypot"
sudo fail2ban-client status sshd &>/dev/null && echo " ✅ Fail2Ban" || echo " ❌ Fail2Ban"
# 7. النسخ الاحتياطية
echo ""
echo "7️⃣ النسخ الاحتياطية:"
[ -d "/backup/fortress" ] && ls /backup/fortress/*.enc &>/dev/null && echo " ✅ نسخ السيرفر" || echo " ⚠️ نسخ السيرفر"
[ -d "/backup/databases" ] && ls /backup/databases/*.enc &>/dev/null && echo " ✅ نسخ قواعد البيانات" || echo " ⚠️ نسخ قواعد البيانات"
echo ""
echo "════════════════════════════════════════════════"
echo "✅ الاختبار مكتمل!"
FINALTESTEOF
sudo chmod +x /usr/local/bin/fortress/final_test.sh
# تشغيل الاختبار
sudo /usr/local/bin/fortress/final_test.sh
📚 الخطوة 10: التوثيق النهائي
10.1 ملف معلومات التطبيقات
sudo tee /root/APPLICATIONS_INFO.txt > /dev/null <<'EOF'
════════════════════════════════════════════════════════
🚀 TRIPZ FORTRESS - معلومات التطبيقات
════════════════════════════════════════════════════════
📝 المواقع النشطة:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. myapp.com
- النوع: PHP 8.2
- الموقع: /home/myapp/htdocs/myapp.com
- قاعدة البيانات: app_production
- SSL: Let's Encrypt ✅
2. pyapp.example.com
- النوع: Python (Flask + Gunicorn)
- الموقع: /home/pyapp/app
- Socket: /home/pyapp/app.sock
- SSL: Let's Encrypt ✅
💾 قواعد البيانات:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- app_production (myapp.com)
- النسخ الاحتياطي: يومياً 3 صباحاً
- الموقع: /backup/databases/
🔧 الصيانة:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• فحص التطبيقات: sudo /usr/local/bin/fortress/app_check.sh
• فحص الأداء: sudo /usr/local/bin/fortress/performance_alert.sh
• الاختبار الشامل: sudo /usr/local/bin/fortress/final_test.sh
• نسخة احتياطية يدوية: sudo /usr/local/bin/fortress/db_backup.sh
🔐 CloudPanel:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
الوصول: https://SERVER_IP:8443
المستخدم: admin
للأمان: استخدم /usr/local/bin/fortress/cloudpanel_access.sh
📊 المراقبة:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Netdata: http://localhost:19999 (عبر SSH tunnel فقط)
السجلات: /var/log/fortress/, /var/log/nginx/
⚠️ ملاحظات:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. تحديث SSL تلقائياً (Certbot)
2. Rate Limiting مفعّل (10 req/s)
3. ModSecurity WAF (إن فُعّل)
4. تنبيهات الأداء كل 30 دقيقة
════════════════════════════════════════════════════════
EOF
sudo cat /root/APPLICATIONS_INFO.txt
✅ النتيجة النهائية
الآن السيرفر:
- ✅ محمي بـ 9 طبقات أمنية
- ✅ التطبيقات منشورة ومحمية
- ✅ قواعد البيانات آمنة ومنسوخة
- ✅ SSL/TLS مفعّل وتلقائي
- ✅ مراقبة وتنبيهات نشطة
- ✅ نسخ احتياطية يومية
🆘 استكشاف الأخطاء
مشكلة: الموقع لا يعمل (502 Bad Gateway)
# 1. فحص PHP-FPM
sudo systemctl status php8.2-fpm
sudo tail -f /var/log/php8.2-fpm.log
# 2. فحص Nginx
sudo nginx -t
sudo systemctl status nginx
# 3. فحص الصلاحيات
ls -la /home/myapp/htdocs/myapp.com/
مشكلة: قاعدة البيانات لا تتصل
# 1. فحص MySQL
sudo systemctl status mysql
# 2. اختبار الاتصال
mysql -u appuser -p app_production
# 3. فحص المستخدمين
sudo mysql -e "SELECT User, Host FROM mysql.user;"
مشكلة: SSL لا يعمل
# 1. فحص الشهادات
sudo certbot certificates
# 2. إعادة المحاولة
sudo certbot --nginx -d myapp.com --force-renewal
# 3. فحص Nginx
sudo nginx -t
📞 الدعم النهائي
إذا واجهت أي مشاكل:
- راجع السجلات:
sudo journalctl -xe - فحص الأمان:
sudo /usr/local/bin/fortress/health_check.sh - فحص التطبيقات:
sudo /usr/local/bin/fortress/app_check.sh - التواصل: https://tripz-egypt.com
═══════════════════════════════════════════ 🎉 جميع المراحل مكتملة! السيرفر محمي والتطبيقات جاهزة! ═══════════════════════════════════════════