Встановіть Plesk на CentOS 7
Використання іншої системи? Plesk — це власна панель керування веб-хостом, яка дозволяє користувачам адмініструвати свої персональні та/або клієнтські веб-сайти, бази даних
Matrix – це відкритий стандартний протокол зв’язку для децентралізованого спілкування в реальному часі. Matrix реалізовано як домашні сервери, які поширюються через Інтернет; отже, немає єдиної точки контролю чи відмови. Matrix надає API RESTful HTTP для створення та керування розподіленими серверами чату, що включає надсилання та отримання повідомлень, запрошення та керування учасниками чат-кімнати, підтримку облікових записів користувачів та надання розширених функцій чату, таких як VoIP та відеодзвінки тощо. Matrix також встановлює безпечна синхронізація між домашніми серверами, які розподілені по всьому світу.
Synapse — це реалізація домашнього сервера Matrix, написана командою Matrix. Екосистема Matrix складається з мережі багатьох об’єднаних домашніх серверів, розподілених по всьому світу. Користувач Matrix використовує клієнт чату для підключення до домашнього сервера, який, у свою чергу, підключається до мережі Matrix. Homeserver зберігає історію чату та інформацію для входу цього конкретного користувача.
У цьому підручнику ми будемо використовувати matrix.example.com
як доменне ім’я, яке використовується для Matrix Synapse. Замініть усі входження на matrix.example.com
ваше фактичне доменне ім’я, яке ви хочете використовувати для свого домашнього сервера Synapse.
Оновіть свою базову систему за допомогою посібника Як оновити CentOS 7 . Після оновлення системи перейдіть до встановлення Python.
Для роботи Matrix Synapse потрібен Python 2.7. Python 2.7 попередньо встановлено у всіх екземплярах сервера CentOS. Ви можете перевірити встановлену версію Python.
python -V
Ви повинні отримати подібний результат.
[user@vultr ~]$ python -V
Python 2.7.5
Зміна версії Python за замовчуванням може порушити диспетчер сховища YUM. Однак, якщо вам потрібна остання версія Python, ви можете зробити альтернативне встановлення, не замінюючи Python за замовчуванням.
Встановіть пакунки в Development tools
групі, необхідні для компіляції файлів інсталятора.
sudo yum groupinstall -y "Development tools"
Встановіть ще кілька необхідних залежностей.
sudo yum -y install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel redhat-rpm-config python-virtualenv libffi-devel openssl-devel
Встановіть Python pip. Pip — це менеджер залежностей для пакетів Python.
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Створіть віртуальне середовище для вашої програми Synapse. Віртуальне середовище Python використовується для створення ізольованого віртуального середовища для проекту Python. Віртуальне середовище містить власні каталоги встановлення і не ділиться бібліотеками з глобальними та іншими віртуальними середовищами.
sudo virtualenv -p python2.7 /opt/synapse
Надайте поточному користувачеві право власності на каталог.
sudo chown -R $USER:$USER /opt/synapse/
Тепер активуйте віртуальне середовище.
source /opt/synapse/bin/activate
Переконайтеся, що у вас є остання версія pip
та setuptools
.
pip install --upgrade pip
pip install --upgrade setuptools
Встановіть останню версію Synapse за допомогою pip.
pip install https://github.com/matrix-org/synapse/tarball/master
Виконання наведеної вище команди займе деякий час, оскільки вона витягує та встановлює останню версію Synapse та всі залежності зі сховища Github.
Synapse використовує SQLite як базу даних за замовчуванням. SQLite зберігає дані в базі даних, яка зберігається у вигляді плоского файлу на диску. Використання SQLite дуже просте, але не рекомендується для виробництва, оскільки воно дуже повільне в порівнянні з PostgreSQL.
PostgreSQL - це об'єктно-реляційна система баз даних. Вам потрібно буде додати репозиторій PostgreSQL у вашу систему, оскільки програма недоступна в сховищі YUM за замовчуванням.
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Встановіть сервер бази даних PostgreSQL.
sudo yum -y install postgresql96-server postgresql96-contrib
Ініціалізуйте базу даних.
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
Відредагуйте, /var/lib/pgsql/9.6/data/pg_hba.conf
щоб увімкнути автентифікацію на основі MD5.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Знайдіть наступні рядки та змініть peer
на trust
та idnet
на md5
.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 idnet
# IPv6 local connections:
host all all ::1/128 idnet
Після оновлення конфігурація має виглядати так.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Запустіть сервер PostgreSQL і ввімкніть його автоматичний запуск під час завантаження.
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Змініть пароль для користувача PostgreSQL за замовчуванням.
sudo passwd postgres
Увійти.
sudo su - postgres
Створіть нового користувача PostgreSQL для Synapse.
createuser synapse
PostgreSQL надає psql
оболонку для виконання запитів до бази даних. Перейдіть до оболонки PostgreSQL, запустивши.
psql
Встановіть пароль для щойно створеного користувача для бази даних Synapse.
ALTER USER synapse WITH ENCRYPTED password 'DBPassword';
Замініть DBPassword
пароль надійним і запишіть його, оскільки ми використаємо пароль пізніше. Створіть нову базу даних для бази даних PostgreSQL.
CREATE DATABASE synapse ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER synapse;
Вихід з psql
оболонки.
\q
Перейти до sudo
користувача з поточного postgres
користувача.
exit
Вам також потрібно буде встановити пакети, необхідні для зв’язку Synapse із сервером бази даних PostgreSQL.
sudo yum -y install postgresql-devel libpqxx-devel.x86_64
source /opt/synapse/bin/activate
pip install psycopg2
Перед запуском Synapse потрібен файл конфігурації. У файлі конфігурації зберігаються налаштування сервера. Перейдіть до віртуального середовища та створіть конфігурацію для Synapse.
source /opt/synapse/bin/activate
cd /opt/synapse
python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes
Replace matrix.example.com
with your actual domain name and make sure that the server name is resolvable to the IP address of your Vultr instance. Provide --report-stats=yes
if you want the servers to generate the reports, provide --report-stats=no
to disable the generation of reports and statistics.
You should see a similar output.
(synapse)[user@vultr synapse]$ python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes
A config file has been generated in 'homeserver.yaml' for server name 'matrix.example.com' with corresponding SSL keys and self-signed certificates. Please review this file and customise it to your needs.
If this server name is incorrect, you will need to regenerate the SSL certificates
By default, the homeserver.yaml
is configured to use a SQLite database. We need to modify it to use the PostgreSQL database we have created earlier.
Edit the newly created homeserver.yaml
.
nano homeserver.yaml
Find the existing database configuration which uses SQLite3. Comment out the lines as shown below. Also, add the new database configuration for PostgreSQL. Make sure that you use the correct database credentials.
# Database configuration
#database:
# The database engine name
#name: "sqlite3"
# Arguments to pass to the engine
#args:
# Path to the database
#database: "/opt/synapse/homeserver.db"
database:
name: psycopg2
args:
user: synapse
password: DBPassword
database: synapse
host: localhost
cp_min: 5
cp_max: 10
Registration of a new user from a web interface is disabled by default. To enable registration, you can set enable_registration
to True
. You can also set a secret registration key, which allows anyone to register who has the secret key, even if registration is disabled.
enable_registration: False
registration_shared_secret: "YPPqCPYqCQ-Rj,ws~FfeLS@maRV9vz5MnnV^r8~pP.Q6yNBDG;"
Save the file and exit from the editor. Now you will need to register your first user. Before you can register a new user, though, you will need to start the application first.
source /opt/synapse/bin/activate && cd /opt/synapse
synctl start
You should see the following lines.
2017-09-05 11:10:41,921 - twisted - 131 - INFO - - SynapseSite starting on 8008
2017-09-05 11:10:41,921 - twisted - 131 - INFO - - Starting factory <synapse.http.site.SynapseSite instance at 0x44bbc68>
2017-09-05 11:10:41,921 - synapse.app.homeserver - 201 - INFO - - Synapse now listening on port 8008
2017-09-05 11:10:41,922 - synapse.app.homeserver - 442 - INFO - - Scheduling stats reporting for 3 hour intervals
started synapse.app.homeserver('homeserver.yaml')
Register a new Matrix user.
register_new_matrix_user -c homeserver.yaml https://localhost:8448
You should see the following.
(synapse)[user@vultr synapse]$ register_new_matrix_user -c homeserver.yaml https://localhost:8448
New user localpart [user]: admin
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success.
Finally, before you can use the Homeserver, you will need to allow port 8448 through the Firewall. Port 8448
is used as the secured federation port. Homeservers use this port to communicate with each other securely. You can also use the built-in Matrix web chat client through this port.
sudo firewall-cmd --permanent --zone=public --add-port=8448/tcp
sudo firewall-cmd --reload
You can now log in to the Matrix web chat client by going to https://matrix.example.com:8448
through your favorite browser. You will see a warning about the SSL certificate as the certificates used are self-signed. We will not use this web chat client as it is outdated and not maintained anymore. Just try to check if you can log in using the user account you just created.
Instead of using a self-signed certificate for securing federation port, we can use Let's Encrypt free SSL. Let's Encrypt free SSL can be obtained through the official Let's Encrypt client called Certbot.
Install Certbot.
sudo yum -y install certbot
Adjust your firewall setting to allow the standard HTTP
and HTTPS
ports through the firewall. Certbot needs to make an HTTP
connection to verify the domain authority.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
To obtain certificates from Let's Encrypt CA, you must ensure that the domain for which you wish to generate the certificates is pointed towards the server. If it is not, then make the necessary changes to the DNS records of your domain and wait for the DNS to propagate before making the certificate request again. Certbot checks the domain authority before providing the certificates.
Now use the built-in web server in Certbot to generate the certificates for your domain.
sudo certbot certonly --standalone -d matrix.example.com
The generated certificates are likely to be stored in /etc/letsencrypt/live/matrix.example.com/
. The SSL certificate will be stored as fullchain.pem
and the private key will be stored as privkey.pem
.
Copy the certificates.
sudo cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem
sudo cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem
You will need to change the path to the certificates and keys from the homeserver.yaml
file. Edit the configuration.
nano /opt/synapse/homeserver.yaml
Find the following lines and modify the path.
tls_certificate_path: "/opt/synapse/letsencrypt-fullchain.pem"
# PEM encoded private key for TLS
tls_private_key_path: "/opt/synapse/letsencrypt-privkey.pem"
Save the file and exit from the editor. Restart the Synapse server so that the changes can take effect.
source /opt/synapse/bin/activate && cd /opt/synapse
synctl restart
Let's Encrypt certificates are due to expire in 90 days, so it is recommended that you setup auto renewal for the certificates using cron jobs. Cron is a system service which is used to run periodic tasks.
Create a new script to renew certificates and copy the renewed certificates to the Synapse directory.
sudo nano /opt/renew-letsencypt.sh
Populate the file.
#!/bin/sh
/usr/bin/certbot renew --quiet --nginx
cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem
cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem
Provide the execution permission.
sudo chmod +x /opt/renew-letsencypt.sh
Open the cron job file.
sudo crontab -e
Add the following line at the end of the file.
30 5 * * 1 /opt/renew-letsencypt.sh
The above cron job will run every Monday at 5:30 AM. If the certificate is due to expire, it will automatically renew them.
Now you can visit https://matrix.example.com:8448
. You will see that there is no SSL warning before connection.
Apart from the secured federation port 8448
, Synapse also listens to the unsecured client port 8008
. We will now configure Nginx as a reverse proxy to the Synapse application.
sudo yum -y install nginx
Create a new configuration file.
sudo nano /etc/nginx/conf.d/synapse.conf
Populate the file with the following content.
server {
listen 80;
server_name matrix.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name matrix.example.com;
ssl_certificate /etc/letsencrypt/live/matrix.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/matrix.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/synapse.access.log;
location /_matrix {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Restart and enable Nginx to automatically start at boot time.
sudo systemctl restart nginx
sudo systemctl enable nginx
Finally, you can verify if Synapse can be accessed through the reverse proxy.
curl https://matrix.example.com/_matrix/key/v2/server/auto
You should get similar output.
[user@vultr ~]$ curl https://matrix.example.com/_matrix/key/v2/server/auto
{"old_verify_keys":{},"server_name":"matrix.example.com","signatures":{"matrix.example.com":{"ed25519:a_ffMf":"T/Uq/UN5vyc4w7v0azALjPIJeZx1vQ+HC6ohUGkTSqiFI4WI/ojGpb2763arwSSQLr/tP/2diCi1KLU2DEnOCQ"}},"tls_fingerprints":[{"sha256":"eorhQj/kubI2PEQZyBZvGV7K1x3EcQ7j/AO2MtZMplw"}],"valid_until_ts":1504876080512,"verify_keys":{"ed25519:a_ffMf":{"key":"Gc1hxkpPmQv71Cvjyk+uzR5UtrpmgV/UwlsLtosawEs"}}}
It is recommended to use the Systemd service to manage the Synapse server process. Using Systemd will ensure that the server is automatically started on system startup and failures.
Create a new Systemd service file.
sudo nano /etc/systemd/system/matrix-synapse.service
Populate the file.
[Unit]
Description=Matrix Synapse service
After=network.target
[Service]
Type=forking
WorkingDirectory=/opt/synapse/
ExecStart=/opt/synapse/bin/synctl start
ExecStop=/opt/synapse/bin/synctl stop
ExecReload=/opt/synapse/bin/synctl restart
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=synapse
[Install]
WantedBy=multi-user.target
Now you can quickly start the Synapse server.
sudo systemctl start matrix-synapse
To stop or restart the server using following commands.
sudo systemctl stop matrix-synapse
sudo systemctl restart matrix-synapse
You can check the status of service.
sudo systemctl status matrix-synapse
Matrix Synapse server is now installed and configured on your server. As the built-in web client for Matrix is outdated, you can choose from the variety of the client applications available for chat. Riot is the most popular chat client, which is available on almost all platforms. You can use the hosted version of Riot's web chat client, or you can also host a copy of it on your own server. Apart from this, you can also use Riot's desktop and mobile chat clients, which are available for Windows, Mac, Linux, IOS and Android.
Якщо ви хочете розмістити власну копію веб-клієнта Riot, ви можете прочитати далі інструкції щодо встановлення Riot на вашому сервері. Для хостингових, настільних і мобільних клієнтів ви можете використовувати своє ім’я користувача та пароль для входу безпосередньо на свій домашній сервер. Просто виберіть опцію my Matrix ID
зі спадного меню Sign In
та введіть ім’я користувача та пароль, які ви створили під час реєстрації нового користувача. Натисніть Custom server
і використовуйте доменне ім’я вашого екземпляра Synapse. Оскільки ми вже налаштували Nginx, ми можемо просто використовувати https://matrix.example.com
як домашній сервер і https://matrix.org
як URL-адресу сервера ідентифікації.
Riot також є відкритим вихідним кодом і безкоштовний для розміщення на вашому власному сервері. Для цього не потрібні ні база даних, ні залежності. Оскільки у нас уже запущений сервер Nginx, ми можемо розмістити його на тому самому сервері.
The domain or subdomain you are using for Synapse and Riot must be different to avoid cross-site scripting. However, you can use two subdomains of the same domain. In this tutorial, we will be using
riot.example.com
as the domain for the Riot application. Replace all occurrence ofriot.example.com
with your actual domain or subdomain for the Riot application.
Завантажте Riot на свій сервер.
cd /opt/
sudo wget https://github.com/vector-im/riot-web/releases/download/v0.12.3/riot-v0.12.3.tar.gz
Ви завжди можете знайти посилання на останню версію на Github Riot .
Розпакуйте архів.
sudo tar -xzf riot-v*.tar.gz
Перейменуйте каталог для зручності.
sudo mv riot-v*/ riot/
Оскільки ми вже встановили Certbot, ми можемо генерувати сертифікати безпосередньо. Переконайтеся, що домен або субдомен, який ви використовуєте, спрямований на сервер.
sudo systemctl stop nginx
sudo certbot certonly --standalone -d riot.example.com
Згенеровані сертифікати, ймовірно, будуть збережені в /etc/letsencrypt/live/riot.example.com/
каталозі.
Створіть віртуальний хост для програми Riot.
sudo nano /etc/nginx/conf.d/riot.conf
Заповніть файл.
server {
listen 80;
server_name riot.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name riot.example.com;
ssl_certificate /etc/letsencrypt/live/riot.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/riot.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;
root /opt/riot;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/riot.access.log;
}
Скопіюйте зразок файлу конфігурації.
sudo cp /opt/riot/config.sample.json /opt/riot/config.json
Тепер відредагуйте файл конфігурації, щоб внести кілька змін.
sudo nano /opt/riot/config.json
Знайдіть наступні рядки.
"default_hs_url": "https://matrix.org",
"default_is_url": "https://vector.im",
Замініть значення URL-адреси домашнього сервера за замовчуванням на URL-адресу вашого сервера Matrix. Для URL-адреси сервера ідентифікації можна використовувати параметр за замовчуванням або також надати його значення серверу ідентифікації Matrix, тобто https://matrix.org
.
"default_hs_url": "https://matrix.example.com",
"default_is_url": "https://matrix.org",
Збережіть файл і вийдіть. Надайте право власності на файли користувачеві Nginx.
sudo chown -R nginx:nginx /opt/riot/
Перезапустіть Nginx.
sudo systemctl restart nginx
Ви можете отримати доступ до Riot на https://riot.example.com
. Тепер ви можете увійти, використовуючи ім’я користувача та пароль, які ви створили раніше. Ви можете підключитися за допомогою сервера за замовчуванням, оскільки ми вже змінили стандартний сервер Matrix для нашої програми.
Тепер у вас запущено домашній сервер Matrix Synapse. У вас також є розміщена копія Riot, яку ви можете використовувати, щоб надсилати повідомлення іншим людям, використовуючи їх ідентифікатор Matrix, електронну пошту або номер мобільного телефону. Почніть зі створення кімнати чату на своєму сервері та запросіть своїх друзів на Matrix приєднатися до кімнати чату, яку ви створили.
Використання іншої системи? Plesk — це власна панель керування веб-хостом, яка дозволяє користувачам адмініструвати свої персональні та/або клієнтські веб-сайти, бази даних
Squid — популярна безкоштовна програма для Linux, яка дозволяє створювати веб-проксі для переадресації. У цьому посібнику ви дізнаєтеся, як встановити Squid на CentOS, щоб перетворити вас
Вступ Lighttpd — це форк Apache, який має набагато меншу ресурсомісткість. Він легкий, звідси його назва, і досить простий у використанні. Встановити
VULTR нещодавно вніс зміни на свою сторону, і тепер усе має працювати нормально з коробки з увімкненим NetworkManager. Якщо ви бажаєте вимкнути
Icinga2 — це потужна система моніторингу, і при використанні в моделі «майстер-клієнт» вона може замінити потребу в перевірках моніторингу на основі NRPE. Майстер-клієнт
Використання іншої системи? Apache Cassandra — це безкоштовна система керування базами даних NoSQL з відкритим вихідним кодом, яка розроблена для забезпечення масштабованості, високої
Використання іншої системи? Microweber — це CMS та інтернет-магазин із відкритим вихідним кодом. Вихідний код Microweber розміщено на GitHub. Цей посібник покаже вам
Використання іншої системи? Vanilla forum — це програма з відкритим вихідним кодом, написана на PHP. Це повністю настроюваний, простий у використанні та підтримує зовнішній вигляд
Використання іншої системи? Mattermost — це автономна альтернатива службі обміну повідомленнями Slack SAAS з відкритим кодом. Іншими словами, з Mattermost ви бл
Панель керування Plesk має дуже гарну інтеграцію для Lets Encrypt. Lets Encrypt є одним із єдиних постачальників SSL, які надають сертифікати повністю
Lets Encrypt — це центр сертифікації, який надає безкоштовні сертифікати SSL. cPanel створив чітку інтеграцію, щоб ви і ваш клієнт
Використання іншої системи? Concrete5 — це CMS з відкритим вихідним кодом, яка пропонує багато відмінних і корисних функцій, які допомагають редакторам легко створювати вміст.
Використання іншої системи? Review Board — це безкоштовний інструмент з відкритим кодом для перегляду вихідного коду, документації, зображень та багато іншого. Це веб-програмне забезпечення
У цьому посібнику ви дізнаєтеся, як налаштувати автентифікацію HTTP для веб-сервера Nginx, що працює на CentOS 7. Вимоги Щоб почати, вам знадобиться
Використання іншої системи? GoAccess — це аналізатор веб-журналів з відкритим вихідним кодом. Ви можете використовувати його для аналізу журналів у режимі реального часу в терміналі або
YOURLS (Your Own URL Shortener) — програма для скорочення URL-адрес і аналізу даних із відкритим вихідним кодом. У цій статті ми розглянемо процес встановлення
Використання іншої системи? Вступ ArangoDB — це відкрита база даних NoSQL з гнучкою моделлю даних для документів, графіків і ключів-значень. це є
Вступ Каталог /etc/ відіграє важливу роль у функціонуванні системи Linux. Причина цього в тому, що майже кожна конфігурація системи
Багато системних адміністраторів керують великою кількістю серверів. Якщо потрібно отримати доступ до файлів на різних серверах, увійти на кожен окремо бл
У цьому посібнику буде описано процес встановлення ігрового сервера Half Life 2 на систему CentOS 6. Крок 1: Встановлення необхідних умов Щоб налаштувати ou
Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.
Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.
Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.
Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.
Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…
Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.
Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.
Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.
У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.
Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше