تركيب واعداد PHP و MariaDB و Apache على Ubuntu 18.04
مقدمة:
في هذا المقال سوف نشرح خطوة بخطوة طريقة تركيب PHP بطريقة FPM والذي يعنى (FastCGI Process Manager) والتى تتيح لك امكانية تشغيل كل موقع بنسخة PHP خاصة به وبمستخدم خاص به.
أيضا سوف تتعلم في هذا المقال كيفية تحرير الملفات باستخدام محرر النصوص Nano من خلال نافذة سطر الاوامر Terminal وهذا المحرر يمكن التعامل معه بسهوله اكثر من محرر النصوص العريق vi او vim حيث يحتوى الاخير على مميزات لا نحتاجها دوما.
سوف يكون هناك بعض الاوامر الخاصة بعملية تغيير الصلاحيات للملفات وتغيير المالك الاساسي للملف وكذلك امر اضافة مستخدم جديد للنظام وبعض الاوامر الاخرى الخاصة بخادم الويب اباتشي.
سوف نفترض في هذا المقال انك قمت بتركيب او لديك نظام أوبونتو النسخة Ubuntu 18.04 LTS ولا يهم اذا كان لديك اصدار desktop او server حيث ان الاعدادات نفسها تماما.
متطلبات قبل البدء:
- تأكد أن المستخدم الخاص بك للاتصال بالخادم هو root او لديه صلاحيات تنفيذ اوامر الروت sudo.
- استخدم سطر الاوامر Terminal للاتصال بالخادم, مستخدمي وندوز عليه تركيب عميل SSH مثل Putty او Bitvise SSH Client.
تحديث النظام:
ان اول ما نقوم به عند تركيب اي نظام تشغيل هو تحديث جميع البرمجيات الى اخر اصدارة متوفرة حيث يتم اضافة بعض المميزات او اصلاح بعض الاشكاليات , سنقوم الان بتحديث قائمة البرمجيات للنظام بشكل كامل ثم تركيبها:
apt -y update
apt -y upgrade
تحديد المنطقة الزمنية للنظام, سوف نحدد منطقة الرياض
timedatectl set-timezone Asia/Riyadh
مرحلة تركيب خادم الويب Apache:
سنقوم الان بتركيب اخر نسخة من خادم الويب Apache عبر الامر التالي:
apt -y install apache2 apache2-utils
تفعيل بعض الوحدات الاساسية في Apache.
a2enmod actions alias rewrite proxy_fcgi fcgid setenvif headers
الغاء تفعيل بعض الوحدات في Apache التى لا نحتاجها.
a2dismod -f status autoindex
الغاء متغير Proxy المرسل من المتصفح , للمزيد راجع httpoxy
cat <<EOT > /etc/apache2/conf-available/httpoxy.conf
<IfModule mod_headers.c>
RequestHeader unset Proxy early
</IfModule>
EOT
# activate it
a2enconf httpoxy
اعادة تشغيل خادم الويب Apache لتطبيق الاعدادات الجديدة
systemctl restart apache2
مرحلة تركيب قاعدة البيانات MariaDB:
تركيب قاعدة البيانات ماريا دي بي لا يتطلب سوى تنفيذ الأمر التالي:
apt -y install mariadb-server mariadb-client libmysqlclient-dev
تأمين قاعدة البيانات عبر مجموعة من تعليمات SQL ووضع كلمة مرور الى "rootpass" , عليك تغييرها بما يناسبك.
mysql -e "DELETE FROM mysql.user WHERE User='';"
mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
mysql -e "DROP DATABASE IF EXISTS test;"
mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';"
mysql -e "UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root';"
mysql -e "UPDATE mysql.user SET Password=PASSWORD('rootpass') WHERE User='root';"
mysql -e "FLUSH PRIVILEGES;"
مرحلة تركيب PHP:
تركيب نسخة بي اتش بي النسخة 7.2
apt -y install php7.2-fpm php7.2-common php7.2-cli
تركيب المكتبات الاضافية والتى تحتاج اليها اغلب برامج بي اتش بي ومن اهمها مكتبة الاتصال بقواعد البيانات php-mysql.
apt -y install php7.2-mysql php7.2-xml php7.2-xmlrpc php7.2-curl php7.2-gd php7.2-imagick php7.2-dev php7.2-imap php7.2-mbstring php7.2-soap php7.2-zip php7.2-bcmath
نقوم الان بتفعيل اعدادات بي اتش بي لتعمل مع Apache.
a2enconf php7.2-fpm
مرحلة اعداد موقع جديد:
بعد تركيب خادم الويب Apache و قاعدة البيانات MariaDB و لغة البرمجة PHP , الان سوف نقوم باعداد موقع جديد باسم localhost ويعمل بالمستخدم developer او اي مسخدم آخر.
انشاء مجلد الموقع localhost والذي يحتوى على مجلد الملفات public و مجلد سجل الاخطاء logs
mkdir -p /home/developer/localhost/public/
mkdir -p /home/developer/localhost/logs/
chown -R developer:developer /home/developer/localhost
اعداد بي اتش بي لتعمل بالمستخدم developer مع وضع قيم افتراضية مثل حد حجم الذاكرة memory_limit ومسار سجل الاخطاء error_log وغيرها من القيم الاخرى.
cat <<EOT > /etc/php/7.2/fpm/pool.d/developer.conf
[developer]
user = developer
group = developer
listen = /run/php/php7.2-fpm-developer.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
php_admin_value[memory_limit] = 2048M
php_admin_value[upload_max_filesize] = 64M
php_admin_value[max_file_uploads] = 64
php_admin_value[post_max_size] = 64M
php_admin_value[date.timezone] = Asia/Riyadh
php_admin_value[error_log] = /home/developer/localhost/logs/php7.2-fpm.log
php_admin_flag[log_errors] = on
pm.status_path = /status
ping.path = /ping
ping.response = pong
request_slowlog_timeout = 10s
slowlog = /home/developer/localhost/logs/php7.2-fpm.log.slow
EOT
اعداد Apache وانشاء موقع Virtualhost خاص بالعنوان localhost مع ربطة باعدادات PHP السابقة
cat <<EOT > /etc/apache2/sites-available/localhost.conf
<VirtualHost localhost:80>
ServerName localhost
DocumentRoot /home/developer/localhost/public/
<Directory /home/developer/localhost/public>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
<FilesMatch ".php$">
SetHandler "proxy:unix:/run/php/php7.2-fpm-developer.sock|fcgi://localhost/"
</FilesMatch>
ErrorLog /home/developer/localhost/logs/error.log
CustomLog /home/developer/localhost/logs/access.log combined
# Enable 'status' and 'ping' page
<LocationMatch "/(ping|status)">
SetHandler "proxy:unix:/run/php/php7.2-fpm-developer.sock|fcgi://localhost"
</LocationMatch>
<IfModule alias_module>
Alias /realtime-status "/usr/share/php/7.2/fpm/status.html"
</IfModule>
</VirtualHost>
EOT
اذا لم يكن العنوان localhost موجود في ملف العناوين hosts يتم اضافتة
CHECK_HOST=`cat /etc/hosts | grep localhost`
if [ $CHECK_HOST == '' ]; then
echo -e "127.0.0.1 localhost" >> /etc/hosts
fi
تفعيل العنوان localhost واعادة تشغيل خادم Apache
a2ensite localhost.conf
systemctl restart apache2
انشاء ملف info.php لتجربة الموقع وعرض المعلومات
cat <<EOT > /home/developer/localhost/public/info.php
<?php
phpinfo();
?>
EOT
استعراض الموقع عبر المتصفح http://localhost/info.php
يمكن الان تطبيق هذه الاعدادات بشكل كامل لاي مشروع سواء على البيئة التطويرية او البيئة الانتاجية.
الخلاصة:
أنت قادر الان على تركيب واعداد خادم ويب متكامل بالخصائص التالية:
- تحديث برمجيات نظام التشغيل الى اخر نسخة.
- تركيب واعداد خادم الويب Apache.
- تركيب واعداد خادم قواعد البيانات MariaDB.
- تركيب واعداد لغة PHP.
- انشاء نطاق انترنت Domain واعداده في Apache.
جميع الاوامر السابقة تم كتابتها على شكل ملف يتم تنفيذة بالمستخدم root على خادم انترنت جديد من شركة سديم او دجيتل أوشن او اي شركة أخرى.
https://gist.github.com/daif/c50198735ca2383f14f9e075f7f36714
يمكن تحميل وتنفيذ الملف بهذا الشكل , ولاكن تأكد من تعديل الملف localhost و المستخدم developer بما يناسبك
wget https://gist.githubusercontent.com/daif/c50198735ca2383f14f9e075f7f36714/raw/f4363a889fda4d3b6f209ac4db4e9985ff1bd65a/lamp-ubuntu-18-04.sh
chmod +x lamp-ubuntu-18-04.sh
./lamp-ubuntu-18-04.sh
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !