في هذه المقالة، سنقدم لك تعليمات خطوة بخطوة حول كيفية تهيئة بيئة الويب على خادم يعمل بنظام لينكس. أولًا، عليك أن تفهم أن خادم الويب النموذجي يتكون من عدة مكونات متفاعلة:
- خادم HTTP
- مترجم لغة البرمجة
- نظام إدارة قواعد البيانات (DBMS)
لإدارة موقع الويب الخاص بك، ستحتاج أيضًا إلى إعداد نظام إدارة المحتوى (CMS)، وواجهة ويب لإدارة قواعد البيانات، والوصول إلى FTP.
لنفكر في إعداد نظام Apache-PHP-MySQL (MariaDB) شائع الاستخدام على لينكس. سنقوم أيضًا بتثبيت خادم vsftpd ftp، وphpMyAdmin - واجهة ويب لإدارة قواعد البيانات، ونظام إدارة المحتوى WordPress.
للبدء من فضلك طلب خادم VPS or خادم مخصصعلى سبيل المثال، استخدمنا خادمًا افتراضيًا بعنوان IP ثابت يعمل بنظام Ubuntu Server 18.04. شغّل المستخدم الجذر جميع الأوامر.
تكوين خادم Apache HTTP
1. تركيب
apt install apache2
عند انتهاء التثبيت، افتح المتصفح وتحقق من "http://[عنوان IP الخاص بالخادم]"
إذا رأيت صفحة ترحيب مثل هذه في لقطة الشاشة أعلاه، فهذا يعني أن خادم HTTP الخاص بك يعمل.
2. إنشاء صفحة اختبار
الدليل الجذر الافتراضي لموقع الويب هو “/var/www/html”هنا ستجد صفحة الترحيب التي رأيتها للتو. لننشئ دليلًا منفصلًا. “/var/www/sites” للمضيفين الافتراضيين والمجلد الفرعي “/var/www/sites/site1” مع صفحة الفهرس لموقع الويب الاختباري الخاص بك.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
في النتيجة الملف "/var/www/sites/site1/index.html" يجب أن يحتوي على سطر واحد فقط من كود HTML:
<H1>Welcome</H1>
3. تكوين خادم Apache
ملفات تكوين المواقع موجودة في "/etc/apache2/sites-available/" كتالوج. لننشئ ملف تكوين لمضيف افتراضي جديد، مع أخذ التكوين الافتراضي من الملف "000-default.conf" كأساس.
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
فتح الملف "site1.conf" وتغيير "جذر المستند" السمة. ضع مسار موقع الويب الخاص بك كقيمة، لذا في حالتنا يكون “/var/www/sites/site1”
في هذه المرحلة، لسنا بحاجة إلى تهيئة التشغيل المتزامن لعدة مواقع ويب، لذا يُمكننا تعطيل الموقع الافتراضي وتفعيل الموقع الجديد. أعد تحميل إعدادات الخادم لتطبيق التغييرات.
a2dissite 000-default
a2ensite site1
systemctl reload apache2
افتح الرابط "http://[عنوان IP الخاص بالخادم]" مرة أخرى وتأكد من أنه بدلاً من صفحة الترحيب الافتراضية لدينا صفحتنا الجديدة.
لقد انتهينا من تكوين خادم HTTP الخاص بنا ويمكننا الانتقال إلى الخطوة التالية.
تكوين خادم FTP
1. تركيب
دعنا نقوم بتثبيت خادم ftp الخاص بنا وحزمة إضافية "db-util"، أننا سنحتاج إلى تكوين المستخدمين الافتراضيين
apt install vsftpd db-util
2. إنشاء حساب محلي
يتيح لنا خادم vsftpd تكوين أذونات الوصول بمرونة عالية. لتنفيذ مهامنا، نحتاج إلى تزويد مستخدمي FTP بما يلي:
- الوصول الكامل إلى محتويات “/var/www/sites/”;
- تعطيل كل ما هو أعلاه "/var/www/";
- الاتصال بحساب افتراضي؛
إنشاء حساب محلي "افتراضي" بدون إذن تسجيل الدخول ولكن مع إمكانية الوصول إلى المجلد الرئيسي "/var/www/"سيتم استخدام هذا الحساب من قبل مستخدمي ftp للاتصال بالخادم
useradd -d /var/www virtual
"جذر" سيكون مالكًا لـ "/var/www" المجلد افتراضيًا. لتمكين مستخدمي FTP من تعديل محتويات مواقع الويب، لنغيّر مالك “/var/www/sites/” بما في ذلك المجلدات الفرعية لـ "افتراضي".
chown -R virtual:root /var/www/sites
ونتيجة لذلك، المستخدم "افتراضي" سوف تكون قادرا على رؤية محتويات "/var/www/" واكتب في “/var/www/sites/” مجلد فرعي.
3. ترتيب
التكوين الرئيسي موجود في الملف "/etc/vsftpd.conf"، لذا دعنا نفتحه ونحرره على النحو التالي:
#enable virtual users
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
#configure permission
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
anon_umask=0022
chroot_local_user=YES
#launch settings
listen=YES
pasv_min_port=30000
pasv_max_port=30999
4. إنشاء قاعدة البيانات
سوف تحتاج إلى قاعدة بيانات لتخزين بيانات الحسابات الافتراضية.
أولاً، دعنا ننشئ ملف نصي بسيط "users.txt" في المجلد الرئيسي، واحفظ بيانات الوصول (اسم المستخدم وكلمة المرور) للمستخدمين الافتراضيين في سطر آخر. على سبيل المثال، سنحتاج إلى مستخدم افتراضي ببيانات تسجيل الدخول "ftp" وكلمة المرور "Qwe123". ثم سيبدو الملف بهذا الشكل:
ftp
Qwe123
دعونا ننشئ قاعدة البيانات
db_load -T -t hash -f ~/users.txt /etc/vsftpd_login.db
دعنا نعدل ملف PAM الافتراضي "/etc/pam.d/vsftp" كما يلي:
auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
يرجى ملاحظة أن مسار "pam_userdb.so" قد تكون المكتبة مختلفة ولكن يمكنك تغييرها إذا لزم الأمر.
قم بإعادة تحميل خادم vsftpd لتطبيق التغييرات.
systemctl restart vsftpd
لقد انتهينا من إعداد خادم FTP.
تفاصيل الاتصال:
- ftp://[عنوان IP الخاص بالخادم]
- تسجيل الدخول: ftp
- كلمة المرور: Qwe123
تكوين خادم PHP
1. تثبيت PHP
أحدث إصدار مستقر من PHP هو PHP 7.4.5، وهو غير مُضمن في مستودعات Ubuntu الرسمية. لنقم بتوصيل مستودع تابع لجهة خارجية وتثبيت أحدث إصدار من PHP.
apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4
2. التحقق من
لكي يتم تنفيذ PHP يجب أن يحتوي ملف صفحة الويب على ".php" الامتداد. لنُعيد تسمية صفحة الاختبار:
cd /var/www/sites/site1/
mv index.html index.php
أضف سطر php التالي إلى الملف "/var/www/sites/site1/index.php"، لذلك يجب أن يبدو الملف بهذا الشكل:
<H1>Welcome</H1>
<?php
phpinfo();
?>
احفظ التغييرات وشاهد النتيجة في المتصفح.
إذا رأيت نتيجة الوظيفة "phpinfo()"مُفسِّر PHP يعمل بشكل صحيح. الآن، لننتقل إلى الخطوة التالية.
تكوين MySQL (MariaDB)
1. تركيب
لنقم بتثبيت MariaDB ووحدة PHP لـ MySQL ثم إعادة تحميل Apache.
apt install mariadb-server php-mysql
systemctl restart apache2
حدّث صفحة الاختبار وانتقل إلى قسم PDO في جدول إعدادات PHP. إذا وجدت القسم "PDO_mysql"، فهذا يعني أن برنامج التشغيل الخاص بـ Mysql مثبت بشكل صحيح.
ثم سنحتاج إلى إجراء تكوين الأمان الأولي لـ MariaDB وتعيين كلمة المرور لـ "جذر" المستخدم، وتعطيل الوصول عن بعد، وحذف جميع حسابات الضيوف.
mysql_secure_installation
في الخطوة الأولى، علينا أن ندخل "جذر" كلمة مرور المستخدم للوصول إلى نظام إدارة قواعد البيانات، أو اضغط على Enter إذا لم تكن هناك كلمة مرور. نظرًا لعدم وجود كلمة مرور مُحددة لـ "جذر" المستخدم بعد التثبيت، فقط اضغط "أدخل".
يرجى ملاحظة أن MariaDB لديها حسابات خاصة بها لا علاقة لها بحسابات نظام التشغيل. لذا، المستخدم الوحيد الذي نتعامل معه في MariaDB هو "جذر".
بعد ذلك، سيطلب منا المُكوِّن تعيين كلمة مرور للمستخدم الجذر. اكتب "نعم" لتأكيد كلمة المرور الجديدة وإدخالها. في حالتنا، "Qwe123"
رد "نعم" إلى جميع الأسئلة الأخرى حتى النهاية.
تم الانتهاء من التكوين!
تفاصيل الوصول إلى MariaDB:
- تسجيل الدخول: root
- كلمة المرور: Qwe123
تكوين phpMyAdmin
1. تركيب
دعونا نقوم بتثبيت الامتداد اللازم لـ PHP - المقاطع متعددة البايتات.
apt install php-mbstring
في المستودع الرسمي يوجد فقط إصدار قديم من phpMyAdmin، لذا دعنا نقوم بتثبيت الإصدار الجديد يدويًا.
افتح الموقع الرسمي للمشروعhttps://www.phpmyadmin.net/"وتنزيل أحدث الأرشيف."
انسخ الأرشيف إلى الخادم في “/var/www/sites/” المجلد باستخدام أي عميل ftp.
قم بإلغاء أرشفة المجلد وإعادة تسميته إلى "phpMyAdmin". لا تنسى تثبيت "فك الضغط" يمكنك حذف الأرشيف بعد إلغاء أرشفته.
apt install unzip
cd /var/www/sites/
unzip phpMyAdmin-5.0.2-all-languages.zip
mv phpMyAdmin-5.0.2-all-languages phpMyAdmin
rm phpMyAdmin-5.0.2-all-languages.zip
إنشاء المجلد التالي “/var/www/sites/phpMyAdmin/tmp” للملفات المؤقتة، وتمكين الوصول للجميع. إذا لم تفعل ذلك، فسيُبلغ phpMyAdmin عن رفض الوصول إلى المجلد المؤقت.
cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp
2. إنشاء اسم مستعار
نظرًا لأن phpMyAdmin ليس مضيفًا افتراضيًا منفصلاً ويقع خارج دليل الجذر، فلنقم بتكوين الاسم المستعار.
فتح الملف "/etc/apache2/mods-available/alias.conf" وأضف هذا السطر:
Alias /pma “/var/www/sites/phpMyAdmin"
داخل هذا القسم:
<IfModule alias_module>
</IfModule>
قم بإعادة تحميل Apache لتطبيق التغييرات.
systemctl reload apache2
تم تعيين الاسم المستعار، حتى نتمكن من الوصول إلى phpMyAdmin هنا "http://[عنوان IP للخادم]/pma".
3. إعداد قاعدة البيانات
نظرًا لأننا قمنا بتقييد استخدام المستخدم الجذر أثناء التكوين الأولي لـ MariaDB، فسيتعين علينا إنشاء حساب جديد مع جميع الأذونات التي سيتم استخدامها للوصول إلى phpMyAdmin.
بالإضافة إلى ذلك، لتمكين الميزات الإضافية لـ phpMyAdmin، سنحتاج إلى قاعدة بيانات الخدمة وحساب للوصول إليها.
دعونا ننشئ الحسابات
mariadb -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'pma'@'localhost' IDENTIFIED BY 'Qwe123' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'pmaservice'@'localhost' IDENTIFIED BY 'Qwe123' WITH grant option;
quit
يرجى ملاحظة أن اسم قاعدة البيانات في الطلب الثاني موجود في الشرارات الخلفية "... ON `phpmyadmin`.* إلى 'pma'@'localhost' تم تحديده بواسطة ..."،
في النتيجة، سيتم إنشاء حسابين في MariaDB:
- تسجيل الدخول: pma، كلمة المرور: Qwe123 الوصول الكامل، سيتم استخدامه لتسجيل الدخول إلى phpMyAdmin
- تسجيل الدخول: pmaservice، كلمة المرور: Qwe123 مطلوب حساب الخدمة لكي تعمل الميزات الإضافية
في الخطوة التالية، سنقوم بتعيين هذه التفاصيل في ملف التكوين "config.inc.php".
ثم سنحتاج إلى استيراد قاعدة البيانات من الملف "phpMyAdmin/sql/create_tables.sql".
دعونا نستورده بمساعدة phpMyAdmin.
افتح الرابط "http://[عنوان IP للخادم]/pma"
أدخل تسجيل الدخول "بي إم إيه" وكلمة المرور "Qwe123"
انتقل إلى البرنامج المساعد في التأليف "استيراد"، اضغط هنا "تحديد ملف" وحدد الملف ”sql/create_tables.sql” في المجلد الجذر لبرنامج phpMyAdmin. من المفترض أن يكون هذا المجلد موجودًا على جهاز الكمبيوتر الخاص بك. "phpMyAdmin" مع الملفات. قم بإلغاء أرشفتها إذا لزم الأمر.
انقر "التالى" لبدء الاستيراد.
4. ترتيب
دعنا ننسخ ملف التكوين من القالب
cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php
دعونا نفتح ملف التكوين "/var/www/sites/phpMyAdmin/config.inc.php" وأجري التغييرات التالية:
تعيين قيمة عشوائية مكونة من 32 حرفًا للسمة "$cfg['blowfish_secret']". استخدم أي مولد كلمة مرور لذلك.
إزالة التعليقات من جميع أسطر "إعدادات تخزين تكوين phpMyAdmin" القسم وتعيين اسم المستخدم وكلمة المرور لحساب خدمة MariaDB لـ "المستخدم المتحكم" و "ممر التحكم" السمات وفقًا لذلك. في حالتنا، خدمة pma و Qwe123.
حفظ التغييرات.
تفاصيل الوصول إلى phpMyadmin:
- http://[server’s_ip_address]/pma/
- تسجيل الدخول: pma
- كلمة المرور: Qwe123
كيفية تثبيت وتكوين WordPress على خادم Linux
1. وضع حزمة وملفات WordPress
انتقل إلى الموقع الرسمي لـ WP "https://ru.wordpress.org/"وتنزيل الأرشيف على جهاز الكمبيوتر المحلي لديك.
قم بتحميل الأرشيف إلى الخادم في “/var/www/sites/” المجلد وإلغاء أرشفته إلى "ووردبريس"" مجلد.
انسخ محتويات “/var/www/sites/wordpress/” المجلد الجذر لـ “/var/www/sites/site1/” موقع الكتروني.
نظرًا لأننا قمنا بنسخ الملفات عبر وحدة التحكم باستخدام أذونات الجذر، فلنغير مالك “/var/www/sites/” مجلد يحتوي على محتويات "افتراضي". هذا مطلوب لتمكين الوصول الكامل لاتصال ftp عبر العميل.
cd /var/www/sites/
tar -xzvf wordpress-5.4-ru_RU.tar.gz
cp -R wordpress/* site1/
chown -R virtual:root /var/www/sites
2. إنشاء قاعدة بيانات لـ WordPress
قم بتسجيل الدخول إلى phpMyAdmin وانقر فوق "إنشاء قاعدة بيانات". حدد اسم قاعدة البيانات العشوائية، في حالتنا "wordpress_db" وانقر فوق الزر "إنشاء".
حدد قاعدة البيانات الجديدة في القسم الأيسر وانقر فوق "الامتيازات"
ثم اضغط "إضافة حساب مستخدم".
أدخل اسم المستخدم وكلمة المرور (خدمة wp / Qwe123) في النافذة المفتوحة، تحقق "منح جميع الامتيازات في wordpress_db" ثم انقر "التالى"
في الصفحة التالية انقر "إلغاء الكل" لإعادة تعيين كافة الامتيازات على مستوى قاعدة البيانات، انقر فوق "التالى".
3. تكوين WordPress على خادم Linux
انتقل إلى الدليل الجذر لموقع الويب الخاص بك وانسخ ملف التكوين من القالب
cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php
فتح "wp-config.php" الملف وأدخل معلمات اتصال قاعدة البيانات التي أنشأناها في الخطوة السابقة واحفظ التغييرات.
4. تثبيت نظام إدارة المحتوى WordPress
افتح الرابط التالي في المتصفح "http://[عنوان IP للخادم]/wp-admin/install.php".
إملأ جميع الحقول ثم انقر "تثبيت ووردبريس". اضبط اسم مستخدم وكلمة مرور عشوائيين. في حالتنا، com.wpadmin و Qwe123 وفقا لذلك.
سيتم استخدام هذه التفاصيل للوصول إلى WordPress.
بعد الانتهاء من التثبيت، افتح الرابط "http://[عنوان IP للخادم]/wp-login.php"، أدخل تفاصيل الوصول، وقم بتسجيل الدخول إلى WordPress.
يجب أن ترى أحد قوالب WordPress على الصفحة الرئيسية.
تم الانتهاء من التكوين.
تفاصيل الوصول إلى WordPress:
- http://[server’s_ip_address]/wp-login.php
- تسجيل الدخول: wpadmin
- كلمة المرور: Qwe123