تثبيت PHP
في القسم الثاني من الدورة نقوم بإعداد LEMP Stack والذي يشمل Linux, Nginx, MySQL, PHP ونبدأ بتثبيت php في هذا الدرس.
بسم الله الرحمن الرحيم
لا تترد في طرح أسئلتك المتعلقة بمواضيع الدورة في التعليقات.
سيرفر جديد
في حال لم يكن لديك سيرفر جاهز قمت بإنشائه من خلال متابعة الدروس السابقة، قم بإنشاء سيرفر جديد باتباع الخطوات الواردة في الدرس الأول من الدورة: "نحتاج إلى سيرفر"، وكذلك نحتاج إلى إنشاء مستخدم جديد على السيرفر ولديه صلاحيات إدراة السيرفر (sudo) وفي هذه الدورة سأفترض بأن اسم المستخدم الجديد هو (ubuntu) وعليه يجب عليك تغيير الاسم في حال نسخ الأكواد من الدروس إذا كان الاسم مختلفًا عن (ubuntu) ويمكن القيام بهذه الخطوات بمتابعة درس "دخول أكثر أمانًا"
بعد إنشاء السيرفر قم بالدخول إليه عن طريق الأمر:
# ubuntu والمستخدم ssh الدخول إلى السيرفر باستخدام
# لا تنسى تغيير العنوان بحسب العنوان الخاص بخادمك
ssh [email protected]
تثبيت NGINX
خادم الويب الذي سوف نقوم باستخدام هو Nginx ولتثبيته على السيرفر نقوم بتنفيذ الأمر التالي:
# تحديث قاعدة البيانات الخاصة بمستودعات الحزم ثم تثبيت خادم الويب
sudo apt-get update && sudo apt-get install -y nginx
قم بزيارة العنوان الرقمي للسيرفر IP Address بواسطة المتصفح، وسوف تظهر لك الصفحة الافتراضية لـNginx، وفي حال لم تظهر لك الصفحة تأكد من أن Nginx تم تشغيله بتنفيذ الأمر
# Nginx تشغيل
sudo service nginx start
# Nginx الاستعلام عن حالة
sudo service nginx status
# سيظهر لك الكثير من البيانات يفترض أن يكون أولها كما يلي
# ● nginx.service - A high performance web server and a reverse proxy server
# Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
# Active: active (running) since Sun 2018-07-01 23:52:20 UTC; 6s ago
تثبيت PHP
سوف نقوم بتثبيت النسخة 7.2 من php والتي هي النسخة الأحدث في وقت كتابة هذا الدرس. وللحصول على آخر نسخة فإننا نحتاج إلى إضافة مستودع جديد للبرمجيات الخاصة بتوزيعة Ubuntu، وسنقوم بتنفيذ الأمرين التاليين:
# php لإضافة أحدث نسخة من ondrej/php إضافة مستودع
sudo apt-add-repository ppa:ondrej/php
# تحديث قاعدة البيانات لجلب النسخة الجديدة
sudo apt-get update
ومن الضروي تنفيذ الأمر sudo apt-get udpate لتحديث قاعدة البيانات.
بعد ذلك نقوم بتنفيذ الأمر التالي لتثبيت php 7.2
# ومجموعة من الملحقات الخاصة بها php تثبيت
sudo apt-get install -y php7.2-fpm php7.2-cli php7.2-sqlite3 php7.2-mysql php7.2-gd php7.2-curl php-memcached php7.2-mbstring php7.2-xml php7.2-zip php7.2-intl
سيقوم بهذه الأمر بتثبيت النسخة رقم 7.2 من php وكذلك مجموعة من الملحقات. يرجى ملاحظة أنه ينبغى ألا تقوم بتثبيت إلا ما تحتاجه من هذه الملحقات، فمثلًا إذا لم تكن ستستخدم memcached فلا تقم بثبيته. ولكن بما أن هذه السيرفر هو للتدريب والتجربة فلا ضرر من تثبيت هذه الملحقات.
بعد الانتهاء من التثبيت يمكن التأكد من صحة تثبيت php بطريقتين: الأولى باستخدام الأمر التالي:
# php عرض النسخة المثبتة من
php -v
# وستظهر لك بيانات مشابهة للتالي
PHP 7.2.7-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Jun 22 2018 08:44:50) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.7-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
والطريقة الثاني بعرض بيانات وإعدادات php من خلال المتصفح. وقبل ذلك لا بد أن نقوم بالربط ما بين Nginx و php
Nginx و PHP
يتم الربط بين php وnginx عن طريق استخدام php-fpm، وذلك من خلال تغيير اعدادات Nginx لإرسال الطلبات التي تحتاج إلى معالجة من قبل php إلى ملف مشترك بينهما. وسنقوم بذلك عن طريق تغيير الإعدادات في ملف الموقع المفعل لدينا /etc/nginx/sites-enabled/default
# Nginx قم بتغيير مسارك إلى مجلد إعدادات
cd /etc/nginx
# استعراض ملفات المواقع المفعلة
ll /etc/nginx/sites-enabled
# أخذ نسخة احتياطية من الملف للرجوع إليها في حالة الخطأ
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original
# default نقوم بفتح ملف إعدادات الموقع المفعل والافتراضي
sudo nano /etc/nginx/sites-available/default
# ابحث عن السطر التالي في الملف وقم بتعديله
index index.html index.htm index.nginx-debian.html;
# ليصبح كالتالي index.php بإضافة
index index.php index.html index.htm index.nginx-debian.html;
# بإضافة التالي أسفل السطر السابق مباشرة php توجيه الطلبات إلى
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock; # لاحظ تغيير النسخة إلى 7.2
}
# الخروج من المحرر وحفظ التعديلات
# Ctrl + o احفظ التغييرات بالضغط على
# enter ثم الضغط على
# Ctrl + x وللخروج من المحرر
# أو بإمكانك استبدال كامل محتويات الملف بالتالي
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
وما قمنا بتعديله في الملف السابق هو كالتالي:
1. أضافة index.php لإعداد index حيث يقوم Nginx بإعادة الملف index.php إلى المتصفح في حال عدم طلب ملف معين مثل زيارتك للموقع: www.3alam.pro
2. أي طلب لملف php أي عندما ينتهي الرابط بـ (.php) مثل زيارتك لـ www.3alam.pro/about.php سنقوم بتحويل الطلب إلى php وذلك بارساله إلى الملف /run/php/php7.2-fpm.sockوالذي يستمع إليه php لتلقي الطلبات.
إعادة تحميل Nginx
ليقوم Nginx بقراءة وتحميل الاعدادات الجديدة نقوم تنفيذ الأمر التالي:
# Nginx إعادة تحميل
sudo service nginx reload
اختبار الإعدادات
سوف نتأكد من صحة الإعدادات بعرض إعدادات php على المتصفح وسيكون ذلك بزيارة الملف info.php من المتصفح.
ويمكننا القيام بذلك بإضافة ملف info.php إلى الموقع الرئيسي root للموقع الافتراضي والذي هو غالبًا /var/www/html
هذا الملف سوف يحتوي على سطر php واحد ودالة وحيدة phpinfo(); والتي ستقوم بعرض الاعدادات الحالية لنسخة php.
ويمكن القيام بذلك بتنفيذ الأمر التالي:
# php إنشاء ملف جديد لعرض بيانات
echo "<?php phpinfo();" | sudo tee /var/www/html/info.php
وأخيرًا يمكنك زيارة الصفحة بالدخول إلى الرابط: http://178.128.162.156/info.php بالطبع بعد تغيير العنوان إلى عنوان خادمك.
وسوف تظهر لك صفحة مشابهة للتالي
وبذلك نكون انتهينا من تثبيت php على السيرفر، وفي الدرس القادم سوف نقوم بتثبيت تطبيق php باستخدام Laravel وربطه مع قاعدة البيانات MySQL.
الدرس السابق | الدرس التالي | |||
---|---|---|---|---|
شهادة SSL | تطبيق Laravel |
محتوى الدورة
تمهيد | |
---|---|
1 | تمهيد |
الأساسيات | |
1 | نحتاج إلى سيرفر |
2 | دخول أكثر أمانًا |
3 | سيرفر الويب - NGINX |
4 | نقل الملفات إلى السيرفر |
5 | الموقع الأول |
6 | التعديل والمزامنة |
7 | مواقع NGINX |
8 | الدومين |
9 | Nginx والدومين |
10 | مواقع أكثر |
11 | منافذ السيرفر |
12 | شهادة SSL |
LEMP | |
1 | تثبيت PHP الدرس الحالي |
2 | تطبيق لارافال Laravel |
3 | أذونات السيرفر |
4 | قاعدة البيانات MySQL |
5 | الاتصال بقاعدة البيانات |
عن الدرس
1 إعجاب |
2 متابع |
0 مشاركة |
3375 مشاهدات |
منذ 6 سنوات |
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !