كيفية استضافة موقع ويب مجاني في نظام Linux المنزلي

خادم الويب يمكن استخدامه للإشارة إلى كل من الأجهزة والبرمجيات، أو كليهما يعملان معًا. لغرض هذا الدليل، سنركز على الجانب البرمجي ونرى كيف يمكنك استضافة موقع على الويب على جهاز Linux الخاص بك.

A web server is a software program that receives and responds to client requests via the HTTP/HTTPS protocols. Its primary purpose is to display website content which, oftentimes, is in the form of text, images, and video.

A web server can either serve static or dynamic content. Static content, as the name infers, refers to content that hardly changes and is bound to remain the same. The server sends back content to the user’s browser as is.

المحتوى الديناميكي هو المحتوى الذي يتغير في كثير من الأحيان أو يتم تحديثه باستمرار. لخدمة المحتوى الديناميكي، يجب أن يعمل خادم الويب أيضًا جنبًا إلى جنب مع خادم قاعدة البيانات ولغات البرمجة على الجانب الخادم.

سيقدم هذا الدليل كيفية إعداد خادم الويب أباتشي لاستضافة موقع على الويب على نظام Linux الخاص بك مجانًا.

المتطلبات

لمتابعة هذا الدليل، تأكد من توفر ما يلي.

  • A dedicated Public IP address can be obtained from your ISP.
  • A Linux box, which can be a Linux server installation of your preferred OS variant. For this guide, we will use Debian 11.

تحتاج أيضًا إلى خادم LAMP مثبت، وهو اختصار لـ Linux و Apache و MySQL (يمكن أيضًا أن يكون MariaDB). إليك بعض الدلائل حول كيفية تثبيت مجموعة LAMP في نظام Linux.كيفية تثبيت LAMP على خادم Debian 11

في هذا القسم، سنقوم بالمضي قدمًا ومناقشة المكونات الرئيسية لخادم الويب.

ما هو أباتشي؟

أباتشي هو خادم ويب شهير ومفتوح المصدر ومتعدد المنصات والذي يتم إصداره تحت ترخيص أباتشي 2.0. إنه واحد من أكثر الخوادم الويب استخدامًا، حيث يشكل ما يقرب من 32.2% من حصة سوق خوادم الويب.

للتحقق من أحدث إصدار من أباتشي المتاح، وما إذا كان مثبتًا على خادمك، قم بتشغيل الأمر التالي:

# apt-cache policy apache2 (On Debian-based OS)

من الناتج، يمكنك رؤية المعلمة المثبتة: (لا شيء) مما يعني أنه لم يتم تثبيته بعد. كما تحصل أيضًا على معلومات حول أحدث إصدار يتم تقديمه من مستودع ديبيان / أوبونتو، الذي في هذه الحالة هو 2.4.52.

Check Apache Package Availability

على توزيعات ريد هات الحديثة، يمكنك التحقق من توافر أباتشي باستخدام الأمر dnf التالي كما يلي.

# dnf search httpd
Search Apache Package Availability

من الناتج أعلاه، يمكنك رؤية أن حزمة أباتشي httpd متاحة للتنزيل. إذا لم يتم تثبيت أباتشي على نظامك، استخدم مديري الحزم ‘ apt ‘ أو ‘ dnf ‘ لتثبيت أباتشي كما هو موضح.على أنظمة تستند إلى ديبيان:على أنظمة تستند إلى ريد هات:

على أنظمة Debian-based:

$ sudo apt install apache2 -y 	 
$ sudo systemctl start apache2	 
$ sudo systemctl enable apache2	 
$ sudo systemctl status apache2
Check Apache2 Status

على أنظمة Red-Hat-based:

# dnf install httpd -y 	 
# systemctl start httpd	 
# systemctl enable httpd	 
# systemctl status httpd
Check httpd Status

ما هو MariaDB؟

A fork of MySQL, MariaDB is one of the most popular and open-source relational database management systems. Nowadays, it’s preferred to MySQL due to its faster speeds in replication and performing queries as well as security and a vast array of storage engines.

لتثبيت MariaDB، على أنظمة Debian-based:

	 
$ sudo apt install mariadb-server mariadb-client -y	 
$ sudo systemctl start mariadb	 
$ sudo systemctl enable mariadb	 
$ sudo systemctl status mariadb	 

يظهر الإخراج التالي أن MariaDB مثبتة وتعمل كما هو متوقع.

Check MariaDB Status

لتثبيت MariaDB، على أنظمة RHEL-based:

	 
# dnf install mariadb-server -y	 
# systemctl start mariadb	 
# systemctl enable mariadb	 
# systemctl status mariadb	 
Verify MariaDB Status

ما هو PHP؟

PHP هو اختصار متكرر لـ PHP Hypertext Preprocessor، وهو لغة سكريبت عامة شائعة تستخدم بشكل رئيسي في تطوير الويب.

لتثبيت PHP، على أنظمة Debian-based:

	 
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install  ca-certificates apt-transport-https software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update
$ sudo apt install php8.0 libapache2-mod-php8.0 

لتثبيت PHP، على أنظمة RHEL-based، تحتاج أولاً لتمكين مستودع EPEL.

$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm  [RHEL 9]
$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm  [RHEL 8]

بعد ذلك، قم بتمكين مستودع Remi، الذي يقدم أحدث إصدار من PHP على أنظمة RHEL-based.

$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm  [RHEL 8]
$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm  [RHEL 8]

بمجرد تمكين مستودعي EPEL وRemi على النظام، يمكنك تثبيت PHP كما هو موضح.

# dnf module list php
# dnf module enable php:remi-8.0 -y 
# dnf install php php-cli php-common

مع تثبيت جميع المكونات، يمكنك الآن بناء موقعك الإلكتروني باستخدام WordPress CMS، وهو برنامج يسهل على المستخدمين تطوير وإدارة موقع إلكتروني دون الحاجة إلى معرفة بلغات تصميم الويب مثل HTML وCSS وPHP وجافا سكريبت.

إنشاء موقع ويب بسيط باستخدام WordPress في Linux

للتوضيح ، سنقوم بتثبيت WordPress على Debian 11 و RHEL 9 أنظمة ، والتي ستوفر موقعًا عينة يمكن تخصيصه حسب تفضيلاتك.

يفترض هذا القسم بالفعل وجود LAMP المكتبة المثبتة.

الخطوة 1: تثبيت وحدات PHP الإضافية

للمضي قدمًا ، قم بتثبيت وحدات PHP الإضافية المطلوبة من قبل WordPress كما هو موضح.

لتثبيت PHP وحدات ، على أنظمة Debian-based:

$ sudo apt install php libapache2-mod-php php-pear php-cgi php-common php-mbstring php-zip php-net-socket php-gd php-mysql php-bcmath

لتثبيت PHP وحدات ، على أنظمة RHEL-based:

# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-bcmath php-curl php-zip php-xmlrpc wget

الخطوة 2: إنشاء قاعدة بيانات لـ WordPress

مكتوبة بواسطة PHP ، WordPress هو نظام إدارة المحتوى مجاني ومفتوح المصدر يعتمد على البيانات. القاعدة البيانات هي مكون أساسي في WordPress.

يتم استخدام القاعدة البيانات لتخزين جميع مشاركات المدونة والصفحات والفئات والتعليقات والقوالب والمكتبات الإضافية وملفات تكوين WordPress.

لإنشاء قاعدة بيانات لـ WordPress ، تسجيل الدخول إلى خادم قاعدة البيانات MariaDB:

$ sudo mysql -u root -p

بعد ذلك ، قم بإنشاء قاعدة البيانات كما هو موضح

CREATE DATABASE wordpress_db;

بعد ذلك ، قم بإنشاء مستخدم قاعدة البيانات وتعيين جميع الأذونات للمستخدم على قاعدة البيانات.

GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@localhost identified by 'P@ssword321';

ثم أعد تحميل جداول التراخيص لحفظ التغييرات المُقَدَّمة والخروج من قاعدة البيانات.

FLUSH PRIVILEGES;
QUIT;

الخطوة 3: تنزيل WordPress

مع وجود قاعدة البيانات، تابع وتنزيل أحدث ملف تنسيق tarball لـ WordPress باستخدام أمر wget.

$ wget https://wordpress.org/latest.tar.gz

بمجرد تنزيله، استخرج الملف المضغوط باستخدام أمر tar.

$ tar -xvzf latest.tar.gz

يستخرج الأمر محتويات الملف في مجلد يسمى wordpress. انقل أو انسخ المجلد إلى جذر الوثيقة لويب سيرفر أباتشي.

$ sudo mv wordpress/ /var/www/html/

بعد ذلك، قم بتعيين الأذونات وحقوق الملكية التالية.
$ sudo chmod 755 -R /var/www/html/wordpress/
$ sudo chown -R www-data:www-data /var/www/html/wordpress/

الخطوة 4: إنشاء مضيف وهمي لـ WordPress

يشير مصطلح المضيف الوهمي إلى ممارسة عُقد عدة عوامل تحت خادم واحد. إذا كنت تنوي عُقد عدة عوامل تحت خادم واحد، فأنت بحاجة إلى إنشاء مضيف وهمي لكل موقع.

في هذه الحالة، تحتاج إلى إنشاء مضيف وهمي لموقع WordPress كما يلي.

$ sudo nano /etc/apache2/sites-available/wordpress.conf  [On Debian]
# vi /etc/httpd/conf/httpd.conf [On RHEL]

قم بلصق الأسطر التالية لتعريف الخادم الافتراضي. بالنسبة للتوجيه ServerName, قم بتوفير عنوان IP للخادم أو الاسم المجالي الكامل، الذي يجب أن يشير إلى عنوان IP العام المخصص.

<VirtualHost *:80>
     ServerAdmin admin@your_domain.com
     DocumentRoot /var/www/html/wordpress
     ServerName 192.168.0.100

     <Directory /var/www/html/wordpress>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log
     CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined

</VirtualHost>

احفظ التغييرات واخرج من الملف.

للاتصال بقاعدة البيانات، يتطلب بعض التعديلات الإضافية. لذا، انتقل إلى مجلد wordpress.

$ cd /var/www/html/wordpress/

ثم، قم بتحديث ملف wp-config.php بمحتويات ملف wp-config-sample.php.

$ cp wp-config-sample.php wp-config.php
$ sudo nano wp-config.php

بعد ذلك، قم بتحديث اسم قاعدة البيانات، واسم مستخدم قاعدة البيانات، وتوجيهات كلمة المرور بتفاصيل قاعدة البيانات.

بعد ذلك، قم بتمكين موقع WordPress الجديد كما يلي على أنظمة تعتمد على Debian.

$ sudo ln -s /etc/apache2/sites-available/wordpress.conf /etc/apache2/sites-enabled/wordpress.conf
$ sudo a2ensite wordpress
$ sudo a2enmod rewrite
$ sudo a2dissite 000-default

لتطبيق التغييرات، أعد تشغيل Apache.

$ sudo systemctl restart apache2   [On Debian]
# systemctl restart httpd  [On RHEL]

الخطوة 4: إكمال إعداد WordPress على متصفح

لإكمال الإعداد، تصفح عنوان IP لخادم الويب الخاص بك كما هو موضح:

http://server-ip

يجب أن تحصل على صفحة ترحيب WordPress كما هو موضح. حدد اللغة المفضلة لديك وانقر على ‘استمرار’ Continue.

WordPress Installation Setup

بعد ذلك، قم بملء تفاصيل الموقع.

WordPress Site Details

ثم انقر على ‘تثبيت WordPress’ Install WordPress لإكمال إعداد WordPress.

Install WordPress

إذا كان كل شيء على ما يرام، ستحصل على تأكيد بأن التثبيت كان ناجحًا. لتسجيل الدخول، انقر فوق زر ‘تسجيل الدخول’ Log In.

WordPress Admin Login

هذا يوجهك إلى لوحة تحكم ووردبريس كما يمكنك أن ترى. في هذه المرحلة، يمكنك تجربة مختلف القوالب لتحسين مظهر موقعك الإلكتروني التجريبي.

WordPress Admin Dashboard

الخطوة ٥: الوصول إلى ووردبريس باستخدام توجيه المنافذ

نظرًا لأنك تقوم باستضافة خادم الويب الخاص بك من نظام Linux في المنزل أو شبكة الشبكة المحلية الخاصة بك (LAN)، فإن الخطوة التالية هي جعله متاحًا للمستخدمين الخارجيين أو المستخدمين خارج LAN الخاص بك (Local Area Network). هنا تأتي تقنية توجيه المنافذ.

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

في إعدادك، تحتاج إلى توجيه المنفذ الذي يستمع إليه خادم الويب، (في معظم الحالات، يكون هذا المنفذ ٨٠ لحركة مرور HTTP أو ٤٤٣ لحركة مرور HTTPS) وكذلك عنوان IP الخاص الثابت لخادم الويب.

لذا، قم بتسجيل الدخول إلى جهاز التوجيه الخاص بك وانتقل إلى قسم توجيه المنافذ. في مثالنا، نحن نستخدم جهاز التوجيه DLink لتوجيه منافذ خادم الويب (٨٠ و ٤٤٣) وعنوان IP الخاص (١٩٢.١٦٨.٠.١٠٠) إلى عنوان IP العام المخصص المخصص من قبل مزود خدمة الإنترنت.

في حالتك، حدد منافذ وعنوان IP الخاص لخادم الويب واحفظ التغييرات.

Port Forwarding for WordPress

لحفظ التغييرات، قد تحتاج إلى إعادة تشغيل جهاز التوجيه. لذا، قم بذلك بالضبط.

بمجرد أن يتم تنفيذ إعادة توجيه المنافذ بشكل صحيح، يمكنك الآن الوصول إلى خادم الويب الخاص بك خارج شبكتك عبر عنوان IP العام.

الاستنتاج

في هذا الدليل، قمنا بشرح كيف يمكنك استضافة خادم الويب الخاص بك باستخدام أباتشي على جهاز Linux. نرحب بآرائك حول هذا الدليل.

Source:
https://www.tecmint.com/host-website-locally/