Configurare program

Cum se instalează Craft CMS pe Rocky Linux 9

Cerințe preliminare

  • Un server care rulează Rocky Linux 9 cu minim 1 GB RAM.
  • Un utilizator non-root cu privilegii sudo.
  • Un nume de domeniu complet calificat (FQDN) ca craftcms.example.comindicarea către serverul dvs.
  • Un cont SMTP cu un serviciu de e-mail precum Amazon SES sau Mailgun.
  • Totul este actualizat.
    $ sudo dnf update
    
  • Sunt necesare câteva pachete esențiale pentru ca tutorialul și Craft CMS să ruleze. Unele dintre acestea vor fi deja pe serverul dvs.
    $ sudo dnf install wget curl nano unzip yum-utils policycoreutils-python-utils -y
    

Pasul 1 – Configurați firewall

Primul pas este configurarea firewall-ului. Rocky Linux folosește Firewalld Firewall. Verificați starea firewall-ului.

$ sudo firewall-cmd --state
funcţionare

Firewall-ul funcționează cu diferite zone, iar zona publică este cea implicită pe care o vom folosi. Listați toate serviciile și porturile active pe firewall.

$ sudo firewall-cmd --permanent --list-services

Ar trebui să arate următoarea ieșire.

cockpit dhcpv6-client ssh

Permiteți porturile HTTP și HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Verificați din nou starea paravanului de protecție.

$ sudo firewall-cmd --permanent --list-services

Ar trebui să vedeți o ieșire similară.

cockpit dhcpv6-client http https ssh

Reîncărcați paravanul de protecție pentru a activa modificările.

$ sudo firewall-cmd --reload

Pasul 2 – Instalați Nginx

Rocky Linux 9 este livrat cu o versiune mai veche de Nginx. Trebuie să utilizați depozitul oficial Nginx pentru a instala cea mai recentă versiune.

Creați și deschideți fișierul /etc/yum.repos.d/nginx.repopentru editare.

$ sudo nano /etc/yum.repos.d/nginx.repo

Lipiți următorul cod în el.

[nginx-stable]
nume=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
activat=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=adevărat

[nginx-mainline]
nume=nginx repository principal
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
activat=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=adevărat

După ce ați terminat, salvați fișierul apăsând Ctrl + X și introducând Y când vi se solicită.

Instalați Nginx.

$ sudo dnf install nginx -y

Verificați instalarea.

$ nginx -v
Versiunea nginx: nginx/1.24.0

Activați și porniți serviciul server Nginx.

$ sudo systemctl enable nginx --now

Verificați starea serviciului.

$ sudo systemctl status nginx
? nginx.service - nginx - server web de înaltă performanță
     Încărcat: încărcat (/usr/lib/systemd/system/nginx.service; activat; presetat: dezactivat)
     Activ: activ (în rulare) din Luni 2023-12-04 14:01:19 UTC; acum 3s
       Documente: http://nginx.org/en/docs/
    Proces: 59396 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exit, status=0/SUCCESS)
   PID principal: 59397 (nginx)
      Sarcini: 2 (limită: 10866)
     Memorie: 1,9 M
        CPU: 10 ms
     CGroup: /system.slice/nginx.service
             ??59397 „nginx: proces principal /usr/sbin/nginx -c /etc/nginx/nginx.conf”
             ??59398 „nginx: proces de lucru”

Pasul 3 – Instalați PHP și extensii

Rocky Linux 9 este livrat implicit cu PHP 8.1. Pentru a rămâne mereu pe cea mai recentă versiune de PHP sau dacă doriți să instalați mai multe versiuni de PHP, trebuie să folosim depozitul REMI.

Primul pas este să luați depozitul Epel.

$ sudo dnf install epel-release -y

Apoi, instalați depozitul Remi.

$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

Verificați fluxurile PHP disponibile.

$ dnf module list php -y
 Rezumatul profilurilor fluxului de nume php 8.1 comun [d], devel, limbaj de scripting PHP minim  Depozitul modular al lui Remi pentru Enterprise Linux 9 - x86_64 Rezumatul profilurilor fluxului de nume php remi-7.4 comun [d], devel, limbaj de scripting PHP minim php remi-8.0 comun [d], devel, limbaj de scripting PHP minim php remi-8.1 comun [d], devel, limbaj de scripting PHP minim php remi-8.2 comun [d], devel, limbaj de scripting PHP minim php remi-8.3 comun [d], devel, limbaj de scripting PHP minim  Sugestie: [d]efectuat, [activat], [x]dezactivat, [instalat]

Versiunea implicită este 8.1. La momentul scrierii acestui tutorial, Craft CMS este compatibil cu PHP 8.2. Prin urmare, activați depozitul PHP 8.2 al lui Remi.

$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.2

Instalați PHP și extensiile sale solicitate de Craft CMS.

$ sudo dnf install php php-cli php-common php-json php-gmp php-fpm php-xmlrpc php-bcmath php-imagick php-curl php-zip php-gd php-mysql php-xml php-mbstring php-xmlrpc php-pintlql

Verificați versiunea de PHP instalată.

$ php --version
PHP 8.2.13 (cli) (construit: 21 noiembrie 2023 09:55:59) (NTS gcc x86_64)
Drepturi de autor (c) Grupul PHP
Zend Engine v4.2.13, Copyright (c) Zend Technologies
    cu Zend OPcache v8.2.13, Copyright (c), de Zend Technologies

Activați și porniți serviciul PHP-FPM.

$ sudo systemctl enable php-fpm --now

Verificați starea serviciului PHP.

$ sudo systemctl status php-fpm
? php-fpm.service - Managerul de procese PHP FastCGI
     Încărcat: încărcat (/usr/lib/systemd/system/php-fpm.service; activat; presetat: dezactivat)
     Activ: activ (în rulare) din Luni 2023-12-04 14:05:58 UTC; acum 6 secunde
   PID principal: 61410 (php-fpm)
     Stare: „Pregătit pentru a gestiona conexiunile”
      Sarcini: 6 (limită: 10866)
     Memorie: 16,6 M
        CPU: 96 ms
     CGroup: /system.slice/php-fpm.service
             ??61410 „php-fpm: proces principal (/etc/php-fpm.conf)”
             ??61411 "php-fpm: pool www"
             ??61412 "php-fpm: pool www"
             ??61413 "php-fpm: pool www"
             ??61414 "php-fpm: pool www"
             ??61415 "php-fpm: pool www"

Pasul 4 – Configurați PHP-FPM

Deschis php.inipentru editare.

$ sudo nano /etc/php.ini

Pentru a seta dimensiunile de încărcare a fișierelor, modificați valorile variabilelor upload_max_filesizeși post_max_size. Această valoare decide dimensiunea fișierului pe care îl puteți încărca în Craft CMS. Pentru scopurile noastre, îl setăm la 128 MB. Îl poți seta după bunul plac.

$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 128M/' /etc/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 128M/' /etc/php.ini

Configurați limita de memorie PHP în funcție de resursele și cerințele serverului dvs.

$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php.ini

Deschideți fișierul /etc/php-fpm.d/www.conf.

$ sudo nano /etc/php-fpm.d/www.conf

Trebuie să setăm utilizatorul/grupul de procese PHP Unix la nginx . Găsiți liniile user=www-datași group=www-dataîn fișier și schimbați-le în nginx.

...
; Utilizator Unix/grup de procese
; Notă: Utilizatorul este obligatoriu. Dacă grupul nu este setat, grupul implicit al utilizatorului
; va fi folosit.
; RPM: utilizator apache ales să ofere acces la aceleași directoare ca httpd
utilizator = nginx
; RPM: Păstrați un grup permis să scrie în directorul jurnalului.
grup = nginx
...

Găsiți liniile listen.owner = nobodylisten.group = nobodylisten.mode = 0660din fișier și modificați-le după cum urmează după ce le-ați decomentat.

; Setați permisiunile pentru socket Unix, dacă este folosit unul. În Linux, citiți/scrieți
; permisiunile trebuie setate pentru a permite conexiuni de la un server web. Multe
; Sistemele derivate din BSD permit conexiuni indiferent de permisiuni. Proprietarul
; și grupul poate fi specificat fie prin nume, fie prin ID-urile lor numerice.
; Valori implicite: utilizatorul și grupul sunt setate ca utilizator care rulează
; modul este setat la 0660
listen.owner = nginx
ascultă.grup = nginx
listen.mode = 0660

Salvați fișierul apăsând Ctrl + X și introducând Y când vi se solicită.

Reporniți procesul PHP-fpm. Asigurați-vă că aveți instalat Nginx înainte de a reporni serviciul PHP, altfel acesta va eșua, deoarece nu va putea găsi nginxgrupul.

$ sudo systemctl restart php-fpm

Schimbați grupul directorului de sesiuni PHP în Nginx.

$ sudo chgrp -R nginx /var/lib/php/session

Pasul 5 – Instalați Composer

Composer acționează ca un manager de dependență pentru PHP. Este, de asemenea, managerul de dependență al cadrului PHP Laravel, care este ceea ce alimentează Craft CMS.

Descărcați scriptul de instalare Composer.

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

Verificați programul de instalare descărcat.

$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Veți primi următorul rezultat.

Installer verified

Rulați scriptul de instalare pentru a descărca cea mai recentă versiune de Composer.

$ php composer-setup.php

Eliminați scriptul de instalare.

$ php -r "unlink('composer-setup.php');"

Mutați fișierul binar descărcat în /usr/local/bindirector.

$ sudo mv composer.phar /usr/local/bin/composer

Confirmați instalarea.

$ composer --version
Composer version 2.6.5 2023-10-06 10:11:52

Pasul 6 – Instalați și configurați PostgreSQL

Rocky Linux 9 este livrat implicit cu PostgreSQL 13. Vom folosi PostgreSQL 16 în schimb din depozitul său oficial.

Instalați depozitul RPM PostgreSQL.

$ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Dezactivați modulul PostgreSQL încorporat.

$ sudo dnf -qy module disable postgresql

Acum, puteți instala PostgreSQL folosind comanda de mai jos.

$ sudo dnf install -y postgresql16-server postgresql16-contrib

Pachetul postgresql-contribconține câteva utilități suplimentare.

Verificați versiunea.

$ psql --version
psql (PostgreSQL) 16.1

Inițializați baza de date PostgreSQL.

$ sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
Se inițializează baza de date... OK

Activați serviciul PostgreSQL.

$ sudo systemctl enable postgresql-16

Porniți serviciul PostgreSQL.

$ sudo systemctl start postgresql-16

Verificați starea serviciului PostgreSQL.

$ sudo systemctl status postgresql-16
? postgresql-16.service - Server de baze de date PostgreSQL 16
     Încărcat: încărcat (/usr/lib/systemd/system/postgresql-16.service; activat; prestabilit: dezactivat)
     Activ: activ (în rulare) din Luni 2023-12-04 22:28:34 UTC; acum 2 secunde
       Documente: https://www.postgresql.org/docs/16/static/
    Proces: 72143 ExecStartPre=/usr/pgsql-16/bin/postgresql-16-check-db-dir ${PGDATA} (code=exit, status=0/SUCCESS)
   PID principal: 72148 (postgres)
      Sarcini: 7 (limită: 10866)
     Memorie: 17,4 M
        CPU: 45 ms
     CGroup: /system.slice/postgresql-16.service
             ??72148 /usr/pgsql-16/bin/postgres -D /var/lib/pgsql/16/data/
             ??72149 "postgres: logger"
             ??72150 "postgres: checkpointer"
             ??72151 "postgres: scriitor de fundal"
             ??72153 "postgres: walwriter"
             ??72154 "postgres: lansatorul de autovacuum"
             ??72155 „postgres: lansatorul de replicare logică”

04 decembrie 22:28:33 craftcms.nspeaks.com systemd[1]: Se pornește serverul de baze de date PostgreSQL 16...
Dec 04 22:28:33 craftcms.nspeaks.com postgres[72148]: 2023-12-04 22:28:33.999 UTC [72148] LOG: redirecționarea ieșirii jurnalului către procesul de colectare a jurnalului
Dec 04 22:28:33 craftcms.nspeaks.com postgres[72148]: 2023-12-04 22:28:33.999 UTC [72148] SFAT: Ieșirea viitoare a jurnalului va apărea în directorul „jurnal”.
04 decembrie 22:28:34 craftcms.nspeaks.com systemd[1]: A pornit serverul de baze de date PostgreSQL 16.

Puteți vedea că serviciul este activat și rulează implicit.

Lansați shell-ul PostgreSQL.

$ sudo -i -u postgres psql

Creați baza de date Craft CMS.

postgres=# CREAȚI BAZĂ DE DATE craftcms;

Creați utilizatorul Craft CMS și alegeți o parolă puternică.

postgres-# CREAȚI UTILIZATOR craftuser CU PAROLA 'Parola_dvs';

Schimbați proprietarul bazei de date în utilizatorul Craft CMS.

postgres-# ALTER DATABASE craftcms OWNER TO craftuser;

Acordați toate privilegiile din baza de date utilizatorului Craft CMS.

postgres-# ACORDĂ TOATE PRIVILEGIILE PE BAZĂ DE DATE craftcms CĂTRE craftuser;

Ieși din shell.

postgres-# \q

Verificați dacă acreditările dvs. funcționează.

$ psql --username craftuser --parola --host localhost craftcms
Password:
psql (16.1)
Tastați „help” pentru ajutor.

craftcms =>

Ieșiți din shell tastând \q.

Pasul 7 – Instalați și configurați Redis

Rocky Linux 9 este livrat implicit cu Redis 6.2. Cu toate acestea, vom folosi Redis 7.0 pe care îl vom instala folosind Remi Repository.

Deoarece am instalat depozitul Remi în timpul instalării PHP, putem sări peste acea parte. Listați toate modulele Redis disponibile.

$ sudo dnf module list redis
Rocky Linux 9 - AppStream
Rezumatul profilurilor fluxului de nume
redis 7 comun [d] baza de date persistentă cheie-valoare Redis

Depozitul modular al lui Remi pentru Enterprise Linux 9 - x86_64
Rezumatul profilurilor fluxului de nume
redis remi-5.0 common [d] baza de date persistentă cheie-valoare Redis
redis remi-6.0 common [d] baza de date persistentă cheie-valoare Redis
redis remi-6.2 common [d] baza de date persistentă cheie-valoare Redis
redis remi-7.0 common [d] baza de date persistentă cheie-valoare Redis
redis remi-7.2 common [d] baza de date persistentă cheie-valoare Redis

Sugestie: [d]efectuat, [activat], [x]dezactivat, [instalat]

Activați cel mai recent modul Redis 7.2.

$ sudo dnf module enable -y redis:remi-7.2

Instalați Redis.

$ sudo dnf install redis

Verificați versiunea.

$ redis-server --version
Server Redis v=7.2.3 sha=00000000:0 malloc=jemalloc-5.3.0 biți=64 build=7bd3173e4e30c3e4

Activați serviciul Redis.

$ sudo systemctl enable redis

Porniți serviciul Redis.

$ sudo systemctl start redis

Verificați starea serviciului.

$ sudo systemctl status redis
? redis.service - baza de date persistentă cheie-valoare Redis
     Încărcat: încărcat (/usr/lib/systemd/system/redis.service; activat; presetat: dezactivat)
    Drop-in: /etc/systemd/system/redis.service.d
             ??limit.conf
     Activ: activ (în rulare) din Luni 2023-12-04 22:36:25 UTC; acum 1 min 32s
   PID principal: 72877 (server redis)
     Stare: „Pregătit să accepte conexiuni”
      Sarcini: 5 (limită: 10866)
     Memorie: 7,5 M
        CPU: 176 ms
     CGroup: /system.slice/redis.service
             ??72877 „/usr/bin/redis-server 127.0.0.1:6379”

04 decembrie 22:36:25 craftcms.nspeaks.com systemd[1]: Se pornește baza de date persistentă cheie-valoare Redis...
04 decembrie 22:36:25 craftcms.nspeaks.com systemd[1]: a început baza de date persistentă cheie-valoare Redis.

Următorul pas este să adăugați autentificare la serverul Redis. Începând cu Redis v6.0, cea mai bună modalitate de a adăuga autentificare este utilizarea ACL (liste de control acces). Deschideți /etc/redis/redis.conffișierul pentru editare.

$ sudo nano /etc/redis/redis.conf

Găsiți # aclfile /etc/redis/users.aclintrarea de linie și decomentați-o eliminând simbolul hash ( #) din fața ei.

aclfile /etc/redis/users.acl

Salvați fișierul apăsând Ctrl + X și introducând Y când vi se solicită.

Apoi, creați și deschideți /etc/redis/users.aclfișierul pentru editare.

$ sudo nano /etc/redis/users.acl

Adăugați următoarea linie la acesta.

user navjot pe +@all ~* >parola ta

Salvați fișierul apăsând Ctrl + X și introducând Y când vi se solicită.

Reporniți serverul Redis pentru a implementa modificarea.

$ sudo systemctl restart redis

Deschideți shell-ul Redis.

$ redis-cli

Utilizați PINGcomanda. Va da o eroare de autentificare.

127.0.0.1:6379> PING
(eroare) NOAUTH Este necesară autentificarea.

Utilizați AUTHcomanda pentru a vă autentifica.

127.0.0.1:6379> AUTH navjot parola ta
Bine

Folosiți PINGcomanda din nou.

127.0.0.1:6379> PING
Bine

Ieși din shell.

127.0.0.1:6379> ieșire

De asemenea, va trebui să instalați extensia PHP Redis.

$ sudo apt install php-redis

Pasul 8 – Instalați Craft CMS

Înainte de a instala Craft CMS, puteți verifica dacă îndepliniți toate cerințele de server pentru a-l rula folosind următoarea comandă.

$ curl -Lsf https://raw.githubusercontent.com/craftcms/server-check/HEAD/check.sh | bash

Veți obține următoarea ieșire.

Se execută verificarea serverului Craft...

Craft CMS Verificator de cerințe

Acest script verifică dacă configurația serverului dvs. web îndeplinește cerințele pentru rularea unei instalări Craft CMS.
Verifică dacă serverul rulează versiunea corectă de PHP, dacă au fost încărcate extensii PHP adecvate,
și dacă setările fișierului php.ini sunt corecte.

Rezultate:
--------

PHP 8.2+: OK

Extensia BCMath: OK

extensia ctype: OK

Extensia cURL: OK

Extensia DOM: OK

Extensia informațiilor fișierului: OK

Extensia GD sau extensia ImageMagick: OK

extensia iconv: OK

Extensie interna: OK

Extensie JSON: OK

Extensie șir multiocteți (cu supraîncărcarea funcției dezactivată): OK

Extensia OPcache (cu save_comments): OK

Extensia OpenSSL: OK

Extensie PCRE (cu suport UTF-8): OK

Extensie PDO: OK

Extensie de reflecție: OK

Extensie SPL: OK

Extensie zip: OK

ignore_user_abort(): OK

password_hash(): OK

proc_close(): OK

proc_get_status(): OK

proc_open(): OK

proc_terminate(): OK

allow_url_fopen: OK

apeluri ini_set: OK

Limită memorie: OK

-------------------------------------------
Erori: 0 Avertismente: 0 Total verificări: 27

Odată ce totul este în regulă, puteți continua. Creați directorul rădăcină web.

$ sudo mkdir /var/www/html/craftcms -p

Setați utilizatorul conectat în prezent ca proprietar al acestui director.

$ sudo chown -R $USER:$USER /var/www/html/craftcms

Comutați la director.

$ cd /var/www/html/craftcms

Descărcați și instalați Craft CMS folosind Composer. Punctul ( .) de la sfârșitul comenzii înseamnă că instalarea trebuie efectuată în directorul curent.

$ compozitor create-project craftcms/craft .

În timpul instalării, vi se vor cere mai multe detalii privind baza de date și contul de administrator. URL-ul site-ului și limba acestuia, după cum se arată mai jos.

> @php craft Configurare/bine ai venit

   ______ .______ ___ _______ .___________.
  / || _ \ / \ | ____|| |
 | ,----'| |_) | / ^ \ | |__ `---| |----`
 | | | / / /_\ \ | __| | |
 | `----.| |\ \----./ _____ \ | | | |
  \______|| _| `._____/__/ \__\ |__| |__|

     ANEWINSTALL
               ______ .___ ___. _______.
              / || \/ | / |
             | ,----'| \ / | | (----`
             | | | |\/| | \ \
             | `----.| | | | .----) |
              \______||__| |__| |_______/


Generarea unui ID de aplicație... gata (CraftCMS--923f03f1-9bea-4c3d-a7ca-1466645ce75d)
Generarea unei chei de securitate... gata (iMdcUi6wQyf9MshEda__vZcCwILbclxz)

Bun venit la Craft CMS!

Ești gata să începi configurarea? (da|nu) [nu]:da
Ce driver de bază de date folosești? (mysql sau pgsql) [mysql] pgsql
Numele serverului bazei de date sau adresa IP: [127.0.0.1]
Port baza de date: [5432]
Nume utilizator baza de date: [root] craftuser
Parola bazei de date:
Numele bazei de date: craftcms
Prefixul tabelului bazei de date:
Testarea acreditărilor bazei de date... succes!
Folosind schema implicită „publică”.
Salvarea acreditărilor bazei de date în fișierul .env... gata

Instalați Craft acum? (da|nu) [da]:da

Nume de utilizator: [admin] navjot
E-mail: navjot@example.com
Parolă:
Confirma:
Numele site-ului: tutoriale Howtoforge
Adresa URL a site-ului: https://craftcms.example.com
Limba site-ului: [en-US]
*** instalarea Craft

Faceți Redis să funcționeze cu Craft CMS

Instalați yiisoft/yii2-redispachetul.

$ composer require --prefer-dist yiisoft/yii2-redis:"~2.0.0"

Deschideți /var/www/html/craftcms/config/app.phpfișierul pentru editare.

$ nano config/app.php

Veți vedea următorul conținut în el.

use craft\helpers\App;

return [
    'id' => App::env('CRAFT_APP_ID') ?: 'CraftCMS',
];

Schimbați-l după cum urmează.

use craft\helpers\App;
return [
    'id' => App::env('CRAFT_APP_ID') ?: 'CraftCMS',
    'components' => [
        'cache' => function() {
            $config = [
                'class' => yii\redis\Cache::class,
                'keyPrefix' => Craft::$app->id,
                'defaultDuration' => Craft::$app->config->general->cacheDuration,

                // Full Redis connection details:
                'redis' => [
                    'hostname' => App::env('REDIS_HOSTNAME') ?: 'localhost',
                    'port' => 6379,
                    'username' => App::env('REDIS_USERNAME') ?: null,
                    'password' => App::env('REDIS_PASSWORD') ?: null,
                ],
            ];

            return Craft::createObject($config);
        },
    ],
];

Salvați fișierul apăsând Ctrl + X și introducând Y când vi se solicită. Acest lucru permite Redis ca stocare cache pentru Craft CMS. De asemenea, puteți utiliza Redis pentru stocarea datelor de sesiune PHP, coada de joburi și ca driver mutex. Puteți găsi configurația pentru aceasta în documentația Craft CMS .

De asemenea, trebuie să adăugați configurația Redis la .envfișier.

$ nano .env

Adăugați următorul cod la sfârșitul fișierului.

REDIS_HOSTNAME=localhost
REDIS_USERNAME=navjot
REDIS_PASSWORD=parola ta

Alegeți opțiunile așa cum se arată mai sus. După ce ați terminat, schimbați grupul directorului în nginx. În acest fel, atât utilizatorul conectat în prezent, cât și Nginx vor avea acces la Craft CMS.

$ sudo chgrp -R nginx /var/www/html/craftcms

Acordați nginxpermisiunea grupului de a scrie în director.

$ sudo chmod -R g+w /var/www/html/craftcms

De aici încolo, nu va trebui să schimbați din nou permisiunile și puteți face toate operațiunile fără a utiliza privilegiile root.

Pasul 9 – Instalați SSL

Trebuie să instalăm Certbot pentru a genera certificatul SSL. Vom folosi programul de instalare a pachetului Snapd pentru asta. Deoarece Rocky Linux nu este livrat cu acesta, instalați programul de instalare Snapd. Este necesar ca depozitul EPEL (Extra Packages for Enterprise Linux) să funcționeze. Dar, din moment ce l-am instalat deja la pasul 3, putem merge direct înainte.

Instalați Snapd.

$ sudo dnf install -y snapd

Activați și porniți serviciul Snap.

$ sudo systemctl enable snapd --now

Instalați pachetul de bază Snap și asigurați-vă că versiunea dvs. de Snapd este actualizată.

$ sudo snap install core && sudo snap refresh core

Creați linkurile necesare pentru ca Snapd să funcționeze.

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

Instalați Certbot.

$ sudo snap install --classic certbot

Utilizați următoarea comandă pentru a vă asigura că comanda Certbot poate fi rulată prin crearea unei legături simbolice către /usr/bindirector.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Verificați dacă Certbot funcționează corect.

$ certbot --versiune
certbot 2.7.4

Rulați următoarea comandă pentru a genera un certificat SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m nume@example.com -d craftcms.example.com

Comanda de mai sus va descărca un certificat în /etc/letsencrypt/live/craftcms.example.comdirectorul de pe serverul dvs.

Generați un certificat de grup Diffie-Hellman .

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Verificați serviciul de planificare a reînnoirii Certbot.

$ sudo systemctl list-timers

Veți găsi snap.certbot.renew.serviceunul dintre serviciile programate să ruleze.

URMĂTOAREA STÂNGA ULTIMA UNITATE A TRUCĂ SE ACTIVĂ     
------------------------------------------------------------ -------------------------------------------------------------               
Luni 2023-12-04 23:38:47 UTC 18min rămas Luni 2023-12-04 22:19:02 UTC Acum 1h 0min dnf-makecache.timer dnf-makecache.service
Mar 2023-12-05 00:00:00 UTC 40 min rămase - - logrotate.timer logrotate.service
Mar 2023-12-05 09:36:00 UTC Mai sunt 10 ore - - snap.certbot.renew.timer snap.certbot.renew.service

Faceți o rulare uscată a procesului pentru a verifica dacă reînnoirea SSL funcționează bine.

$ sudo certbot renew --dry-run

Dacă nu vedeți nicio eroare, sunteți gata. Certificatul dumneavoastră se va reînnoi automat.

Pasul 10 – Configurați SELinux

Schimbați contextul de securitate al fișierului pentru Craft CMS.

$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/craftcms(/.*)?"

Aplicați politica.

$ sudo restorecon -Rv /var/www/html/craftcms/

Aplicați politica pentru a permite Nginx să acorde acces la PostgreSQL.

$ sudo setsebool -P httpd_can_network_connect_db 1

Aplicați politica pentru a permite conexiunile cu gazde externe.

$ sudo setsebool -P httpd_can_network_connect 1

Cu MariaDB 10.11, te vei confrunta cu o altă problemă și anume că SELinux împiedică PHP-FPM să se conecteze la MariaDB. Acest lucru poate fi rezolvat prin instalarea unui modul SELinux. Primul pas este crearea unui type enforcementfișier.

Creați fișierul my-phpfpm.teîn directorul dvs. de acasă și deschideți-l pentru editare.

$ cd ~
$ nano my-phpfpm.te

Lipiți următorul cod în el.

module my-phpfpm 1.0;

require {
        type unconfined_service_t;
        type httpd_t;
        type httpd_sys_content_t;
        class dir write;
        class unix_stream_socket connectto;
}

#============= httpd_t ==============

#!!!! This avc is allowed in the current policy
allow httpd_t httpd_sys_content_t:dir write;

#!!!! This avc is allowed in the current policy
allow httpd_t unconfined_service_t:unix_stream_socket connectto;

Salvați fișierul apăsând Ctrl + X și introducând Y când vi se solicită.

Următorul pas este să îl convertiți într-un modul de politică folosind următoarea comandă. Nu modificați numele fișierului în comandă, altfel nu va funcționa. Modulul este numit my-phpfpmși numele fișierului ar trebui să fie același cu numele modulului.

$ sudo checkmodule -M -m -o my-phpfpm.mod my-phpfpm.te

Apoi, trebuie să compilam modulul de politici pentru a crea un pachet de politici.

$ sudo semodule_package -o my-phpfpm.pp -m my-phpfpm.mod

Pasul final este să încărcați pachetul de politici utilizând semodulecomanda care instalează politica de utilizat.

$ sudo semodule -i my-phpfpm.pp

Pasul 11 ​​- Configurați Nginx

Deschideți fișierul /etc/nginx/nginx.confpentru editare.

$ sudo nano /etc/nginx/nginx.conf

Adăugați următoarea linie înainte de linie include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Salvați fișierul apăsând Ctrl + X și introducând Y când vi se solicită.

Creați și deschideți fișierul /etc/nginx/conf.d/craftcms.confpentru editare.

$ sudo nano /etc/nginx/conf.d/craftcms.conf

Lipiți următorul cod în el. Înlocuiește-l craftcms.example.comcu numele tău de domeniu. Asigurați-vă că valoarea client_max_body_sizeeste setată la 128MB, ceea ce am setat pentru Craft CMS în timp ce configurați PHP mai devreme.

server {

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name craftcms.example.com;
    root /var/www/html/craftcms/web;

    index index.php;
    client_max_body_size 128M;

    access_log  /var/log/nginx/craftcms.access.log;
    error_log   /var/log/nginx/craftcms.error.log;

    ssl_certificate      /etc/letsencrypt/live/craftcms.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/craftcms.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/craftcms.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location / {
        try_files $uri/index.html $uri $uri/ /index.php?$query_string;
    }

    location ~ [^/]\.php(/|$) {
        try_files $uri $uri/ /index.php?$query_string;
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_keep_conn on;
        include fastcgi_params;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param HTTP_PROXY "";
    }
}
# enforce HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  craftcms.example.com;
    return 301   https://$host$request_uri;
}

Salvați fișierul apăsând Ctrl + X și introducând Y când vi se solicită.

Verificați configurația dvs. Nginx.

$ sudo nginx -t

Reporniți serverul Nginx.

$ sudo systemctl reporniți nginx

Pasul 12 – Accesați Craft CMS

Deschideți adresa URL https://craftcms.example.comîn browser și veți fi direcționat la următoarea pagină.

Pentru a accesa pagina de administrare, vizitați adresa URL https://craftcms.example.com/adminși veți fi direcționat către pagina de autentificare.

Introduceți acreditările dvs. de administrare și faceți click pe tasta Conectare pentru a vă conecta. Veți fi direcționat la următorul tablou de bord.

Acum puteți începe să utilizați Craft CMS pentru a vă construi site-ul web.

Pasul 13 – Backup și restaurare Craft CMS

Puteți face copii de rezervă ale bazei de date Craft CMS din interiorul panoului de administrare, vizitând Tabloul de bord de administrare >> Utilități >> Backup baze de date.

Faceți clic pe butonul Backup pentru a descărca backupul bazei de date. De asemenea, puteți crea backup folosind terminalul. Rulați următoarea comandă pentru a crea copia de rezervă. Introduceți parola când vi se solicită.

$ mysqldump -u craftcmsuser -p craftcms > ~/craftcms.database.sql

De asemenea, puteți crea copia de rezervă a bazei de date folosind utilitarul de linie de comandă Craft CMS. Avantajul acestui utilitar este că nu trebuie să treceți acreditările bazei de date. Citiți mai multe despre utilitarul consolei de comandă Craft CMS aici .

$ cd /var/www/html/craftcms
$ php craft db/backup ~/
Copierea de rezervă a bazei de date... gata
Fișier de rezervă: /home/navjot/craftcms.database.sql (200.019 KB)

Dacă nu specificați nicio locație în comanda de mai sus, fișierul de rezervă va fi scris în /var/www/html/craftcms/storage/backupsdirector.

Pentru a face backup la fișiere, copiați și salvați întregul /var/www/html/craftcmsfolder.

$ cd /var/www/html
$ tar -zcf ~/craftcms.tar.gz craftcms

Pentru a-l restaura pe un nou server, extrageți fișierele în /var/www/htmlfolder.

$ tar -xzf craftcms.tar.gz -C /var/www/html/

Creați o bază de date cu aceleași acreditări pe noul server și restaurați baza de date folosind următoarea comandă. Introduceți parola când vi se solicită.

$ mysqlimport -u craftcmsuser -p craftcms craftcms.database.sql

Pasul 14 – Actualizați CMS Craft

Există două moduri de a actualiza Craft CMS. Unul este din interiorul panoului de administrare. Când o actualizare este disponibilă, veți primi o notificare. Faceți clic pe notificare pentru a face upgrade. Craft CMS va face backup automat pentru baza de date înainte de a efectua o actualizare.

De asemenea, îl puteți actualiza prin terminal.

Pentru a verifica toate actualizările disponibile, executați următoarea comandă.

$ cd /var/www/html/craftcms/
$ php craft update

Dacă este disponibilă o actualizare, rulați următoarea comandă pentru a o aplica.

$ php craft update all
[mai mult...]

Cum se instalează și se utilizează Nessus Vulnerability Scanner pe Ubuntu 24.04

Pentru a instala Nessus pe un sistem Linux, puteți descărca cu ușurință pachetul (DEB sau RPM) și apoi îl puteți instala manual prin comanda „ dpkg ” pentru Debian sau „rpm” pentru sistemul de operare RedHat. În cele din urmă, puteți porni serviciul Nessus prin „ systemctl ”.

Descărcați fișierul Nessus DEB utilizând comanda „curl” de mai jos. Asigurați-vă că vizitați pagina de descărcare Nessus pentru a obține cea mai recentă versiune.

curl --request GET \ 
--url '<https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-10.8.3-ubuntu1604_amd64.deb>' \ 
--output 'Nessus-10.8.3-ubuntu1604_am'64.3-ubuntu1604_am'

Odată descărcat, rulați comanda „ dpkg ” de mai jos pentru a instala Nessus prin fișierul DEB.

sudo dpkg -i Nessus-10.8.3-ubuntu1604_amd64.deb


După finalizarea instalării, rulați următoarea comandă „ systemctl ” pentru a porni și a activa serviciul „ nessusd ”. Apoi, verificați-l pentru a vă asigura că serviciul funcționează.

sudo systemctl enable --acum nessusd 
sudo systemctl status nessusd

În rezultatul de mai jos, puteți vedea că „ nessusd ” este activat și rulează.

Configurarea UFW (Firewall necomplicat)

Acum că rulați Nessus, să configuram UFW (Uncomplicated Firewall) și să deschidem porturile pentru OpenSSH și portul „8834/tcp” pentru tabloul de bord Nessus.

Rulați comanda „ufw” de mai jos pentru a activa profilul „ OpenSSH ” pentru a permite accesul SSH, apoi deschideți portul „ 8834/tcp ” pentru aplicația web Nessus.

sudo ufw allow OpenSSH 
sudo ufw allow 8834/tcp

Acum rulați comanda de mai jos pentru a porni și activa UFW, apoi introduceți „y” pentru a confirma. Veți obține o ieșire precum „ Firewall-ul este activ și activat la pornirea sistemului ”.

sudo ufw enable


n cele din urmă, verificați UFW cu următoarea comandă. Veți vedea acel UFW cu starea „ activ ” și permis accesul la „ OpenSSH ” și portul „ 8834/tcp ”.

sudo ufw status


Expertul de instalare Nessus

Acum că ați deschis portul „8834/tcp”, sunteți gata să configurați asistentul de instalare Nessus din browserul dvs. web. Deschideți browserul web și vizitați https://192.168.10.60:8834 . Dacă instalarea Nessus are succes, veți primi asistentul de instalare Nessus.

Faceți click pe „ Continuați ” pentru a începe configurarea Nessus.

Înregistrați-vă la Tenable introducând numele și prenumele și adresa de e-mail. Codul de activare va fi trimis pe e-mailul dvs., așa că asigurați-vă că utilizați e-mailul corespunzător.

Când este activat, veți vedea următoarele:

Acum introduceți numele de utilizator și parola care vor fi folosite pentru a vă conecta la tabloul de bord Nessus.

În continuare, instalarea ar trebui să înceapă. Acest Nessus descarcă pluginurile necesare.

După finalizarea procesului, vi se va solicita pagina de autentificare Nessus. Introduceți numele de utilizator și parola, apoi faceți clic pe „ Conectați-vă”.

Dacă aveți acreditările corecte, veți vedea următorul tablou de bord Nessus.

Dacă instalarea pluginului eșuează, puteți instala plugin-uri Nessus prin utilitarul „ nessuscli ”.

cd /opt/nessus/sbin 
./nessuscli update

Adăugarea lui Nessus la System PATH

Implicit, Nessus este instalat în directorul „ /opt/nessus ”. Există, de asemenea, două directoare bin pentru comanda Nessus. În această secțiune, veți adăuga directorul bin Nessus la calea sistemului prin intermediul fișierului „ ~/.bashrc ”.

Deschideți fișierul „ ~/.bashrc ” cu editorul „vim”.

vim ~/.bashrc

Lipiți următoarea configurație pentru a adăuga calea binară Nessus „ /opt/nessus/bin ” și „/opt/nessus/sbin” la calea sistemului PATH .

export $PATH:/opt/nessus/bin:/opt/nessus/sbin

Salvați fișierul și ieșiți din editor.

Acum rulați comanda de mai jos pentru a reîncărca fișierul „ ~/.bashrc ” în sesiunea curentă și verificați calea sistemului . Veți vedea directoarele „ /opt/nessus/bin ” și „ /opt/nessus/sbin ” disponibile în PATH.

source ~/.bashrc 
echo $PATH

Acum puteți rula comanda „ nessuscli ” ca orice altă comandă. Comanda de mai jos va afișa calea completă a fișierelor binare „nessuscli” și „nessusd”.

which nessuscli
which nessusd


Scanează cu Nessus

În această secțiune, veți învăța cum să scanați cu Nessus și să generați rapoarte HTML pentru scanare. Această secțiune va folosi tabloul de bord de administrare Nessus.

  • Pe tabloul de bord Nessus, faceți clic pe butonul Scanare nouă
  • Selectați șablonul Basic Network Scan

  • Introduceți numele scanării, descrierea, folderul implicit pentru a salva rezultatul scanării și adresa IP țintă sau numele gazdei

  • Odată creat, faceți clic pe butonul de redare  pentru a începe scanarea

  • După scanare, puteți vedea următorul rezultat:

Faceți clic pe meniul „ Rapoarte ” pentru a genera un raport HTML al rezultatului scanării. Mai jos este rezultatul scanării noastre pe pagina HTML.

[mai mult...]

Cum se instalează software-ul de bugetare reală pe serverul Debian 12

Înainte de a instala Actual, trebuie să vă asigurați că Node.js, Git și managerul de pachete Yarn sunt instalate pe sistemul dumneavoastră. În acest moment, Actual necesită Node v18 sau mai recent, care poate fi instalat din depozitul oficial Debian.

Mai întâi, rulați comanda „ apt ” de mai jos pentru a vă actualiza indexul pachetelor Debian și pentru a instala pachete de bază, cum ar fi Node.js, NPM și Git. Introdu „ Y ” pentru a confirma instalarea.

sudo apt update 
sudo apt install nodejs npm git

Accesați directorul „ server actual ” și instalați dependențe JavaScript cu comanda „ yarn ” de mai jos.

cd actual-server 
yarn install

Puteți vedea mai jos instalarea dependențelor JavaScript prin managerul de pachete Yarn.

Se descarcă codul sursă al bugetului real

După ce dependențele sunt instalate, sunteți gata să descărcați codul sursă Actual, să instalați dependențe prin Yarn, să configurați Actual cu fișierul „config.json” și apoi să rulați Actual prin linia de comandă. De asemenea, aveți nevoie de un utilizator dedicat pentru a instala și rula Actual pe sistemul dumneavoastră.

Conectați-vă la utilizatorul dvs. cu comanda de mai jos.

su - username

Descărcați codul sursă al bugetului real cu comanda „ git ” de mai jos.

git clone https://github.com/actualbudget/actual-server.git


ccesați directorul „ server actual ” și instalați dependențe JavaScript cu comanda „ yarn ” de mai jos.

cd actual-server 
yarn install

Puteți vedea mai jos instalarea dependențelor JavaScript prin managerul de pachete Yarn. După finalizarea instalării, creați un nou fișier „ config.json ” folosind editorul „ nano ”.

nano config.json

Introduceți configurația de mai jos pentru a rula Actual pe adresa IP locală cu portul implicit 5006.

{ 
"hostname": "127.0.0.1", 
"port": 5006 
}

Salvați fișierul și ieșiți din editor.

În cele din urmă, rulați comanda „ pornire fire ” de mai jos pentru a porni software-ul propriu-zis. Aceasta va deschide portul 5006 pe localhost sau adresa „ 127.0.0.1 ” care va fi folosită de aplicație.

yarn start

Apăsați Ctrl+c pentru a încheia procesul.


Acum că ați instalat și configurat Actual, să creăm un nou fișier de serviciu systemd pentru rularea Actual în fundal ca serviciu systemd.

Creați un nou fișier de serviciu systemd „ /etc/systemd/system/actual.service ” cu următorul editor „ nano ”.

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

Introduceți configurația de mai jos pentru a rula Actual în fundal ca serviciu systemd. Asigurați-vă că schimbați „ Utilizator ” și „ Grup ” implicit cu numele dvs. de utilizator, apoi schimbați „Directorul de lucru ” cu calea corectă.

[Unit] 
Description=Actual-Server (https://actualbudget.org) 
After=network.target 

[Service] 
User=flash 
Group=flash 
WorkingDirectory=/home/flash/actual-server/ 
ExecStart=/usr/local/bin/yarn start 
Restart=on-watchdog 

[Install] 
WantedBy=multi-user.target

Salvați fișierul și părăsiți editorul când ați terminat.

Acum rulați comanda „ systemctl ” de mai jos pentru a reîncărca managerul systemd și a aplica modificările.

sudo systemctl daemon-reload

Apoi, porniți și activați „ actual.service ” folosind următoarea comandă. Acest lucru va porni „ actual.service ” în fundal și îl va permite să ruleze automat la pornirea sistemului.

sudo systemctl enable --now actual.service


Verificați starea „ actual.service ” cu comanda de mai jos. Ar trebui să vedeți că „ actual.service ” rulează și este activat pe sistemul dumneavoastră.

sudo systemctl status actual.service

În acest moment, Actual este activ și rulează în fundal ca un serviciu systemd. În această secțiune, veți instala Nginx și îl veți configura ca proxy invers pentru Actual. După aceea, veți genera certificate SSL pentru implementarea dvs. reală prin Certbot și Letsencrypt.

Mai întâi, rulați comanda „ apt ” de mai jos pentru a instala pluginul Nginx, Certbot și Python3 Certbot Nginx. Introdu „ Y ” pentru a continua cu instalarea.

sudo apt install nginx certbot python3-certbot-nginx -y


După finalizarea instalării, creați un nou fișier bloc al serverului Nginx „ /etc/nginx/sites-available/actual-budget ” cu editorul „ nano ”.

sudo nano /etc/nginx/sites-available/actual-budget

Introduceți configurația de mai jos și asigurați-vă că modificați parametrul „ server_name ” cu numele domeniului dumneavoastră.

server {
listen 80;
server_name budget.howtoforge.local;

location / {
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;

set $upstream_app 127.0.0.1;
set $upstream_port 5006;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
}

Când ați terminat, salvați fișierul și ieșiți din editor. Acum rulați comanda de mai jos pentru a activa blocul de server „ buget real ” și pentru a verifica configurațiile dvs. Nginx. Dacă nu există nicio eroare, veți obține o ieșire precum „ sintaxa este ok – testul a reușit ”.

sudo ln -s /etc/nginx/sites-available/actual-budget /etc/nginx/sites-enabled/ 
sudo nginx -t

Apoi, rulați comanda de mai jos pentru a reporni și a verifica starea serviciului Nginx. Asigurați-vă că serverul web Nginx rulează.

sudo systemctl restart nginx 
sudo systemctl status nginx

În cele din urmă, rulați comanda „ cerbot ” de mai jos pentru a genera certificate SSL și a vă asigura instalarea actuală a software-ului. Asigurați-vă că schimbați numele domeniului și adresa de e-mail în următoarea comandă.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email < alice@howtoforge.local > -d budget.howtoforge.local

Când procesul este încheiat, instalarea dvs. reală ar trebui să fie securizată cu HTTPS prin Certbot și Letsencrypt. Certificatele dvs. SSL sunt disponibile în directorul „ /etc/letsencrypt/live/domain.com ” iar HTTPS este activat automat pe fișierul blocat de server. Vizitați numele de domeniu al instalării dvs. actuale, cum ar fi https://budget.local . Dacă reușiți, veți vedea mesajul de bun venit către Actual și vă va solicita să configurați o parolă.

Introduceți noua parolă și repetați, apoi faceți clic pe „ OK”.

Odată ce parola este configurată, introduceți parola pentru a vă conecta la Tabloul de bord real.

Pentru prima dată, vi se va cere să vizualizați datele demonstrative sau să începeți din nou. Dacă sunteți familiarizat cu Actual, puteți face clic pe „ Începe proaspăt ”, dar dacă sunteți nou la Actual, faceți clic pe „ Vizualizare demo ” pentru a înțelege utilizarea de bază reală.

Mai jos este un exemplu de date demonstrative din sistemul de bugetare reală.

[mai mult...]

Cum se instalează Emby Media Server pe Debian 12

Emby este o alternativă open-source la Plex Media Server. Emby acceptă mai multe sisteme de operare, cum ar fi Linux, FreeBSD, Windows și MacOS. În ceea ce privește clienții, acesta acceptă aproape orice dispozitiv, de la smartphone-uri la desktop. Aceasta înseamnă că vă puteți accesa fișierele media aproape oriunde.

Emby Media Server este un server media open-source care acceptă mai multe sisteme de operare, cum ar fi FreeBSD, Linux și Windows. Puteți instala cu ușurință Emby Media Server descărcând pachete specifice pentru sistemele dvs. de operare.

Pentru a începe, rulați următoarea comandă pentru a vă actualiza depozitul Debian și pentru a actualiza toate pachetele la cea mai recentă versiune.

sudo apt update && sudo apt upgrade 
sudo reboot

Acum vizitați  Pagina de descărcare Emby și copiați linkul către cea mai recentă versiune de Emby. Asigurați-vă că ați selectat distribuția ca Debian. Apoi, descărcați Emby folosind comanda wget de mai jos.

wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.7.14.0/emby-server-deb_4.7.14.0_amd64.deb

Odată descărcat, rulați comanda dpkg de mai jos pentru a instala Emby pe mașina dvs. Debian.

sudo dpkg -i emby-server-deb_*.deb 
sudo apt install -f


După ce Emby este instalat, serviciul emby-server ar trebui să ruleze și să fie activat automat. Rulați comanda systemctl de mai jos pentru a o verifica.

sudo systemctl is-enabled emby-server
sudo systemctl status emby-server

Asigurați-vă că starea serviciului emby-server rulează și este activată după cum urmează:


În mod implicit, emby-server rulează pe portul 8096 . Rulați comanda ss de mai jos pentru a verifica porturile LISTEN de pe sistemul dvs.

ss -tulpn

Asigurați-vă că emby-server rulează pe ambele porturi 8096

Instalarea și configurarea Nginx ca proxy invers

În acest tutorial, veți rula Emby cu Nginx ca proxy invers. Acum, veți începe instalarea Nginx și veți crea o nouă configurație de bloc de server care va fi folosită ca proxy invers. Așadar, înainte de asta, asigurați-vă că aveți un nume de domeniu îndreptat către adresa IP a serverului dvs., indiferent dacă este domeniul local sau domeniul public.

Instalați Nginx pe serverul dvs. Debian folosind următoarea comandă apt. Tastați y pentru a confirma și apăsați ENTER pentru a continua.

sudo apt install nginx

Acum rulați comanda de mai jos pentru a verifica serviciul nginx și pentru a vă asigura că serviciul rulează și este activat.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Dacă nginx rulează, ar trebui să obțineți o ieșire activă (în rulare) , în timp ce este activată, veți vedea o ieșire precum enabled.

Apoi, creați o nouă configurație de bloc de server Nginx /etc/nginx/sites-available/emby-server folosind următoarea comandă de editor nano. Acesta va fi folosit ca proxy invers pentru instalarea dvs. Emby.

sudo nano /etc/nginx/sites-available/emby-server

Adăugați următoarea configurație și asigurați-vă că schimbați numele domeniului în parametrii server_name și add_header Content-Security-Policy .

server {
 listen 80;
 server_name emby.howtoforge.local; #your subdomain.domainname.com here
 
 proxy_hide_header X-Powered-By;
 add_header X-Xss-Protection "1; mode=block" always;
 add_header X-Content-Type-Options "nosniff" always;
 add_header Strict-Transport-Security "max-age=2592000; includeSubdomains" always;
 add_header X-Frame-Options "SAMEORIGIN" always;
 add_header 'Referrer-Policy' 'no-referrer';

 add_header Content-Security-Policy "frame-ancestors mydomain.com emby.mydomain.com;"; #add your domainname and all subdomains listed on your cert
 

 location / {
 proxy_pass http://127.0.0.1:8096; # Local emby ip and non SSL port

 proxy_hide_header X-Powered-By;
 proxy_set_header Range $http_range;
 proxy_set_header If-Range $http_if_range;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header Host $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 #Next three lines allow websockets
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
 }
}

Salvați fișierul și părăsiți editorul când ați terminat.

Acum rulați comanda de mai jos pentru a activa configurația blocului serverului /etc/nginx/sites-available/emby-server și verificați configurația sintaxei Nginx.

sudo ln -s /etc/nginx/sites-available/emby-server /etc/nginx/sites-enabled/
sudo nginx -t

Dacă aveți o sintaxă Nginx adecvată, ar trebui să obțineți o ieșire precum „ sintaxa este ok – testul este de succes ”.

Acum reporniți serviciul nginx pentru a aplica noua configurație de bloc de server.

sudo systemctl restart nginx

Configurarea UFW (Firewall necomplicat)

În acest ghid, veți rula Emby cu UFW activat. Așadar, asigurați-vă că finalizați acest pas pentru a instala UFW și pentru a adăuga profiluri atât pentru OpenSSH, cât și pentru Nginx Full pentru a deschide traficul SSh, HTTP și HTTPS.

Instalați UFW (Uncomplicated Firewall) folosind următoarea comandă apt. Tastați y pentru a confirma instalarea.

sudo apt install ufw


După finalizarea instalării, rulați următoarea comandă ufw pentru a activa profilurile OpenSSH și Nginx Full . Aceasta va deschide porturi pentru protocoalele SSH , HTTP și HTTPS.

sudo ufw allow OpenSSH 
sudo ufw allow „Nginx Full”

Acum rulați comanda de mai jos pentru a porni și a activa UFW. Tastați y pentru a confirma și a rula UFW.

sudo ufw enable

Când este activat, ar trebui să obțineți o ieșire precum „ Firewall-ul este activ și activat la pornirea sistemului ”.

Acum rulați comanda de mai jos pentru a verifica instalarea UFW.

sudo ufw status

Veți vedea UFW cu starea Activ și profilurile OpenSSH și Nginx Full sunt activate.


Dacă rulați Emby în rețeaua locală, puteți genera un certificat autosemnat pentru a vă asigura instalarea. Pentru domeniul public, este mai bine să utilizați certificate SSl/TLS de la Letsencrypt.

În această secțiune, veți genera certificate SSL/TLS de la letsencrypt prin Certbot. Instalați Certbot și pluginul Certbot nginx folosind comanda de mai jos. Tastați y pentru a confirma instalarea.

sudo apt install certbot python3-certbot-nginx

Odată ce instalarea este finalizată, rulați comanda certbot de mai jos pentru a genera certificate SSL/TLS pentru instalarea dvs. Emby. Asigurați-vă că schimbați informațiile despre numele domeniului și adresa de e-mail cu informațiile dvs.

certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email bob@howtoforge.local -d emby.howtoforge.local

Odată ce procesul este terminat, fișierele dvs. de certificat SL vor fi disponibile în directorul /etc/letsencrypt/live/domain.com . De asemenea, configurația blocului serverului dvs. Nginx se va configura automat configurată cu HTTPS, care este completată de pluginul Certbot Nginx.

Instalarea Emby Media Server

Lansați browserul web și vizitați numele de domeniu al instalării Emby Media Server (adică: http://emby.howtoforge.local/ ).

Dacă instalarea dvs. are succes, ar trebui să primiți un mesaj de bun venit, cum ar fi „ Bine ați venit la Emby ”. Selectați limba preferată din meniul drop-down și faceți clic pe Următorul.

Creați-vă primul utilizator Emby și asigurați-vă că ați introdus parola puternică. Apoi faceți clic din nou pe Următorul pentru a continua.

Când vi se cere să creați o nouă bibliotecă, puteți face clic pe butonul Bibliotecă nouă sau puteți face clic pe Următorul pentru a continua. Puteți adăuga biblioteca dvs. media mai târziu, după finalizarea instalării.

Selectați limba de date metadate pe care o preferați și faceți clic pe Următorul pentru a continua.

Asigurați-vă că bifați „ Activați maparea automată a portului ” pentru a activa maparea automată a portului. Faceți clic pe Următorul pentru a continua.

Acum bifați opțiunea „ Accept termenii și condițiile” și faceți click pe Următorul.După finalizarea procesului, veți primi mesajul Ați terminat!. Faceți click pe Terminare pentru a finaliza instalarea.

  • Acum faceți clic pe utilizatorul dvs. pentru a vă conecta la Emby Media Server
  • Introduceți utilizatorul și parola de administrator, apoi faceți clic pe Conectare

Dacă aveți utilizatorul și parola adecvate, veți obține tabloul de bord Emby ca următorul:

[mai mult...]

Cum se instalează WildFly Application Server cu Nginx Reverse Proxy pe Debian 12

WildFly, fost JBoss, este un server de aplicații gratuit și open-source care vă ajută să construiți și să implementați aplicații web Java. Este scris în Java și este compatibil cu specificațiile Java EE (Enterprise Edition). WildFly a fost creat de JBoss, dar acum este dezvoltat de RedHat. Este un server de aplicații puternic, gata de producție, modular și ușor, care oferă toate instrumentele și caracteristicile necesare pentru a rula și a implementa aplicații web Java.

WildFly este un server de aplicații multiplatformă care oferă instrumente pentru aplicații Java, cum ar fi EJB-uri, JPA, Servlet-uri, JAX-RS, Batch și securitate.

Înainte de a merge mai departe, adună următoarele:

  • Un server Debian 12 cu 4 GB sau mai multă memorie.
  • Un utilizator non-root cu privilegii de administrator sudo.

Instalarea Java OpenJDK

WildFly este o aplicație Java flexibilă și ușoară pentru a crea aplicații. În această secțiune, veți instala și utiliza Java OpenJDK 17 pentru a instala WildFly pe serverul dumneavoastră Debian.

Mai întâi, rulați următoarea comandă pentru a vă actualiza depozitul Debian.

sudo apt update

Acum, instalați pachetul Java OpenJDK executând comanda de mai jos. Aceasta va instala pachetul implicit-jdk, care este echivalent cu versiunea Java OpenJDK 17 LTS (Suport pe termen lung).

sudo apt install default-jdk

Introduceți y pentru a continua instalarea.

După ce ați instalat Java, verificați versiunea Java folosind comanda de mai jos. Ar trebui să vedeți că Java OpenJDK 17 este instalat.

versiunea java


Instalarea și configurarea WildFly

După ce ați instalat Java OpenJDK, puteți începe instalarea WildFly completând următoarele sarcini:

  • Adăugarea utilizatorului și grupului wildfly
  • Descărcarea pachetului binar WildFly
  • Configurarea instalării WildFly
  • Rularea WildFly ca serviciu Systemd

Să începem.

Adăugarea utilizatorului și grupului wildfly

Mai întâi, veți crea un nou utilizator de sistem și un grup wildfly care va fi folosit pentru a rula instalarea WildFly.

Executați comanda de mai jos pentru a adăuga un nou grup și utilizator numit wildfly executând următoarea comandă. Cu aceasta, veți configura și directorul de pornire implicit pentru utilizatorii wildfly la /opt/wildfly , care va fi folosit ca director de instalare WildFly.

sudo groupadd -r wildfly 
sudo useradd -r -g wildfly -d /opt/wildfly -s /sbin/nologin wildfly

Descărcarea pachetului binar WildFly

După adăugarea unui utilizator systemd, veți descărca pachetul binar WildFly prin wget. Asigurați-vă că vizitați pagina de descărcare WildFly pentru a obține cea mai recentă versiune a acesteia.

Înainte de aceasta, instalați dezarhivarea prin următoarea comandă apt.

sudo apt install unzip -y

După aceea, vizitați pagina de descărcare WildFly și copiați linkul către cea mai recentă versiune WildFly. Descărcați pachetul binar WildFly prin comanda wget, ca următorul. În acest exemplu, veți instala WildFly 30.0.0.

wget https://github.com/wildfly/wildfly/releases/download/30.0.0.Final/wildfly-30.0.0.Final.zip

Apoi, dezarhivați pachetul binar WildFly și mutați directorul extras în /opt/wildfly.

unzip wildfly-30.0.0.Final.zip 
sudo mv wildfly-30.0.0.Final /opt/wildfly

În cele din urmă, rulați comanda de mai jos pentru a schimba proprietatea directorului /opt/wildfly la utilizatorul wildfly.

sudo chown -RH wildfly: /opt/wildfly

Configurarea instalării WildFly

În acest exemplu, veți instala WildFly pe o singură mașină în modul de sine stătător. Deci, fiecare configurație pe care o modificați aici este legată de configurațiile autonome WildFly.

Lansați următoarea comandă nano editor pentru a deschide fișierul /opt/wildfly/bin/standalone.conf .

sudo nano /opt/wildfly/bin/standalone.conf

Modificați valoarea  Xmx512m  din variabila de mediu  JBOSS_JAVA_SIZING pentru a crește dimensiunea implicită a memoriei heap maximă a WildFly, după cum urmează .

Asigurați-vă că ajustați dimensiunea maximă a memoriei heap cu serverul dvs. actual. Următorul exemplu setează memoria heap maximă la 4 GB .

  JBOSS_JAVA_SIZING="-Xms64m -Xmx4096m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m"

Salvați și părăsiți fișierul când ați terminat.

Acum creați un nou director de configurare /etc/wildfly folosind comanda de mai jos.

sudo mkdir -p /etc/wildfly

Copiați fișierul de configurare WildFly în /etc/wildfly/wildfly.conf și deschideți-l folosind următoarea comandă a editorului nano.

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/ 
sudo nano /etc/wildfly/wildfly.conf

Schimbați WILDFLY_BIND implicit la 127.0.0.1 și adăugați o variabilă WILDFLY_CONSOLE_BIND pentru a activa administrarea consolei WildFly. Atât WildFly, cât și consola de administrare vor rula în localhost.

# Adresa de legat la 
WILDFLY_BIND=127.0.0.1 

# Activați administratorul 
WILDFLY_CONSOLE_BIND=127.0.0.1

Când ați terminat, salvați și ieșiți din fișier.

Apoi, copiați scriptul de lansare WildFly în /opt/wildfly/bin/launch.sh și faceți-l executabil prin comanda chmod de mai jos

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/ 
sudo chmod +x /opt/wildfly/bin/*.sh

Deschideți scriptul de lansare WildFly /opt/wildfly/bin/launch.sh folosind următoarea comandă a editorului nano.

sudo nano /opt/wildfly/bin/launch.sh

Introduceți noua opțiune de comandă „ -bmanagement $4 ” pentru a activa consola de administrare WildFly astfel.

if [[ "$1" == "domeniu" ]]; then 
    $WILDFLY_HOME/bin/domain.sh -c $2 -b $3 -bmanagement $4 
else 
    $WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement $4 
fi

Salvați și închideți fișierul când ați terminat.

În cele din urmă, rulați comanda de mai jos pentru a schimba  directorul de instalare WildFly  /opt/wildfly proprietatea  la utilizatorul wildfly.

sudo chown -RH wildfly: /opt/wildfly

Rularea WildFly ca serviciu Systemd

După configurarea WildFly ca mod independent, veți configura un fișier de serviciu systemd pentru WildFly. Acest lucru vă permite să rulați WIldFly în fundal și să gestionați WildFly cu ușurință prin utilitarul systemctl.

Copiați fișierul serviciului WildFly systemd în /etc/systemd/system/wildfly.service și modificați-l utilizând comanda editorului nano de mai jos.

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/ 
sudo nano /etc/systemd/system/wildfly.service

În cadrul opțiunii ExecStart , adăugați un nou parametru de pornire $WILDFLY_CONSOLE_BIND pentru a activa consola de administrare WildFly.

ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND $WILDFLY_CONSOLE_BIND

Când ați terminat, salvați fișierul și ieșiți din editor.

Apoi, rulați comanda systemctl de mai jos pentru a reîncărca managerul systemd.

sudo systemctl daemon-reload

Apoi porniți și activați serviciul wildfly folosind comanda de mai jos.

sudo systemctl start wildfly 
sudo systemctl enable wildfly

Verificați serviciul wildfly pentru a vă asigura că serviciul rulează executând următoarea comandă.

sudo systemctl status wildfly

Dacă serviciul wildfly rulează, va fi afișată următoarea ieșire.

De asemenea, puteți verifica lista de porturi deschise pe sistemul dvs. executând următoarea comandă.

ss -antpl | grep -i java

Ar trebui să vedeți mai multe porturi 8080, 8443 și 9990 pe care le folosește WildFly.

Adăugarea de gestionare a utilizatorilor WildFly

După instalarea WildFly, veți crea un nou utilizator administrator pentru WildFly prin intermediul scriptului /opt/wildfly/bin/add-user.sh .

Rulați scriptul /opt/wildfly/bin/add-user.sh după cum urmează.

sh /opt/wildfly/bin/add-user.sh

Acum veți fi întrebat cu următoarele:

  • Introduceți a pentru a crea un nou utilizator de gestionare WildFly.
  • Introduceți utilizatorul și parola de administrator, apoi repetați-o.
  • Apăsați ENTER când vi se cere configurarea grupului.
  • Introduceți da pentru a vă adăuga utilizatorul la ManagementRealm.

Odată ce procesul este încheiat, ar trebui să vedeți că noul dvs. utilizator a fost adăugat la configurația WildFly.

Configurarea Nginx ca proxy invers

În acest moment, ați realizat instalarea WildFLy, ați activat consola de administrare și ați creat utilizatorul administrator. Următorul pas este să instalați Nginx și să îl configurați ca proxy invers pentru WildFly.

Executați comanda apt de mai jos pentru a instala Nginx pe serverul dvs. Debian. Introduceți y pentru a continua instalarea.

sudo apt install nginx

Odată ce Nginx este instalat, îl veți configura ca proxy invers pentru WildFly.

Creați o nouă configurație pentru anteturile proxy Nginx /etc/nginx/conf.d/proxy_headers.conf utilizând comanda editorului nano de mai jos.

sudo nano /etc/nginx/conf.d/proxy_headers.conf

Introduceți următoarea configurație în fișier.

``` 
proxy_set_header Gazdă $gazdă; 
proxy_set_header X-Forwarded-Proto $schema; 
add_header Front-End-Https activat; 
add_header Cache-Control fără cache; 
```

Salvați și părăsiți fișierul când ați terminat.

Apoi, lansați următoarea comandă nano editor pentru a crea o nouă configurație de bloc de server Nginx /etc/nginx/sites-available/wildfly .

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

Introduceți configurația de mai jos pentru a configura Nginx ca proxy invers pentru instalarea WildFly. Asigurați-vă că schimbați domeniul în cadrul opțiunii server_name , puteți utiliza un nume de domeniu local.

server { 
    listen 80; 
    nume_server wildfly.howtoforge.local; 

    locație / { 
        include conf.d/proxy_headers.conf; 
        proxy_pass http://127.0.0.1:8080; 
    } 

    location /management { 
        include conf.d/proxy_headers.conf; 
        proxy_pass http://127.0.0.1:9990/management; 
    } 

    location /consola { 
        include conf.d/proxy_headers.conf; 
        proxy_pass http://127.0.0.1:9990/console; 
    } 

    location /logout { 
        include conf.d/proxy_headers.conf; 
        proxy_pass http://127.0.0.1:9990/logout; 
    } 

    location /eroare { 
        include conf.d/proxy_headers.conf; 
        proxy_pass http://127.0.0.1:9990; 
    } 

}

Salvați și închideți fișierul când ați terminat.

Acum rulați comanda de mai jos pentru a activa fișierul gazdă virtual wildfly și pentru a vă verifica sintaxa Nginx.

sudo ln -s /etc/nginx/sites-available/wildfly /etc/nginx/sites-enabled/ 
sudo nginx -t

Dacă aveți o sintaxă Nginx adecvată, va fi afișată rezultatul „ sintaxa este ok—testul a reușit ” .

În cele din urmă, rulați comanda de mai jos pentru a reporni serviciul Nginx și aplicați modificările pe care le-ați făcut. Apoi, verificați serviciul Nginx pentru a vă asigura că serviciul rulează.

sudo systemctl restart nginx 
sudo systemctl status nginx

Dacă Nginx rulează, ar trebui să obțineți ieșirea activă (în rulare) .

Accesarea WildFly prin Client

Pe computerul dvs. client, deschideți fișierul hosts folosind editorul de text. Pentru utilizatorii Windows, deschideți fișierul C:\Windows\System32\drivers\etc\hosts ca administrator, ca și pentru utilizatorii Linux sau macOS, deschideți fișierul /etc/hosts cu privilegii sudo.

Introduceți următoarea configurație și asigurați-vă că schimbați numele de domeniu local și adresa IP cu informațiile dvs.

192.168.5.15 wildfly.howtoforge.local

Salvați și închideți fișierul când ați terminat.

Lansați browserul web și vizitați domeniul local WildFly (de exemplu: http:wildfly.howtoforge.local/). Dacă instalarea dvs. are succes, ar trebui să vedeți pagina de index WildFly implicită, care este după cum urmează:

Acum faceți clic pe linkul Consola de administrare pentru a accesa consola de administrare WildFly. Aceasta va deschide o filă nouă și veți fi redirecționat către consola de administrare WildFly cu calea URL /consola.

Introduceți utilizatorul și parola de administrator pentru consola de administrare WildFly, apoi faceți clic pe Conectare.

Dacă aveți utilizatorul și parola corecte, ar trebui să vedeți consola de administrare WildFly în felul următor.

Apoi, faceți clic pe meniul Runtime și selectați serverul dvs. Ar trebui să vedeți confirmarea că WildFly funcționează.

În cele din urmă, selectați meniul Stare și ar trebui să vedeți starea detaliată a instalării WildFly, inclusiv configurația heap schimbată la 4GB.

[mai mult...]

Actualizare pentru BIOS-ul laptopului sau PC-ului Lenovo folosind aplicația Lenovo Vantage

Pentru a actualiza BIOS-ul laptopului sau PC-ului Lenovo folosind aplicația Lenovo Vantage, urmează pașii de mai jos:

1. Verifică cerințele înainte de actualizare

  • Asigură-te că laptopul este conectat la o sursă de alimentare (AC adapter) pe parcursul procesului.

  • Salvează orice muncă deschisă și închide toate aplicațiile active.

  • Evită oprirea sau trecerea dispozitivului în modul standby/hibernare în timpul actualizării.

2. Deschide Lenovo Vantage

  • Dacă nu ai aplicația instalată, descarc-o gratuit din Microsoft Store.

  • Lansează aplicația Lenovo Vantage pe dispozitivul tău.

3. Accesează opțiunea de actualizare

  • Navighează la secțiunea System Update din meniul aplicației.

  • Apasă pe butonul Check for Updates pentru ca Lenovo Vantage să scaneze și să identifice actualizările disponibile, inclusiv cele pentru BIOS.

4. Instalează actualizarea BIOS

  • După scanare, localizează actualizarea BIOS în lista de actualizări disponibile.

  • Selectează opțiunea și apasă pe Install All Updates pentru a începe procesul de instalare.

  • Lenovo Vantage va descărca și iniția automat procesul de instalare a BIOS-ului.

5. Repornește dispozitivul

  • Aplicația îți va solicita să repornești sistemul pentru a finaliza instalarea. Apasă pe OK pentru a permite repornirea.

  • Urmează instrucțiunile afișate pe ecran după restart pentru a finaliza procesul de actualizare.

6. Verifică istoricul actualizărilor

  • După finalizarea procesului, poți verifica secțiunea Full History din Lenovo Vantage pentru a vedea ce actualizări au fost instalate.

Recomandări suplimentare:

  • Activează opțiunea Auto Update Settings în Lenovo Vantage pentru ca aplicația să instaleze automat viitoarele actualizări ale BIOS și ale driverelor.

  • Dacă întâmpini probleme, poți verifica ghidurile suplimentare disponibile pe site-ul oficial Lenovo sau în aplicație.

Acest proces simplifică semnificativ actualizarea BIOS-ului, eliminând riscurile asociate cu metodele manuale.

[mai mult...]