سيرشدك هذا الدليل خلال عملية إعداد موقع ويب PHP على مثيل Amazon EC2 باستخدام Nginx كخادم الويب، وMySQL كقاعدة بيانات، وPHP للبرمجة النصية من جانب الخادم، وGit للتحكم في الإصدار. سنغطي كل شيء بدءًا من الإعداد الأولي وحتى استكشاف المشكلات الشائعة وإصلاحها.
استخدم SSH للاتصال بمثيلك:
ssh -i /path/to/your-key.pem ubuntu@your-instance-public-dns
استبدل /path/to/your-key.pem بالمسار إلى ملف المفتاح الخاص بك وyour-instance-public-dns باسم DNS العام لمثيلك.
بمجرد الاتصال، قم بتحديث وترقية نظامك:
sudo apt update sudo apt upgrade -y
تثبيت خادم الويب Nginx:
sudo apt install nginx -y sudo systemctl start nginx sudo systemctl enable nginx
التحقق من تشغيل Nginx:
sudo systemctl status nginx
تثبيت خادم MySQL:
sudo apt install mysql-server -y sudo systemctl start mysql sudo systemctl enable mysql
تأمين تثبيت MySQL الخاص بك:
sudo mysql_secure_installation
اتبع المطالبات لتعيين كلمة مرور الجذر وإزالة الإعدادات الافتراضية غير الآمنة.
سنقوم بتثبيت PHP 8.1 (أو أحدث إصدار ثابت متوفر في مستودعات Ubuntu):
sudo apt install php8.1-fpm php8.1-mysql php8.1-common php8.1-cli php8.1-curl php8.1-mbstring php8.1-xml php8.1-zip -y
التحقق من تثبيت PHP:
php -v
تثبيت Git للتحكم في الإصدار:
sudo apt install git -y
التحقق من تثبيت Git:
git --version
قم بإنشاء تكوين كتلة خادم Nginx جديد:
sudo nano /etc/nginx/sites-available/your_domain
أضف التكوين التالي (استبدل your_domain بنطاقك الفعلي أو عنوان IP):
server { listen 80; server_name your_domain www.your_domain; root /var/www/your_domain; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; fastcgi_index index.php; include fastcgi_params; } location ~ /\.ht { deny all; } }
تفعيل الموقع الجديد:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
اختبار تكوين Nginx:
sudo nginx -t
إذا نجح الاختبار، أعد تحميل Nginx:
sudo systemctl reload nginx
إنشاء دليل جذر الويب:
sudo mkdir -p /var/www/your_domain sudo chown -R $USER:$USER /var/www/your_domain sudo chmod -R 755 /var/www/your_domain
إذا كان لديك مستودع Git موجود لموقع الويب الخاص بك، فقم باستنساخه في جذر الويب الخاص بك:
cd /var/www/your_domain git clone https://github.com/your-username/your-repo.git .
استبدل https://github.com/your-username/your-repo.git بعنوان URL الفعلي للمستودع.
إذا كنت تبدأ مشروعًا جديدًا، فقم بتهيئة مستودع Git جديد:
cd /var/www/your_domain git init
قم بتعيين الأذونات الصحيحة لملفات الويب الخاصة بك:
sudo chown -R www-data:www-data /var/www/your_domain sudo find /var/www/your_domain -type d -exec chmod 755 {} \; sudo find /var/www/your_domain -type f -exec chmod 644 {} \;
للسماح لمستخدم Ubuntu بإدارة الملفات:
sudo usermod -a -G www-data ubuntu sudo chmod g s /var/www/your_domain
قد تحتاج إلى تسجيل الخروج ثم تسجيل الدخول مرة أخرى حتى تدخل تغييرات المجموعة حيز التنفيذ.
اضبط إعدادات PHP إذا لزم الأمر:
sudo nano /etc/php/8.1/fpm/php.ini
الإعدادات الشائعة للضبط:
upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300 memory_limit = 256M
بعد إجراء التغييرات، أعد تشغيل PHP-FPM:
sudo systemctl restart php8.1-fpm
لتأمين موقع الويب الخاص بك باستخدام HTTPS، يمكنك استخدام Let's Encrypt:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d your_domain -d www.your_domain
اتبع المطالبات لإعداد SSL.
إذا واجهت أخطاء "تم رفض الإذن" في سجلات أخطاء Nginx:
ls -l /var/www/your_domain
ps aux | grep nginx
sudo nano /etc/nginx/nginx.conf
تأكد من ضبط المستخدم على بيانات www.
بالنسبة للأخطاء المتعلقة بـ PHP:
sudo tail -f /var/log/php8.1-fpm.log
sudo systemctl status php8.1-fpm
ls /var/run/php/php8.1-fpm.sock
إذا واجهت مشكلات في إذن Git:
sudo chown -R ubuntu:ubuntu /var/www/your_domain/.git
sudo chown -R ubuntu:ubuntu /var/www/your_domain git pull sudo chown -R www-data:www-data /var/www/your_domain
sudo apt update && sudo apt upgrade -y
استخدم كلمات مرور قوية لجميع الخدمات (MySQL، SSH، وما إلى ذلك).
تكوين جدار الحماية (على سبيل المثال، UFW) لتقييد حركة المرور الواردة:
sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' sudo ufw enable
sudo apt install fail2ban -y sudo systemctl start fail2ban sudo systemctl enable fail2ban
قم بعمل نسخة احتياطية لموقع الويب الخاص بك وقاعدة البيانات بانتظام.
مراقبة سجلات الخادم الخاص بك بحثًا عن نشاط غير عادي:
sudo tail -f /var/log/nginx/access.log sudo tail -f /var/log/nginx/error.log
استخدم التحكم في الإصدار (Git) لجميع تغييرات التعليمات البرمجية الخاصة بك.
تنفيذ معالجة الأخطاء بشكل صحيح وتسجيل الدخول في تطبيق PHP الخاص بك.
استخدم العبارات المعدة أو ORM لمنع هجمات حقن SQL.
حافظ على تحديث تبعيات تطبيقك واستخدم مدير التبعيات مثل Composer لمشاريع PHP.
باتباع هذا الدليل، يجب أن يكون لديك موقع ويب PHP كامل الوظائف يعمل على مثيل EC2 مع Nginx وMySQL وGit.
تذكر أن تقوم بتكييف التعليمات مع احتياجاتك الخاصة وأن تعطي الأولوية للأمان دائمًا في الإعداد الخاص بك.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3