"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إعداد موقع ويب PHP على ECith Nginx وMySQL وPHP وGit

إعداد موقع ويب PHP على ECith Nginx وMySQL وPHP وGit

تم النشر بتاريخ 2024-08-25
تصفح:478

Setting Up a PHP Website on ECith Nginx, MySQL, PHP, and Git

سيرشدك هذا الدليل خلال عملية إعداد موقع ويب PHP على مثيل Amazon EC2 باستخدام Nginx كخادم الويب، وMySQL كقاعدة بيانات، وPHP للبرمجة النصية من جانب الخادم، وGit للتحكم في الإصدار. سنغطي كل شيء بدءًا من الإعداد الأولي وحتى استكشاف المشكلات الشائعة وإصلاحها.

جدول المحتويات

  1. إطلاق مثيل EC2
  2. الاتصال بمثيل EC2 الخاص بك
  3. تحديث وترقية النظام
  4. تثبيت Nginx
  5. تثبيت MySQL
  6. تثبيت PHP
  7. تثبيت جيت
  8. تكوين Nginx
  9. إعداد دليل موقع الويب الخاص بك
  10. استنساخ المستودع الخاص بك
  11. تعيين الأذونات الصحيحة
  12. تكوين PHP
  13. إعداد SSL (اختياري لكن مستحسن)
  14. استكشاف المشكلات الشائعة وإصلاحها
  15. أفضل الممارسات والاعتبارات الأمنية

1. قم بتشغيل مثيل EC2

  1. قم بتسجيل الدخول إلى وحدة الإدارة في AWS الخاصة بك.
  2. انتقل إلى EC2 وانقر على "تشغيل المثيل".
  3. اختر Ubuntu Server AMI (على سبيل المثال، Ubuntu Server 22.04 LTS).
  4. حدد نوع المثيل (t2.micro مؤهل للطبقة المجانية).
  5. قم بتكوين تفاصيل المثيل، وأضف مساحة تخزينية، وعلامات حسب الحاجة.
  6. قم بتكوين مجموعة الأمان للسماح بحركة مرور SSH (المنفذ 22)، وHTTP (المنفذ 80)، وHTTPS (المنفذ 443).
  7. مراجعة المثيل وتشغيله، واختيار أو إنشاء زوج مفاتيح.

2. اتصل بمثيل EC2 الخاص بك

استخدم SSH للاتصال بمثيلك:

ssh -i /path/to/your-key.pem ubuntu@your-instance-public-dns

استبدل /path/to/your-key.pem بالمسار إلى ملف المفتاح الخاص بك وyour-instance-public-dns باسم DNS العام لمثيلك.

3. تحديث وترقية النظام

بمجرد الاتصال، قم بتحديث وترقية نظامك:

sudo apt update
sudo apt upgrade -y

4. قم بتثبيت إنجينكس

تثبيت خادم الويب Nginx:

sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

التحقق من تشغيل Nginx:

sudo systemctl status nginx

5. قم بتثبيت MySQL

تثبيت خادم MySQL:

sudo apt install mysql-server -y
sudo systemctl start mysql
sudo systemctl enable mysql

تأمين تثبيت MySQL الخاص بك:

sudo mysql_secure_installation

اتبع المطالبات لتعيين كلمة مرور الجذر وإزالة الإعدادات الافتراضية غير الآمنة.

6. قم بتثبيت PHP

سنقوم بتثبيت 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

7. قم بتثبيت جيت

تثبيت Git للتحكم في الإصدار:

sudo apt install git -y

التحقق من تثبيت Git:

git --version

8. قم بتكوين Nginx

قم بإنشاء تكوين كتلة خادم 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

9. قم بإعداد دليل موقع الويب الخاص بك

إنشاء دليل جذر الويب:

sudo mkdir -p /var/www/your_domain
sudo chown -R $USER:$USER /var/www/your_domain
sudo chmod -R 755 /var/www/your_domain

10. استنساخ المستودع الخاص بك

إذا كان لديك مستودع 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

11. قم بتعيين الأذونات الصحيحة

قم بتعيين الأذونات الصحيحة لملفات الويب الخاصة بك:

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

قد تحتاج إلى تسجيل الخروج ثم تسجيل الدخول مرة أخرى حتى تدخل تغييرات المجموعة حيز التنفيذ.

12. تكوين PHP

اضبط إعدادات 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

13. إعداد SSL (اختياري لكن موصى به)

لتأمين موقع الويب الخاص بك باستخدام HTTPS، يمكنك استخدام Let's Encrypt:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain -d www.your_domain

اتبع المطالبات لإعداد SSL.

14. استكشاف المشكلات الشائعة وإصلاحها

أخطاء رفض الإذن

إذا واجهت أخطاء "تم رفض الإذن" في سجلات أخطاء Nginx:

  1. التحقق من ملكية الملف:
   ls -l /var/www/your_domain
  1. تأكد من تشغيل Nginx كمستخدم صحيح:
   ps aux | grep nginx
  1. التحقق من تكوين Nginx:
   sudo nano /etc/nginx/nginx.conf

تأكد من ضبط المستخدم على بيانات www.

أخطاء PHP

بالنسبة للأخطاء المتعلقة بـ PHP:

  1. التحقق من سجلات PHP-FPM:
   sudo tail -f /var/log/php8.1-fpm.log
  1. تأكد من تشغيل PHP-FPM:
   sudo systemctl status php8.1-fpm
  1. التحقق من وجود ملف مقبس PHP-FPM:
   ls /var/run/php/php8.1-fpm.sock

قضايا جيت

إذا واجهت مشكلات في إذن Git:

  1. تأكد من أن دليل .git مملوك للمستخدم الخاص بك:
   sudo chown -R ubuntu:ubuntu /var/www/your_domain/.git
  1. استخدم sudo لعمليات Git أو قم بتغيير الملكية مؤقتًا:
   sudo chown -R ubuntu:ubuntu /var/www/your_domain
   git pull
   sudo chown -R www-data:www-data /var/www/your_domain

15. أفضل الممارسات والاعتبارات الأمنية

  1. قم بتحديث نظامك وبرامجك بانتظام:
   sudo apt update && sudo apt upgrade -y
  1. استخدم كلمات مرور قوية لجميع الخدمات (MySQL، SSH، وما إلى ذلك).

  2. تكوين جدار الحماية (على سبيل المثال، UFW) لتقييد حركة المرور الواردة:

   sudo ufw allow OpenSSH
   sudo ufw allow 'Nginx Full'
   sudo ufw enable
  1. تنفيذ Fail2ban للحماية من هجمات القوة الغاشمة:
   sudo apt install fail2ban -y
   sudo systemctl start fail2ban
   sudo systemctl enable fail2ban
  1. قم بعمل نسخة احتياطية لموقع الويب الخاص بك وقاعدة البيانات بانتظام.

  2. مراقبة سجلات الخادم الخاص بك بحثًا عن نشاط غير عادي:

   sudo tail -f /var/log/nginx/access.log
   sudo tail -f /var/log/nginx/error.log
  1. استخدم التحكم في الإصدار (Git) لجميع تغييرات التعليمات البرمجية الخاصة بك.

  2. تنفيذ معالجة الأخطاء بشكل صحيح وتسجيل الدخول في تطبيق PHP الخاص بك.

  3. استخدم العبارات المعدة أو ORM لمنع هجمات حقن SQL.

  4. حافظ على تحديث تبعيات تطبيقك واستخدم مدير التبعيات مثل Composer لمشاريع PHP.

باتباع هذا الدليل، يجب أن يكون لديك موقع ويب PHP كامل الوظائف يعمل على مثيل EC2 مع Nginx وMySQL وGit.
تذكر أن تقوم بتكييف التعليمات مع احتياجاتك الخاصة وأن تعطي الأولوية للأمان دائمًا في الإعداد الخاص بك.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/manojspace/setting-up-a-php-website-on-ec2-with-nginx-mysql-php-and-git-3471?1 إذا كان هناك أي انتهاك يرجى الاتصال بـ Study_golang @163.comdelete
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3