Як встановити OpenMeetings на Ubuntu 16.04

Apache OpenMeetings — це програма для веб-конференцій з відкритим кодом. Він написаний на Java і підтримує декілька серверів баз даних. Він надає багато функцій, таких як аудіо- та відеоконференції, спільний доступ до екрана, провідник файлів, систему модерації користувачів, приватні повідомлення та контакти, інтегрований календар для планування зустрічей та багато іншого. Ви також можете записувати сеанси конференцій. Він надає API SOAP/REST і кілька плагінів для легкої інтеграції з Moodle, Jira, Joomla, Confluence тощо.

Передумови

  • Примірник сервера Vultr Ubuntu 16.04 з принаймні 4 ГБ оперативної пам’яті.
  • Користувач sudo .
  • Доменне ім’я, спрямоване на сервер.

У цьому підручнику ми будемо використовувати 192.168.1.1 як загальнодоступну IP-адресу та meetings.example.com як доменне ім’я, спрямоване на екземпляр Vultr. Будь ласка, не забудьте замінити всі входження в прикладі IP-адреси та імені домену фактичними.

Оновіть свою базову систему за допомогою посібника Як оновити Ubuntu 16.04 . Після оновлення системи перейдіть до встановлення Java.

Встановіть Java

OpenMeetings написаний на Java, тому для роботи потрібне середовище виконання Java (JRE). Додайте репозиторій Ubuntu для Oracle Java 8.

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

Встановіть Java.

sudo apt -y install oracle-java8-installer

Перевірте версію Java.

java -version

Ви побачите наступний висновок.

user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

Встановіть шлях за замовчуванням для Java, встановивши наступний пакет.

sudo apt -y install oracle-java8-set-default

Ви можете перевірити, що JAVA_HOMEце встановлено, виконавши наступне.

echo $JAVA_HOME

Ви побачите подібний вихід.

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

Якщо ви не бачите жодного виводу, вам потрібно буде вийти з поточної оболонки та знову ввійти.

Встановити залежності

Встановіть бібліотеки ImageMagick і GhostScript.

sudo apt -y install imagemagick ghostscript libxt6 libxrender1

ImageMagick надає підтримку для завантаження зображень та імпорту їх на дошку. GhostScript дозволяє завантажувати PDF-файли на дошку.

Перевірте версію ImageMagick і GhostScript, щоб переконатися, що вони успішно встановлені.

user@vultr:~$ identify -version
Version: ImageMagick 6.8.9-9 Q16 x86_64 2017-07-31 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules OpenMP
Delegates: bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib

user@vultr:~$ ghostscript -v
GPL Ghostscript 9.18 (2015-10-05)
Copyright (C) 2015 Artifex Software, Inc.  All rights reserved.

Крім того, нам також потрібно буде встановити Apache OpenOffice або LibreOffice в систему. Установка будь-якого з них дозволить OpenMeetings імпортувати файли в формати документів Office , таких як .doc, .docx, .ppt, .pptx, або .xlx. У цьому підручнику ми встановимо Apache OpenOffice.

Перейдіть у тимчасовий каталог і завантажте пакет Apache OpenOffice для Ubuntu.

cd /tmp
wget https://downloads.sourceforge.net/project/openofficeorg.mirror/4.1.5/binaries/en-US/Apache_OpenOffice_4.1.5_Linux_x86-64_install-deb_en-US.tar.gz

Розпакуйте архів і встановіть усі пакети DEB.

tar xf Apache_OpenOffice_4.1.5_Linux_x86-64_install-deb_en-US.tar.gz
cd en-US/DEBS
sudo dpkg -i *.deb
sudo dpkg -i desktop-integration/openoffice4.1-debian-menus_4.1.5*.deb

Встановіть PPA для останньої версії FFmpeg.

sudo add-apt-repository --yes ppa:jonathonf/ffmpeg-3
sudo apt update

Встановіть FFmpeg і SoX.

sudo apt -y install ffmpeg sox

FFmpeg і SoX дозволять вам записувати зустрічі. Вони також допоможуть імпортувати мультимедійні файли, такі як .avi, .flv, .mov та .mp4 на дошку. Перевірте встановлення, перевіривши версії FFmpeg і SoX.

user@vultr:~$ sox --version
sox:      SoX v14.4.1

user@vultr:~$ ffmpeg -version
ffmpeg version 3.4.2-1~16.04.york0.2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.9) 20160609

Встановіть PostgreSQL

OpenMeetings підтримує декілька типів серверів баз даних, таких як MySQL, PostgreSQL, Apache Derby та Oracle. У цьому підручнику ми будемо використовувати PostgreSQL для розміщення бази даних OpenMeeting.

PostgreSQL - це об'єктно-реляційна система баз даних, відома своєю стабільністю та швидкістю. Сховище Ubuntu за замовчуванням містить стару версію PostgreSQL, тому додайте репозиторій PostgreSQL.

echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

Встановіть сервер бази даних PostgreSQL.

sudo apt -y install postgresql

Запустіть сервер PostgreSQL і ввімкніть його автоматичний запуск під час завантаження.

sudo systemctl start postgresql
sudo systemctl enable postgresql

Змініть пароль для користувача PostgreSQL за замовчуванням.

sudo passwd postgres

Увійдіть як користувач PostgreSQL.

sudo su - postgres

Створіть нового користувача PostgreSQL для користувача OpenMeetings.

createuser openmeetings

Ви можете використовувати будь-яке ім’я користувача замість openmeetings.

Перейдіть до оболонки PostgreSQL.

psql

Встановіть пароль для новоствореного користувача для бази даних OpenMeetings.

ALTER USER openmeetings WITH ENCRYPTED password 'DBPassword';

Замінити DBPassword надійним паролем.

Створіть нову базу даних для встановлення OpenMeetings.

CREATE DATABASE openmeetings OWNER openmeetings;

Вихід з psql оболонки.

\q

Перейти до sudo користувача.

exit

Збережіть файл і вийдіть з редактора.

Встановлення OpenMeetings

Оскільки всі необхідні залежності встановлено, створіть нового користувача для OpenMeetings. Для безпеки сервера рекомендується використовувати користувача без права root для запуску OpenMeetings.

sudo adduser --home /var/openmeetings --disabled-login --disabled-password --gecos "OpenMeetings User" openmeetings

The command above will also create the home directory of the openmeetings user in /var/openmeetings.

Check the Apache OpenMeetings download page to obtain the link to the latest available release. Download the OpenMeetings archive.

cd /tmp
wget http://www-eu.apache.org/dist/openmeetings/4.0.2/bin/apache-openmeetings-4.0.2.tar.gz

Extract the archive into the /var/openmeetings directory.

sudo tar xf apache-openmeetings-*.tar.gz -C /var/openmeetings

Provide ownership of the files to the OpenMeetings user we have created earlier.

sudo chown -R openmeetings:openmeetings /var/openmeetings

You can now start the application.

sudo su -s /bin/bash -c 'cd /var/openmeetings/ && sh red5.sh' openmeetings

You can now access http://192.168.1.1:5080/openmeetings in your favorite browser. You will see the welcome screen with instructions to install GhostScript.

Як встановити OpenMeetings на Ubuntu 16.04

Since we have already installed GhostScript, proceed further. On the next interface, you will be prompted to provide database server details. Select database type "PostgreSql" and provide your database server details that you configured during the PostgreSQL installation.

Як встановити OpenMeetings на Ubuntu 16.04

Click on the "Check" button and you will get the message: "Database check was successful". Provide your administrator account details and a group name in the next interface.

Як встановити OpenMeetings на Ubuntu 16.04

Configure the basic settings of your installation; such as to allow self-registration, email verification, and default language. Also, provide your SMTP server details. If you do not have an SMTP server ready, you can also provide the SMTP details later in the administrator dashboard.

Як встановити OpenMeetings на Ubuntu 16.04

You will be asked for the path to the binaries of different applications. Provide /usr/bin as the path for ImageMagick, FFmpeg, and SoX. If the application is providing errors for the path entered, then you can use which <binary_name> to find the absolute path to the binary. For example, which ffmpeg should give you /usr/bin/ffmpeg as output. Use /opt/openoffice4 as the path to the OpenOffice binaries.

Як встановити OpenMeetings на Ubuntu 16.04

You can skip the configuration on the next interface since we are going to use the default values. Finally, click the "Finish" button to install the application and write the database.

OpenMeetings is now installed on your server. To make it more production friendly, we will setup Systemd to manage the OpenMeetings server. We will also configure Nginx with a Let's Encrypt SSL as the secured reverse proxy to serve the application.

Setting up Systemd

It is recommended to set up a Systemd service unit to manage the application. This will ensure that the service is automatically started on boot time and failures.

Stop the OpenMeetings server either by pressing CTRL + C or by killing the shell of the openmeetings user.

sudo pkill -KILL -u openmeetings

Create a new Systemd unit file for OpenMeetings.

sudo nano /etc/systemd/system/openmeetings.service

Populate the file.

[Unit]
Description=OpenMeeting Service 
After=network.target

[Service]
Type=simple
User=openmeetings
WorkingDirectory=/var/openmeetings 
ExecStart=/var/openmeetings/red5.sh
Restart=always

[Install]
WantedBy=multi-user.target

Start the OpenMeetings server and enable it to automatically start at boot time.

sudo systemctl start openmeetings
sudo systemctl enable openmeetings

To check the status of the service, you can run the following.

sudo systemctl status openmeetings

You will see a similar output.

user@vultr:~$ sudo systemctl status openmeetings
● openmeetings.service - OpenMeeting Service
   Loaded: loaded (/etc/systemd/system/openmeetings.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2018-04-08 19:08:33 UTC; 52s ago
 Main PID: 8788 (java)
   CGroup: /system.slice/openmeetings.service
           └─8788 /usr/bin/java -Dred5.root=/var/openmeetings -Djava.security.debug=failure -Xms256m

Apr 08 19:08:40 vultr red5.sh[8788]: [INFO] [main] org.apache.catalina.core.StandardService - Starti
Apr 08 19:08:40 vultr red5.sh[8788]: Apr 08, 2018 7:08:40 PM org.apache.catalina.core.StandardEngine

...

Setup Nginx as a Reverse Proxy

За замовчуванням OpenMeetings прослуховує порт 5080. Якщо з’єднання між браузером і сервером не зашифровано за допомогою SSL, логіни та інша інформація буде надіслана за допомогою звичайного тексту. Це може бути потенційною загрозою, оскільки хтось, хто підслуховує мережу, може отримати інформацію. Щоб пом’якшити цю проблему, ми налаштуємо Nginx як зворотний проксі-сервер, який буде прослуховувати HTTPSпорт за замовчуванням і передаватиме всі запити на сервер OpenMeetings.

Встановіть Nginx.

sudo apt -y install nginx

Запустіть Nginx і ввімкніть його автоматичний запуск під час завантаження.

sudo systemctl start nginx
sudo systemctl enable nginx

Додайте сховище Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Установіть Certbot, який є клієнтською програмою для Let's Encrypt CA.

sudo apt -y install certbot

Примітка. Щоб отримати сертифікати від Let's Encrypt CA, домен, для якого мають бути створені сертифікати, має бути спрямований на сервер. Якщо ні, внесіть необхідні зміни в записи DNS домену та зачекайте, поки DNS пошириться, перш ніж знову надсилати запит на сертифікат. Certbot перевіряє авторитет домену перед наданням сертифікатів.

Згенеруйте сертифікати SSL.

sudo certbot certonly --webroot -w /var/www/html -d meetings.example.com

Згенеровані сертифікати, ймовірно, зберігатимуться в /etc/letsencrypt/live/meetings.example.com/. Сертифікат SSL буде збережено як, fullchain.pem а закритий ключ – як privkey.pem.

Термін дії сертифікатів Let's Encrypt закінчується через 90 днів, тому рекомендується налаштувати автоматичне оновлення сертифікатів за допомогою завдань Cron.

Відкрийте файл завдання cron.

sudo crontab -e

Додайте наступний рядок у кінці файлу.

30 5 * * * /usr/bin/certbot renew --quiet

Вищезазначене завдання cron виконуватиметься щодня о 5:30 ранку. Якщо термін дії сертифіката закінчився, його буде автоматично поновлено.

Створіть новий файл конфігурації для OpenMeetings.

sudo nano /etc/nginx/sites-available/openmeetings

Заповніть файл.

server {
    listen 80;
    server_name meetings.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name meetings.example.com;

    ssl_certificate           /etc/letsencrypt/live/meetings.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/meetings.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log  /var/log/nginx/openmeetings.access.log;

location / {
    proxy_pass            http://localhost:5080;        
    proxy_set_header    host $host;
    proxy_http_version  1.1;
    proxy_set_header upgrade $http_upgrade;         
    proxy_set_header connection "upgrade";     
    } 
}

Активуйте конфігурацію.

sudo ln -s /etc/nginx/sites-available/openmeetings /etc/nginx/sites-enabled/openmeetings

Перевірте наявність помилок у новому файлі конфігурації.

sudo nginx -t

Якщо ви бачите наведений нижче вихід, конфігурація безпомилкова.

user@vultr:~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Якщо ви отримали якусь помилку, обов’язково перевірте шлях до сертифікатів SSL. Перезапустіть веб-сервер Nginx, щоб змінити конфігурацію.

sudo systemctl restart nginx

Перш ніж ви зможете почати використовувати програму на захищеному SSL сайті, вам потрібно буде змінити конфігурацію в OpenMeetings. Увійдіть на свою адміністративну панель OpenMeetings і перейдіть до " Administration >> Configuration". У таблиці з ідентифікатором стовпців, ключем і значенням знайдіть application.base.url. Змініть його значення на https://meetings.example.com відповідно до вашого доменного імені. Збережіть конфігурацію, натиснувши піктограму збереження вище.

Як встановити OpenMeetings на Ubuntu 16.04

Перезапустіть службу OpenMeetings.

sudo systemctl restart openmeetings

Тепер ви можете перейти до https://meetings.example.com свого улюбленого веб-браузера та увійти, щоб використовувати програму.

Вітаємо, Apache OpenMeetings тепер встановлено на вашому сервері. Ви можете запросити своїх друзів і почати використовувати OpenMeetings для онлайн-конференцій.


Як встановити Microweber на CentOS 7

Як встановити Microweber на CentOS 7

Використання іншої системи? Microweber — це CMS та інтернет-магазин із відкритим вихідним кодом. Вихідний код Microweber розміщено на GitHub. Цей посібник покаже вам

Встановлення Microweber на Ubuntu 16.04

Встановлення Microweber на Ubuntu 16.04

Використання іншої системи? Microweber — це CMS та інтернет-магазин із відкритим вихідним кодом. Вихідний код Microweber розміщено на GitHub. Цей посібник покаже вам

Як встановити платформу електронної комерції Sylius на Ubuntu 18.04 LTS

Як встановити платформу електронної комерції Sylius на Ubuntu 18.04 LTS

Використання іншої системи? Sylius — сучасна платформа електронної комерції для PHP, заснована на Symfony Framework. Джерело Sylius знаходиться на GitHub. Цей посібник буде працювати

Як встановити Cezerin eCommerce на Ubuntu 18.04

Як встановити Cezerin eCommerce на Ubuntu 18.04

Cezerin — це прогресивний веб-додаток для електронної комерції з відкритим кодом, створений за допомогою React і Node.js. У цьому підручнику ви дізнаєтеся, як розгорнути Cezerin для Productio

Як встановити OpenMeetings на CentOS 7

Як встановити OpenMeetings на CentOS 7

Використання іншої системи? Apache OpenMeetings — це програма для веб-конференцій з відкритим кодом. Він написаний на Java і підтримує декілька серверів баз даних. я

Як встановити програму розсилки Mailtrain на Debian 9

Як встановити програму розсилки Mailtrain на Debian 9

Використання іншої системи? Mailtrain — це програма для розсилки інформаційних бюлетенів з відкритим вихідним кодом, створена на основі Node.js і MySQL/MariaDB. Джерело Mailtrains знаходиться на GitHub. Ті

Встановлення Akaunting на Fedora 28

Встановлення Akaunting на Fedora 28

Використання іншої системи? Akaunting — це безкоштовне програмне забезпечення для бухгалтерського обліку з відкритим кодом і онлайн, розроблене для малого бізнесу та фрілансерів. Він побудований дотепно

OpenBSD як рішення для електронної комерції з PrestaShop і Apache

OpenBSD як рішення для електронної комерції з PrestaShop і Apache

Вступ У цьому підручнику демонструється OpenBSD як рішення для електронної комерції з використанням PrestaShop і Apache. Apache потрібен, оскільки PrestaShop має складну UR

Як встановити додаток Mailtrain Newsletter на Ubuntu 16.04

Як встановити додаток Mailtrain Newsletter на Ubuntu 16.04

Використання іншої системи? Mailtrain — це програма для розсилки інформаційних бюлетенів з відкритим вихідним кодом, створена на основі Node.js і MySQL/MariaDB. Джерело Mailtrains знаходиться на GitHub. Ті

Як встановити InvoicePlane на Fedora 28

Як встановити InvoicePlane на Fedora 28

Використання іншої системи? InvoicePlane — це безкоштовна програма для виставлення рахунків з відкритим кодом. Його вихідний код можна знайти в цьому репозиторії Github. Цей довідник

Як встановити osTicket на CentOS 7

Як встановити osTicket на CentOS 7

Використання іншої системи? osTicket — це система продажу квитків з відкритим вихідним кодом. Вихідний код osTicket відкрито розміщено на Github. У цьому підручнику

Як встановити Open Web Analytics на CentOS 7

Як встановити Open Web Analytics на CentOS 7

Використання іншої системи? Open Web Analytics (OWA) — це програма веб-аналітики з відкритим кодом, яку можна використовувати для відстеження та аналізу того, як люди використовують ваш веб-сайт.

Як встановити Osclass на Ubuntu 18.04 LTS

Як встановити Osclass на Ubuntu 18.04 LTS

Використання іншої системи? Osclass — це проект з відкритим кодом, який дозволяє легко створювати сайт із оголошеннями без будь-яких технічних знань. Його джерело

Як встановити OpenMeetings на Ubuntu 16.04

Як встановити OpenMeetings на Ubuntu 16.04

Використання іншої системи? Apache OpenMeetings — це програма для веб-конференцій з відкритим кодом. Він написаний на Java і підтримує декілька серверів баз даних. я

Як встановити X-Cart 5 на Fedora 31

Як встановити X-Cart 5 на Fedora 31

Використання іншої системи? X-Cart — це надзвичайно гнучка платформа електронної комерції з відкритим вихідним кодом з безліччю функцій та інтеграцій. Вихідний код X-Cart — хост

Встановлення Microweber на FreeBSD 12

Встановлення Microweber на FreeBSD 12

Використання іншої системи? Вступ Microweber — це CMS та інтернет-магазин із відкритим вихідним кодом. Вихідний код Microweber розміщено на GitHub. Цей довідник

Як встановити X-Cart 5 на Debian 10

Як встановити X-Cart 5 на Debian 10

Використання іншої системи? X-Cart — це надзвичайно гнучка платформа електронної комерції з відкритим вихідним кодом з безліччю функцій та інтеграцій. Вихідний код X-Cart — хост

Як встановити Matomo Analytics на Fedora 28

Як встановити Matomo Analytics на Fedora 28

Використання іншої системи? Matomo (раніше Piwik) — це аналітична платформа з відкритим вихідним кодом, відкрита альтернатива Google Analytics. Джерело Matomo розміщено o

Як встановити Zammad 2.0 на CentOS 7

Як встановити Zammad 2.0 на CentOS 7

Використання іншої системи? Zammad — це служба підтримки та продажу квитків з відкритим кодом, розроблена для команд підтримки клієнтів. З Zammad, обслуговування клієнтів

Як встановити Zammad 2.0 на Ubuntu 16.04 LTS

Як встановити Zammad 2.0 на Ubuntu 16.04 LTS

Використання іншої системи? Zammad — це служба підтримки та продажу квитків з відкритим кодом, розроблена для команд підтримки клієнтів. З Zammad, обслуговування клієнтів

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше