تركيب واعداد PHP و MariaDB و Apache على Ubuntu 18.04

daifمنذ 4 سنوات

مقدمة:

في هذا المقال سوف نشرح خطوة بخطوة طريقة تركيب PHP بطريقة FPM والذي يعنى (FastCGI Process Manager) والتى تتيح لك امكانية تشغيل كل موقع بنسخة PHP خاصة به وبمستخدم خاص به.

أيضا سوف تتعلم في هذا المقال كيفية تحرير الملفات باستخدام محرر النصوص Nano من خلال نافذة سطر الاوامر Terminal وهذا المحرر يمكن التعامل معه بسهوله اكثر من محرر النصوص العريق vi او vim حيث يحتوى الاخير على مميزات لا نحتاجها دوما.

سوف يكون هناك بعض الاوامر الخاصة بعملية تغيير الصلاحيات للملفات وتغيير المالك الاساسي للملف وكذلك امر اضافة مستخدم جديد للنظام وبعض الاوامر الاخرى الخاصة بخادم الويب اباتشي.

سوف نفترض في هذا المقال انك قمت بتركيب او لديك نظام أوبونتو النسخة Ubuntu 18.04 LTS ولا يهم اذا كان لديك اصدار desktop او server  حيث ان الاعدادات نفسها تماما.

 

متطلبات قبل البدء:

  1. تأكد أن المستخدم الخاص بك للاتصال بالخادم هو root او لديه صلاحيات تنفيذ اوامر الروت sudo.
  2. استخدم سطر الاوامر 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

يمكن الان تطبيق هذه الاعدادات بشكل كامل لاي مشروع سواء على البيئة التطويرية او البيئة الانتاجية.

 

الخلاصة:

أنت قادر الان على تركيب واعداد خادم ويب متكامل بالخصائص التالية:

  1. تحديث برمجيات نظام التشغيل الى اخر نسخة.
  2. تركيب واعداد خادم الويب Apache.
  3. تركيب واعداد خادم قواعد البيانات MariaDB.
  4. تركيب واعداد لغة PHP.
  5. انشاء نطاق انترنت 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

 

2
إعجاب
2207
مشاهدات
0
مشاركة
1
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !