كيفية تثبيت وتكوين Phabricator على CentOS 7

Phabricator هي منصة تطوير برمجيات مفتوحة المصدر متقدمة يمكن استخدامها من أجل:

  • مراجعة وتدقيق الكود.
  • استضافة مستودعات Git / Hg / SVN.
  • تتبع الأخطاء.
  • إدارة المشاريع.
  • التواصل مع أعضاء الفريق.
  • والقيام بالمزيد!

بفضل ميزاته الوفيرة وأداءه الاستثنائي ، تزداد شعبية Phabricator في مجتمع البرمجيات مفتوحة المصدر.

في هذه المقالة ، سأوضح لك كيفية تثبيت Phabricator على مثيل خادم Vultr CentOS 7.

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

  • نشر مثيل خادم Vultr CentOS 7 من البداية ؛
  • قم بتسجيل الدخول من محطة SSH باستخدام مستخدم sudo غير الجذر.

الخطوة 1: تحديث النظام

قم بتحديث نظام CentOS 7 الخاص بك ، ثم أعد التشغيل:

yum update -y && shutdown -r now

بعد بدء تشغيل النظام ، قم بتسجيل الدخول كمستخدم غير جذري مع وصول sudo.

الخطوة 2: تثبيت MariaDB

قم بتثبيت خادم MariaDB:

sudo yum install mariadb mariadb-server

ابدأ وتمكين خدمة MariaDB:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

لأغراض أمنية ، قم بتشغيل أداة التثبيت الآمن MySQL:

sudo /usr/bin/mysql_secure_installation

أكمل هذه العملية وفقًا للتعليمات أدناه:

Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password:<your-password>
Re-enter new password:<your-password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

الخطوة 3: قم بتثبيت Apache

قم بتثبيت خادم الويب Apache باستخدام YUM:

sudo yum install httpd

قم بتعديل التكوين الافتراضي لتحسين الأمان:

sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf

ابدأ وتمكين خدمة Apache:

sudo systemctl start httpd.service
sudo systemctl enable httpd.service

الخطوة 4: تثبيت PHP

تثبيت PHP والإضافات الضرورية:

sudo yum install php php-mysqli php-mbstring php-gd php-curl php-cli php-common php-process

الخطوة 5: تثبيت git

sudo yum install git

الخطوة 6: تنزيل وتثبيت Phabricator

cd ~
mkdir phabricator
cd phabricator
git clone https://github.com/phacility/libphutil.git
git clone https://github.com/phacility/arcanist.git
git clone https://github.com/phacility/phabricator.git
cd ~
sudo chown -R apache: ~/phabricator
sudo mv ~/phabricator /var/www/html

الخطوة 7: إعداد مضيف افتراضي لـ Phabricator

sudo vi /etc/httpd/conf.d/phabricator.conf

قم بتعبئة مقطع التعليمات البرمجية التالي:

ملاحظة: تحتاج إلى استبدال [email protected]، phabricator.example.com، www.phabricator.example.com، /var/log/httpd/phabricator.example.com-error_log، و /var/log/httpd/phabricator.example.com-access_logمع القيم الخاصة بك.

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html/phabricator/phabricator/webroot/
    ServerName phabricator.example.com
    ServerAlias www.phabricator.example.com
    RewriteEngine on
    RewriteRule ^/rsrc/(.*)     -                       [L,QSA]
    RewriteRule ^/favicon.ico   -                       [L,QSA]
    RewriteRule ^(.*)$          /index.php?__path__=$1  [B,L,QSA]
    <Directory /var/www/html/phabricator/phabricator/webroot/>
        AllowOverride All
    </Directory>
    ErrorLog /var/log/httpd/phabricator.example.com-error_log
    CustomLog /var/log/httpd/phabricator.example.com-access_log common
</VirtualHost>

احفظ واخرج:

:wq

أعد تشغيل خدمة Apache من أجل تنفيذ التعديلات الخاصة بك:

sudo systemctl restart httpd.service

الخطوة 8: إعداد بيانات اعتماد MariaDB لـ Phabricator

قبل أن تتمكن من استخدام Phabricator ، تحتاج إلى إعداد بيانات اعتماد MariaDB:

cd /var/www/html/phabricator/phabricator/
sudo ./bin/config set mysql.host localhost
sudo ./bin/config set mysql.port 3306
sudo ./bin/config set mysql.user root
sudo ./bin/config set mysql.pass <your-MySQL-root-password>

مخططات Phabricator السكان:

./bin/storage upgrade

أثناء هذه العملية ، تحتاج إلى إدخال "ص" مرتين:

Before running storage upgrades, you should take down the Phabricator web
interface and stop any running Phabricator daemons (you can disable this
warning with --force).

    Are you ready to continue? [y/N] y

...

MySQL needs to copy table data to make some adjustments, so these migrations may take some time.

    Fix these schema issues? [y/N] y

الخطوة 9: تعديل قواعد جدار الحماية وإعداد حساب مسؤول Phabricator

تحتاج إلى السماح بحركة المرور الواردة على منفذ HTTP الافتراضي 80:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

ثم استخدم متصفح الويب الخاص بك لزيارة:

http://<your-Vultr-server-IP>

سيتم تقديمك مع صفحة تسجيل Phabricator على الويب. إنشاء حساب مسؤول للإدارة اليومية.

الآن ، دعنا نلقي نظرة على كيفية تكوين Phabricator.

الخطوة 10: إصلاح مشكلات الإعداد التي لم يتم حلها

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

المشكلة 1: لم يتم تكوين URI الأساسي

انقر على الرابط "Base URI Not Configured" للدخول إلى صفحة تفاصيل المشكلة التي يمكنك من خلالها معرفة المزيد حول هذه المشكلة.

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

cd /var/www/html/phabricator/phabricator/
sudo ./bin/config set phabricator.base-uri 'http://<your-Vultr-server-IP>'

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

المشكلة 2: عدم تكوين موفري المصادقة

انقر على الرابط "لم تتم تهيئة موفري المصادقة" للدخول إلى صفحة تفاصيل المشكلة.

لإصلاح هذه المشكلة ، تحتاج إلى تحديد موفر المصادقة.

انقر على رابط "تطبيق المصادقة" ثم الزر "+ إضافة موفر" للدخول إلى صفحة "إضافة مصادقة". اختر موفر المصادقة المناسب ، ثم انقر فوق الزر "متابعة". هنا اخترت "اسم المستخدم / كلمة المرور".

في صفحة "إضافة موفر مصادقة: اسم المستخدم / كلمة المرور" ، يمكنك مراجعة الإعدادات الأكثر تفصيلاً ، ثم النقر فوق الزر "إضافة موفر".

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

القضية 3: Daemons Phabricator لا تعمل

انقر على رابط "Phabricator Daemons Are Not Running" لإدخال صفحة التفاصيل.

من أجل حل هذه المشكلة ، قم بتشغيل الأمر أدناه على محطة SSH الخاصة بك:

cd /var/www/html/phabricator/phabricator/
./bin/phd start

انقر فوق الزر "إعادة تحميل الصفحة" لتأكيد النتيجة.

المشكلة 4: post_max_sizeلم يتم تكوين PHP

قم بتشغيل الأوامر التالية على طرف SSH لإصلاح هذه المشكلة:

sudo sed -i "s/post_max_size = 8M/post_max_size = 32M/" /etc/php.ini
sudo systemctl restart httpd.service

انقر فوق الزر "إعادة تحميل الصفحة" لتأكيد تعديلاتك.

المسألة 5-10: القضايا المتعلقة الخلية

هناك ست قضايا متعلقة بـ MySQL في المجموع:

  • MySQL الصغيرة " الحزمة القصوى المسموح بها "
  • لم يتم تعيين وضع MySQL STRICT ALL TABLES
  • يستخدم MySQL ملف Stopword الافتراضي
  • يستخدم MySQL الحد الأدنى الافتراضي لطول الكلمة
  • يستخدم MySQL بناء الجملة المنطقي الافتراضي
  • قد يعمل MySQL ببطء

من باب الراحة ، فلنصلحها دفعة واحدة.

على طرف SSH الخاص بك ، قم بتحرير ملف تكوين MySQL مع vi:

sudo vi /etc/my.cnf

تحت الخطوط الثلاثة في الأعلى:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

أضف الأسطر الستة أدناه:

max_allowed_packet=32M
sql_mode=STRICT_ALL_TABLES
ft_stopword_file=/var/www/html/phabricator/phabricator/resources/sql/stopwords.txt
ft_min_word_len=3
ft_boolean_syntax=' |-><()~*:""&^'
innodb_buffer_pool_size=1600M        # about 40% of your system memory

تحذير: أنت بحاجة إلى تعيين حجم تجمع المخزن المؤقت Innodb المناسب وفقًا لحجم الخادم الخاص بك. عادة ، يجب أن يكون حجم تجمّع المخزن المؤقت Innodb حوالي 40٪ من مقدار ذاكرة جهازك. على سبيل المثال ، إذا كنت تستخدم جهازًا بذاكرة 4G ، فسيكون حجم مجموعة التخزين المؤقت Innodb المعقول 1600M. في حالة استخدام جهاز به ذاكرة صغيرة (مثل 768 ميجا) ، قد تحتاج إلى تعيين حجم أقل من 40٪ من حجم ذاكرة جهازك (على سبيل المثال 220 ميجا) لتوفير المزيد من الذاكرة للنظام.

احفظ واخرج:

:wq

أعد تشغيل خدمة MariaDB:

sudo systemctl restart mariadb.service

أخيرًا ، قم بتشغيل الأمر التالي:

mysql -u root -p -e "REPAIR TABLE phabricator_search.search_documentfield"

انقر فوق الزر "إعادة تحميل الصفحة" لفحص جهودك.

المسألة 11: تثبيت Pygments لتحسين تسليط الضوء على بناء الجملة

في CentOS 7 ، تم تثبيت Pygments ولكن لم يتم تمكينه افتراضيًا ، تحتاج إلى تمكينه يدويًا:

انقر فوق الارتباط: تحرير "pygments.enabled" ، اختر "استخدام Pygments" من القائمة المنسدلة "قيمة قاعدة البيانات" ، ثم انقر فوق الزر "حفظ إدخال التكوين".

المشكلة 12: لم يتم تكوين المنطقة الزمنية للخادم

تعديل php.iniالملف:

sudo vi /etc/php.ini

استبدل الخط:

;date.timezone =

مع:

date.timezone = America/Los_Angeles

احفظ واخرج:

:wq

ملاحظة: "America / Los_Angeles" هي قيمة المنطقة الزمنية للجهاز الخاص بي ، تحتاج إلى العثور على قيمة المنطقة الزمنية المناسبة لمثيل الخادم الخاص بك هنا .

أعد تشغيل خدمة Apache:

sudo systemctl restart httpd.service

انقر فوق الزر "إعادة تحميل الصفحة" لفحص النتيجة.

المسألة 13: لم يتم تكوين تخزين الملفات الكبيرة

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

المسألة 14: لم يتم تكوين مجال الملف البديل

لنفترض أنك قمت بإعداد نطاق ملف بديل أو شبكة CDN ، ثم في محطة SSH:

cd /var/www/html/phabricator/phabricator/
sudo ./bin/config set security.alternate-file-domain <https://files.example.com>

انقر فوق الزر "إعادة تحميل الصفحة" لفحص النتيجة.

المسألة 15: مسار محلي مستودع مفقود

استخدم الأوامر التالية لحل هذه المشكلة:

sudo mkdir /var/repo
sudo chown apache: /var/repo

انقر فوق الزر "إعادة تحميل الصفحة" لفحص النتيجة.

العدد 16: ملحق PHP "APC" غير مثبت

sudo yum install php-pear php-devel httpd-devel pcre-devel gcc make
sudo pecl install apc

أثناء عملية تثبيت APC ، اضغط دائمًا على المفتاح Enter لاستخدام الخيار الافتراضي.

sudo vi /etc/php.ini

أضف الأسطر الأربعة إلى نهاية الملف:

extension=apc.so
apc.write_lock = On
apc.slam_defense = Off
apc.stat = Off

احفظ واخرج:

:wq

أعد تشغيل خدمة Apache:

sudo systemctl restart httpd.service

انقر فوق الزر "إعادة تحميل الصفحة" للتحقق من النتيجة.

هذا كل شئ. الترميز سعيدة!



Leave a Comment

كيفية تثبيت وتكوين CyberPanel على خادم CentOS 7 الخاص بك

كيفية تثبيت وتكوين CyberPanel على خادم CentOS 7 الخاص بك

استخدام نظام مختلف؟ مقدمة تعد CyberPanel واحدة من أولى لوحات التحكم في السوق مفتوحة المصدر وتستخدم OpenLiteSpeed. ما هذا

كيفية تثبيت CMS أكتوبر على CentOS 7

كيفية تثبيت CMS أكتوبر على CentOS 7

أكتوبر هو نظام إدارة محتوى مفتوح المصدر يعتمد على Laravel PHP Framework. مع واجهة أنيقة وبنية وحدات موجزة

قم بتثبيت RockMongo على CentOS 7

قم بتثبيت RockMongo على CentOS 7

RockMongo هي أداة إدارة MongoDB على الويب تشبه أداة إدارة MySQL: phpMyAdmin. سيغطي هذا البرنامج التعليمي عملية التثبيت

كيفية نشر Lets Chat Server على CentOS 7

كيفية نشر Lets Chat Server على CentOS 7

Lets Chat هو تطبيق دردشة مفتوح المصدر مصمم لتوفير خدمة الرسائل ذاتية الاستضافة للفرق الصغيرة. يعتمد Lets Chat على NodeJS و MongoDB

كيفية تثبيت أداة إدارة مشروع Taiga على CentOS 7

كيفية تثبيت أداة إدارة مشروع Taiga على CentOS 7

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

كيفية تثبيت المجدول المحجوز على CentOS 7

كيفية تثبيت المجدول المحجوز على CentOS 7

استخدام نظام مختلف؟ المتطلبات الأساسية مثيل خادم Vultr CentOS 7. مستخدم sudo. الخطوة 1: تحديث النظام أولاً ، قم بتحديث خادم النظام الخاص بك إلى th

تثبيت Netdata على CentOS 7

تثبيت Netdata على CentOS 7

استخدام نظام مختلف؟ Netdata هي نجمة صاعدة في مجال مراقبة مقاييس النظام في الوقت الفعلي. مقارنة بالأدوات الأخرى من نفس النوع ، Netdata:

كيفية تثبيت DreamFactory Open Source على CentOS 7

كيفية تثبيت DreamFactory Open Source على CentOS 7

DreamFactory هو برنامج مفتوح المصدر يمكنه تحويل أي قاعدة بيانات إلى منصة RESTful API. يمكن نشر DreamFactory على منصات مختلفة. في ثي

كيفية تثبيت خادم Starbound على CentOS 7

كيفية تثبيت خادم Starbound على CentOS 7

استخدام نظام مختلف؟ في هذا البرنامج التعليمي ، سأشرح لك كيفية إعداد خادم Starbound على CentOS 7. المتطلبات الأساسية يجب أن تمتلك هذه اللعبة عليك

كيفية تثبيت Golang 1.13 على CentOS 8 و Ubuntu 18.04 و Debian 10 و Fedora 31

كيفية تثبيت Golang 1.13 على CentOS 8 و Ubuntu 18.04 و Debian 10 و Fedora 31

Go (تُعرف أيضًا باسم Golang) هي لغة برمجة مكتوبة بشكل ثابت ومجمعة على شكل حرف C تم تطويرها بواسطة Google. جعلت البساطة وتعدد الاستخدامات ب

كيفية تثبيت Django على CentOS 7

كيفية تثبيت Django على CentOS 7

Django هو إطار Python شائع لكتابة تطبيقات الويب. مع Django ، يمكنك بناء التطبيقات بشكل أسرع ، دون إعادة اختراع العجلة. إذا كنت تريد

قم بإعداد خادم SA-MP San Andreas متعدد اللاعبين على CentOS 6

قم بإعداد خادم SA-MP San Andreas متعدد اللاعبين على CentOS 6

مرحبًا بك في برنامج تعليمي Vultr آخر. هنا ، ستتعلم كيفية تثبيت خادم SAMP وتشغيله. تمت كتابة هذا الدليل الخاص بـ CentOS 6. المتطلبات الأساسية التي ستحتاج إليها

تثبيت Revive Adserver على CentOS 7

تثبيت Revive Adserver على CentOS 7

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

قم بتثبيت Elgg على CentOS 7

قم بتثبيت Elgg على CentOS 7

استخدام نظام مختلف؟ Elgg هو محرك تواصل اجتماعي مفتوح المصدر يسمح بإنشاء بيئات اجتماعية مثل الشبكات الاجتماعية في الحرم الجامعي

قم ببناء شبكتك الاجتماعية مع الشتات على CentOS 7

قم ببناء شبكتك الاجتماعية مع الشتات على CentOS 7

استخدام نظام مختلف؟ الشتات هو شبكة اجتماعية مفتوحة المصدر تدرك الخصوصية. في هذا البرنامج التعليمي ، ستتعلم كيفية إعداد وتكوين po Diaspora po

نشر Kubernetes مع Kubeadm على CentOS 7

نشر Kubernetes مع Kubeadm على CentOS 7

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

قم بإعداد Sails.js للتطوير على CentOS 7

قم بإعداد Sails.js للتطوير على CentOS 7

استخدام نظام مختلف؟ مقدمة Sails.js هو إطار عمل MVC لـ Node.js ، مشابه لـ Ruby on Rails. يجعل لتطوير التطبيقات الحديثة ver

كيفية تجميع Nginx من المصدر على CentOS 7

كيفية تجميع Nginx من المصدر على CentOS 7

استخدام نظام مختلف؟ يمكن استخدام NGINX كخادم HTTP / HTTPS أو خادم وكيل عكسي أو خادم وكيل بريد أو موازن تحميل أو فاصل TLS أو ذاكرة تخزين مؤقت

كيفية تثبيت dotCMS على CentOS 7

كيفية تثبيت dotCMS على CentOS 7

استخدام نظام مختلف؟ dotCMS هو نظام إدارة محتوى من فئة مفتوحة المصدر مفتوح بلغة جافا. أنه يحتوي تقريبا على كل ميزة مطلوبة ر

كيفية تثبيت PufferPanel (لوحة تحكم Minecraft المجانية) على CentOS 7

كيفية تثبيت PufferPanel (لوحة تحكم Minecraft المجانية) على CentOS 7

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

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

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

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد