كيفية إعداد قاعدة بيانات بعيدة لتحسين أداء الموقع باستخدام MySQL على Ubuntu 20.04

المقدمة

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

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

المتطلبات الأولية

قبل بدء هذا البرنامج التعليمي، ستحتاج إلى:

  • اثنان من خوادم Ubuntu 20.04. يجب أن يحتوي كل منهما على مستخدم غير جذري له امتيازات sudo وجدار حماية UFW ممكن، كما هو موضح في دليلنا إعداد الخادم الأولي مع Ubuntu 20.04. أحد هذه الخوادم سيستضيف خادم MySQL الخاص بك، وسيشار إليه باسم خادم قاعدة البيانات خلال هذا الدليل. سيتصل الخادم الآخر بخادم قاعدة البيانات الخاص بك عن بُعد وسيعمل كخادم ويب؛ وبالمثل، سيشار إليه باسم خادم الويب على مدى هذا الدليل.
  • على خادم قاعدة البيانات الخاص بك: تم تثبيت MySQL. اتبع كيفية تثبيت MySQL على Ubuntu 20.04 لإعداد هذا.
  • على خادم الويب الخاص بك: Nginx و PHP مثبتان. سيوجِّهك البرنامج التعليمي الخاص بنا كيفية تثبيت Linux و Nginx و MySQL و PHP (مجموعة LEMP) في Ubuntu 20.04 خلال العملية، ولكن لاحظ أنه يجب تخطي الخطوة رقم 2 من هذا البرنامج التعليمي، التي تركز على تثبيت MySQL، حيث ستقوم بتثبيت MySQL على خادم قاعدة البيانات الخاص بك.

الخطوة 1 — تكوين MySQL للاستماع لاتصالات عن بُعد على خادم قاعدة البيانات

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

يمكن إجراء معظم تغييرات تكوين خادم MySQL في ملف mysqld.cnf، والذي يتم تخزينه في الدليل /etc/mysql/mysql.conf.d/ افتراضيًا. قم بفتح هذا الملف على خادم قاعدة البيانات الخاص بك بامتيازات root في المحرر الذي تفضله. يستخدم هذا المثال nano:

  1. sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

يتم تقسيم هذا الملف إلى أقسام مشار إليها بتسميات بين أقواس مربعة ([ و ]). ابحث عن القسم المسمى mysqld:

/etc/mysql/mysql.conf.d/mysqld.cnf
. . .
[mysqld]
. . .

داخل هذا القسم، ابحث عن معلمة تسمى bind-address. هذا يخبر برنامج قاعدة البيانات أي عنوان شبكة يجب أن يستمع للاتصالات عليه.

بشكل افتراضي، يتم تعيين هذا على 127.0.0.1، مما يعني أن MySQL مضبوط للبحث عن اتصالات محلية فقط. تحتاج إلى تغيير هذا للإشارة إلى عنوان IP الخارجي حيث يمكن الوصول إلى خادمك.

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

/etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
. . .
bind-address = db_server_ip

نظرًا لأنك ستقوم بالاتصال بقاعدة البيانات عبر الإنترنت، فمن المُستحسن أن تتطلب اتصالات مشفرة للحفاظ على أمان بياناتك. إذا لم تقم بتشفير اتصال MySQL الخاص بك، فإن أي شخص على الشبكة يمكنه استشراف المعلومات الحساسة بين خوادم الويب وقاعدة البيانات الخاصة بك. لتشفير اتصالات MySQL، أضف السطر التالي بعد السطر bind-address الذي قمت للتو بتحديثه:

/etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
. . .
require_secure_transport = on
. . .

احفظ وأغلق الملف عند الانتهاء. إذا كنت تستخدم nano، فافعل ذلك عن طريق الضغط على CTRL + X، Y، ثم ENTER.

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

  1. sudo mysql_ssl_rsa_setup --uid=mysql

لإجبار MySQL على تحديث تكوينه وقراءة المعلومات الجديدة حول SSL، أعد تشغيل قاعدة البيانات:

  1. sudo systemctl restart mysql

للتأكد من أن الخادم يستمع الآن على الواجهة الخارجية، قم بتشغيل الأمر ss التالي:

  1. sudo ss -plunt | grep mysqld
Output
tcp LISTEN 0 70 127.0.0.1:33060 0.0.0.0:* users:(("mysqld",pid=4053,fd=22)) tcp LISTEN 0 151 db_server_ip:3306 0.0.0.0:* users:(("mysqld",pid=4053,fd=24))

ss يطبع إحصائيات حول نظام الشبكة الخاص بالخادم الخاص بك. يُظهر هذا الإخراج أنه يوجد عملية تسمى mysqld مرتبطة بـ db_server_ip على المنفذ 3306، وهو المنفذ الافتراضي لـ MySQL، مما يؤكد أن الخادم يستمع على الواجهة المناسبة.

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

  1. sudo ufw allow mysql

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

الخطوة 2 — إعداد قاعدة بيانات ووردبريس واعتمادات عن بُعد على خادم قاعدة البيانات

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

ابدأ بالاتصال بـ MySQL بوصفه المستخدم root لـ MySQL:

  1. sudo mysql

ملاحظة: إذا كان التحقق من الهوية بكلمة مرور مُمكّنًا، كما هو موضح في الخطوة 3 من درس MySQL التمهيدي السابق، فيجب عليك استخدام الأمر التالي بدلاً من ذلك للوصول إلى موجه MySQL:

  1. mysql -u root -p

بعد تشغيل هذا الأمر، سيُطلب منك كلمة مرور MySQL الجذرية، وبعد إدخالها، ستحصل على رمز جديد لـ mysql>.

من الرمز الخاص بـ MySQL، قم بإنشاء قاعدة بيانات ستستخدمها ووردبريس. قد يكون من المفيد إعطاء هذه القاعدة اسمًا معرفًا حتى تتمكن من التعرف عليها بسهولة لاحقًا. هنا، يُسمى wordpress:

  1. CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

الآن بعد أن قمت بإنشاء قاعدة البيانات الخاصة بك، يتعين عليك الآن إنشاء زوج من المستخدمين. قم بإنشاء مستخدم محلي فقط ومستخدم عن بعد مرتبط بعنوان IP لخادم الويب.

أولاً، قم بإنشاء مستخدمك المحلي، local_db_user، واجعل هذا الحساب يُطابق محاولات الاتصال المحلية فقط باستخدام localhost في الإعلان:

  1. CREATE USER 'local_db_user'@'localhost' IDENTIFIED BY 'password';

ثم قم بمنح هذا الحساب الوصول الكامل إلى قاعدة البيانات wordpress:

  1. GRANT ALL PRIVILEGES ON wordpress.* TO 'local_db_user'@'localhost';

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

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

  1. CREATE USER 'remote_user'@'web_server_ip' IDENTIFIED BY 'password';

بعد إنشاء حسابك عن بُعد، قم بمنحه نفس الامتيازات كما في حسابك المحلي:

  1. GRANT ALL PRIVILEGES ON wordpress.* TO 'remote_user'@'web_server_ip';

وأخيرًا، قم بتفريغ الامتيازات حتى يعلم MySQL أن يبدأ في استخدامها:

  1. FLUSH PRIVILEGES;

ثم اخرج من موجه MySQL عن طريق كتابة:

  1. exit

الآن بعد أن قمت بإعداد قاعدة بيانات جديدة ومستخدم ممكّن للوصول عن بُعد، يمكنك المضي قدمًا لاختبار ما إذا كنت قادرًا على الاتصال بقاعدة البيانات من خادم الويب الخاص بك.

الخطوة 3 – اختبار الاتصالات البعيدة والمحلية

قبل المتابعة، من الأفضل التحقق من الاتصال بقاعدة البيانات الخاصة بك من كل من الجهاز المحلي – خادم قاعدة البيانات الخاص بك – ومن خادم الويب الخاص بك.

أولاً، اختبر الاتصال المحلي من خادم قاعدة البيانات الخاص بك عن طريق محاولة تسجيل الدخول باستخدام حسابك الجديد:

  1. mysql -u local_db_user -p

عندما يُطلب منك ذلك، قم بإدخال كلمة المرور التي قمت بإعدادها لهذا الحساب.

إذا تم منحك موجه MySQL، فإن الاتصال المحلي ناجح. يمكنك الخروج مرة أخرى عن طريق كتابة:

  1. exit

بعد ذلك، قم بتسجيل الدخول إلى خادم الويب الخاص بك لاختبار الاتصالات البعيدة:

  1. ssh remote_user@web_server_ip

ستحتاج إلى تثبيت بعض أدوات العميل لـ MySQL على خادم الويب الخاص بك للوصول إلى قاعدة البيانات عن بُعد. أولاً، قم بتحديث ذاكرة التخزين المؤقت المحلية إذا لم تفعل ذلك مؤخرًا:

  1. sudo apt update

ثم قم بتثبيت أدوات العميل لـ MySQL:

  1. sudo apt install mysql-client

بعد ذلك، قم بالاتصال بخادم قاعدة البيانات الخاص بك باستخدام الصيغة التالية:

  1. mysql -u remote_user -h db_server_ip -p

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

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

  1. status

إذا كان الاتصال يستخدم بالفعل SSL، ستشير السطر “SSL:” إلى ذلك، كما هو موضح هنا:

Output
-------------- mysql Ver 8.0.29-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu)) Connection id: 14 Current database: Current user: remote_user@web_server_ip SSL: Cipher in use is TLS_AES_256_GCM_SHA384 Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 8.0.29-0ubuntu0.20.04.2 (Ubuntu) Protocol version: 10 Connection: db_server_ip via TCP/IP Server characterset: utf8mb4 Db characterset: utf8mb4 Client characterset: utf8mb4 Conn. characterset: utf8mb4 TCP port: 3306 Binary data as: Hexadecimal Uptime: 1 hour 8 min 28 sec Threads: 2 Questions: 69 Slow queries: 0 Opens: 206 Flush tables: 3 Open tables: 125 Queries per second avg: 0.016 --------------

بعد التحقق من أنك يمكنك الاتصال عن بُعد، اخرج من سطر الأوامر:

  1. exit

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

لاحظ أنه قبل تشغيل الأمر التالي لمحاولة الاتصال، قد تحتاج إلى تثبيت أدوات عميل MySQL كما فعلت سابقًا:

  1. mysql -u wordpressuser -h db_server_ip -p

يجب أن لا يتم الانتهاء من هذا بنجاح، ويجب أن يقوم بإرجاع خطأ مشابه لهذا:

Output
ERROR 1130 (HY000): Host '203.0.113.12' is not allowed to connect to this MySQL server

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

بعد اختبار الاتصال البعيد بنجاح، يمكنك المضي قدمًا في تثبيت ووردبريس على خادم الويب الخاص بك.

الخطوة 4 — تحضير خادم الويب لتثبيت ووردبريس

إذا كنت قد اتبعت البرامج التعليمية الأساسية، يجب أن تكون قد قمت بتثبيت كل من Nginx و PHP. يستفيد ووردبريس، والعديد من الإضافات التابعة له، من العديد من الامتدادات الإضافية لـ PHP. قبل تثبيت ووردبريس على خادم الويب الخاص بك، قم بتجهيز الخادم الخاص بك عن طريق تثبيت بعض هذه الامتدادات للاستخدام مع ووردبريس:

  1. sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

ملاحظة: لكل إضافة في ووردبريس مجموعتها الخاصة من المتطلبات. قد تتطلب بعضها تثبيت حزم إضافية للامتدادات في PHP. تحقق من وثائق الإضافة الخاصة بك لاكتشاف متطلباتها في PHP. إذا كانت متاحة، يمكن تثبيتها باستخدام apt كما في المثال السابق.

عندما تنتهي من تثبيت الامتدادات، أعد تشغيل عملية PHP-FPM بحيث يمكن لمعالج PHP الجاري الاستفادة من الميزات التي تم تثبيتها حديثًا:

  1. sudo systemctl restart php7.4-fpm

بعد ذلك، قم بإجراء بعض التعديلات على ملفات كتل الخادم الخاصة بـ Nginx. بناءً على البرامج التعليمية الأساسية، يجب أن يكون لديك ملف تكوين لموقعك في الدليل /etc/nginx/sites-available/. يجب أيضًا تكوينه للرد على اسم النطاق أو عنوان IP الخاص بخادمك وحمايته بشهادة TLS/SSL. /etc/nginx/sites-available/your_domain يُستخدم كمثال للدليل هنا. قم بتعويض المسار إلى ملف التكوين الخاص بك حسب الاقتضاء.

بالإضافة إلى ذلك، سيتم استخدام /var/www/your_domain كدليل رئيسي في هذا المثال لتثبيت ووردبريس. مرة أخرى، استخدم جذر المستند المحدد في تكوينك الخاص.

ملاحظة: قد تكون تستخدم تكوين الافتراضي /etc/nginx/sites-available/default مع /var/www/html كجذر للمستند. هذا مقبول إذا كنت ستستضيف موقع ويب واحد فقط على هذا الخادم. إذا لم يكن الأمر كذلك، فمن الأفضل تقسيم التكوين الضروري إلى قطع منطقية، ملف واحد لكل موقع.

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

  1. sudo nano /etc/nginx/sites-available/your_domain

Dentro de este bloque del servidor, agregue unos bloques de ubicación. Comience creando bloques de ubicación de coincidencia exacta para solicitudes a /favicon.ico y /robots.txt, ambos de los cuales no desea registrar solicitudes.

Esto lo hará utilizando una ubicación de expresión regular para que coincida con cualquier solicitud de archivos estáticos, desactive el registro de estas solicitudes y las marcará como altamente cachéables, ya que estos son recursos típicamente costosos de servir. Puede ajustar esta lista de archivos estáticos para contener cualquier otra extensión de archivo que su sitio pueda usar:

/etc/nginx/sites-available/your_domain
server {
    server_name your_domain www.your_domain;
    root /var/www/your_domain;

    index index.html index.htm index.php;

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
    . . .
}

Dentro del bloque de location / existente, puede ajustar la lista de try_files. Primero, comente la configuración predeterminada agregando un signo de numeral (#) al principio de la primera línea. Luego, agregue las siguientes líneas:

/etc/nginx/sites-available/your_domain
server {
    . . .
    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }
    . . .
}

Con esta nueva línea en su configuración, en lugar de devolver un error 404 como opción predeterminada, se pasa el control al archivo index.php con los argumentos de la solicitud.

إجمالاً، يجب أن يكون الجزء العلوي من ملفك مشابهًا لهذا:

/etc/nginx/sites-available/your_domain
server {
    server_name your_domain www.your_domain;
    root /var/www/your_domain;

    index index.html index.htm index.php;

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }

    location / {
       # try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }

  ...
}

عند الانتهاء، قم بحفظ الملف وإغلاقه.

تحقق من تكوينك لأخطاء الصياغة عن طريق كتابة:

  1. sudo nginx -t

إذا لم يتم الإبلاغ عن أخطاء، أعد تحميل Nginx عن طريق كتابة:

  1. sudo systemctl reload nginx

بعد تجهيز خادم الويب الخاص بك، أنت الآن جاهز لتثبيت ووردبريس.

الخطوة 5 – تثبيت ووردبريس على خادم الويب

لتوضيح إمكانيات خادم MySQL الجديد قابل للتحكم عن بعد، ستقوم بمراجعة عملية تثبيت وتكوين ووردبريس – نظام إدارة المحتوى الشهير – على خادم الويب الخاص بك. بعد تكوين برنامج الخادم الخاص بك، يمكنك تنزيل ووردبريس. لأسباب أمنية، من المستحسن دائمًا الحصول على أحدث إصدار من ووردبريس مباشرةً من موقع المشروع.

أولاً، قم بالتغيير إلى دليل قابل للكتابة (مثل /tmp مؤقتًا):

  1. cd /tmp

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

  1. curl -LO https://wordpress.org/latest.tar.gz

استخرج الملف المضغوط لإنشاء هيكل دليل ووردبريس:

  1. tar xzvf latest.tar.gz

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

  1. cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

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

  1. sudo cp -a /tmp/wordpress/. /var/www/your_domain

مع وجود ملفاتك في مكانها، قم بتعيين الملكية لمستخدم ومجموعة www-data. هذا هو المستخدم والمجموعة التي يعمل Nginx بهما، وسيحتاج Nginx إلى قراءة وكتابة ملفات ووردبريس لتقديم الموقع وأداء التحديثات التلقائية:

  1. sudo chown -R www-data:www-data /var/www/your_domain

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

الخطوة 6 — إعداد ملف تكوين ووردبريس

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

للحصول على قيم آمنة من مولد المفاتيح السرية في ووردبريس، اكتب:

  1. curl -s https://api.wordpress.org/secret-key/1.1/salt/

سوف تتلقى قيم فريدة تشبه الناتج المشابه للمثال التالي:

تحذير! من المهم أن تطلب قيم فريدة خاصة بك في كل مرة. لا تنسخ القيم المعروضة هنا!

Output
define('AUTH_KEY', 'L4|2Yh(giOtMLHg3#] DO NOT COPY THESE VALUES %G00o|te^5YG@)'); define('SECURE_AUTH_KEY', 'DCs-k+MwB90/-E(=!/ DO NOT COPY THESE VALUES +WBzDq:7U[#Wn9'); define('LOGGED_IN_KEY', '*0kP!|VS.K=;#fPMlO DO NOT COPY THESE VALUES +&[%8xF*,18c @'); define('NONCE_KEY', 'fmFPF?UJi&(j-{8=$- DO NOT COPY THESE VALUES CCZ?Q+_~1ZU~;G'); define('AUTH_SALT', '@qA7f}2utTEFNdnbEa DO NOT COPY THESE VALUES t}Vw+8=K%20s=a'); define('SECURE_AUTH_SALT', '%BW6s+d:7K?-`C%zw4 DO NOT COPY THESE VALUES 70U}PO1ejW+7|8'); define('LOGGED_IN_SALT', '-l>F:-dbcWof%4kKmj DO NOT COPY THESE VALUES 8Ypslin3~d|wLD'); define('NONCE_SALT', '4J(<`4&&F (WiK9K#] DO NOT COPY THESE VALUES ^ZikS`es#Fo:V6');

هذه هي الأسطر التكوينية التي يمكنك لصقها مباشرة في ملف التكوين الخاص بك لتعيين مفاتيح آمنة. انسخ الإخراج الذي تلقيته الآن.

افتح ملف تكوين ووردبريس:

  1. sudo nano /var/www/your_domain/wp-config.php

ابحث عن القسم الذي يحتوي على القيم المثالية لتلك الإعدادات:

/var/www/your_domain/wp-config.php
. . .
define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');
. . .

احذف تلك الأسطر والصق القيم التي نسختها من سطر الأوامر:

/var/www/your_domain/wp-config.php
. . .
define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');
. . .

بعد ذلك، قم بتعديل بعض إعدادات اتصال قاعدة البيانات في بداية الملف. سيتعين عليك ضبط اسم قاعدة البيانات ومستخدم قاعدة البيانات، وكلمة المرور المرتبطة التي تم تكوينها داخل MySQL.

أدخل معلومات الاتصال لقاعدة البيانات البعيدة الخاصة بك. تذكر استخدام نفس عنوان IP وبيانات الاعتماد التي استخدمتها في اختبار قاعدة البيانات البعيدة الخاصة بك سابقًا:

/var/www/your_domain/wp-config.php
. . .
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'remote_user');

/** MySQL database password */
define('DB_PASSWORD', 'remote_user_password');

/** MySQL hostname */
define('DB_HOST', 'db_server_ip');
. . .

وأخيرًا، بعد السطر define( 'DB_COLLATE', '' );، أضف هذا السطر المظلل الذي يخبر ووردبريس باستخدام اتصال SSL إلى قاعدة بيانات MySQL الخاصة بك:

var/www/your_domain/wp-config.php
...
define( 'DB_COLLATE', '' );

define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);
...

احفظ وأغلق الملف.

مع تكوينك الجاهز، تم تثبيت ووردبريس وأنت الآن جاهز لتشغيل إعداده من خلال واجهة الويب.

الخطوة 7 — إعداد ووردبريس من خلال واجهة الويب

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

انتقل إلى اسم النطاق (أو عنوان IP العام) المرتبط بخادم الويب الخاص بك مع إضافة /wp-admin في نهايته:

http://your_domain.com/wp-admin

ستُطلب منك اختيار اللغة التي تود استخدامها:

بعد ذلك، ستصل إلى الصفحة الرئيسية لعملية الإعداد.

اختر اسمًا لموقعك على WordPress واختر اسم مستخدم. يُوصى باختيار شيء فريد وتجنب الأسماء الشائعة مثل “admin” لأسباب أمان. يتم إنشاء كلمة مرور قوية تلقائيًا. احفظ هذه الكلمة المرور أو اختر كلمة مرور قوية بديلة.

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

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

الاستنتاج

باتباع هذا الدليل، قمت بإعداد قاعدة بيانات MySQL لقبول الاتصالات المحمية بـ SSL من تثبيت WordPress عن بُعد. الأوامر والتقنيات المستخدمة في هذا الدليل تنطبق على أي تطبيق ويب مكتوب بأي لغة برمجة، ولكن تفاصيل التنفيذ المحددة ستختلف. راجع توثيق قاعدة البيانات الخاصة بتطبيقك أو لغتك للحصول على مزيد من المعلومات.

Source:
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-remote-database-to-optimize-site-performance-with-mysql-on-ubuntu-20-04