Si të konfiguroni një aplikacion në internet Meteor.js me MongoDB dhe Apache në Ubuntu 16.04 LTS

Meteor.js është një kornizë JavaScript me burim të hapur i shkruar me Node.js në mendje. Është popullor për shkak të pikëpamjes së tij për ndërtimin e aplikacioneve në internet në JavaScript të pastër. Meteor përfshin mbështetje JavaScript të përparme që funksionon në shfletuesin e internetit, si dhe JavaScript në fund, i cili do të ekzekutohej në serverin pritës. Ai integrohet shumë mirë me kornizat e para të JavaScript, të tilla si React dhe Angular.js, si dhe MongoDB, një bazë e të dhënave popullore NoSQL. Disa arsye të mëdha për të zgjedhur Meteor.js janë si më poshtë:

  • Meteor.js është një kornizë e plotë. Pra, me të, ju merrni gjithçka që mund t'ju nevojitet: Baza e të dhënave, fundi i përparmë, pjesa e pasme. Meteori bën një punë të mrekullueshme për t'i lidhur të gjitha së bashku.

  • Shpejtësia. Sistemi intuitiv i paketave të Meteor ju jep shumë mjete që mund t'ju nevojiten për të përsosur aplikacionin tuaj.

  • Ka mbështetje të mirë nga Grupi i Zhvilluesve Meteor, si dhe nga zhvilluesit e tjerë që e përdorin atë. Do të jeni lehtësisht në gjendje të kuptoni çdo problem që mund të keni dhe t'i zgjidhni ato shpejt.

Në këtë tutorial, ne do të arrijmë qëllimet e mëposhtme në Ubuntu 16.04:

  • Instalo Node.js, kohën tonë të ekzekutimit të Javascript.

  • Instaloni Meteor.js.

  • Instaloni MongoDBbazën e të dhënave të zgjedhur të Meteor.

  • Instaloni Apache, përfaqësuesin tonë të kundërt të zgjedhur dhe konfiguroni domenin tonë nëse është e aplikueshme.

  • Testoni faqen tonë të internetit.

  • Vendosni faqen tonë të internetit për prodhim.

Instalimi i Node.js

Fillimisht do t'ju duhet të instaloni Node.js, i cili është interpretuesi ynë JavaScript dhe thelbi i Meteor. Do të na lejojë të ekzekutojmë Meteor dhe aplikacione të tjera Node.js që mund të kemi në të ardhmen. Në këtë situatë, ne do të instalojmë Node.js 8. Për të nisur shkarkimin, thjesht ekzekutoni sa vijon në terminalin tuaj.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Prisni që shkarkimi dhe instalimi të përfundojë.

Instalimi i MongoDB

Më pas, ne do të instalojmë bazën tonë të të dhënave: MongoDB. MongoDB është një bazë e të dhënave e dokumenteve NoSQL pa pagesë, me burim të hapur dhe bazën e të dhënave të zgjedhura të Meteor. Ai përdor një format të ngjashëm me JSON për dokumentet e tij, në krahasim me tabelat e strukturuara në një bazë të dhënash tradicionale SQL.

Importoni çelësin publik MongoDB të përdorur nga APT(Advanced Packaging Terminal). Kjo lejon APT të verifikojë paketën; në këtë rast, MongoDB.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Krijo skedarin e nevojshëm të listës për Ubuntu 16.04.

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Filloni instalimin e MongoDB dhe prisni që instalimi të përfundojë.

sudo apt update && sudo apt install mongodb-org -y

Hapni shërbimin systemd për modifikim.

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

Kopjoni dhe ngjisni sa vijon për të përfunduar shërbimin systemd.

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

Përdorni " Control-O" për të ruajtur dhe " Control-X" për të dalë.

Drejtoni shërbimin MongoDB systemd duke shtypur sudo systemctl start mongodbterminalin tuaj.

Për të verifikuar që ka filluar me sukses, shkruani sa vijon.

sudo systemctl status mongodb

Do të shihni që shërbimi është aktiv.

Instalimi dhe konfigurimi i Apache2

Më pas, ne do të instalojmë Apache. Apache është një softuer pa pagesë dhe me burim të hapur të serverit në internet, i cili gjithashtu funksionon si një përfaqësues i kundërt, gjë që do të përdorim në këtë tutorial. Nevojitet një përfaqësues i kundërt për të lidhur aplikacionin tonë Meteor.js me port 80. Node.js bllokon aplikacionet që të ekzekutohen në atë port pa qasje rrënjësore. Apache funksionon si rootautomatikisht ashtu edhe lidhet me port 80, kështu që ne nuk do të duhet të shqetësohemi për këtë kur të vijë koha për të drejtuar faqen tonë të internetit.

Instaloni Apache.

sudo apt update && sudo apt install apache2

Për të lejuar hyrjen në portet e jashtme të ueb-it, si p.sh. port 80, ne duhet të konfigurojmë murin tonë të zjarrit për Apache. Ne e bëjmë këtë përmes UFW(Firewall i pakomplikuar).

sudo ufw allow 'Apache Full'

Kjo do të lejojë hyrjen në " Apache Full" profilin. Kjo na jep trafikun në hyrje në port 80, në të cilën do të funksionojë aplikacioni ynë.

Instalimi i Meteor.js dhe krijimi i aplikacionit tonë bazë

Tani, ne do të instalojmë kornizën tonë të internetit: Meteor.js. Ne do të përdorim një skript të thjeshtë bash të ofruar nga ekipi i Meteor për ta instaluar atë.

curl https://install.meteor.com/ | sh

Prisni që instalimi të përfundojë. Në thelb ajo që bën skripti është që shkarkon Meteor nga faqja zyrtare e internetit dhe e instalon atë globalisht, kështu që ne mund ta përdorim atë nga kudo. Pasi të përfundojë, ne mund të krijojmë drejtorinë tonë të aplikacionit. Meteori ka një mjet të vogël të dobishëm për ta përdorur për ta bërë këtë, të quajtur meteor create. Për të krijuar drejtorinë e aplikacionit tuaj, shkruani sa vijon.

meteor create <projectname>

Dosja do të krijohet me emrin e specifikuar ( <projectname>).

Vendosja e përfaqësuesit tonë të kundërt të Apache

Tani që kemi konfiguruar drejtorinë tonë të aplikacionit, mund të vazhdojmë me konfigurimin e përfaqësuesit tonë të kundërt. Apache përdor një modul të quajtur mod_proxy, i cili zbaton një përfaqësues për Apache.

sudo apt-get install libapache2-mod-proxy-html libxml2-dev -y

Kjo do të instalojë modulin dhe do ta bëjë atë të disponueshëm për përdorim të Apache.

Më pas, do të na duhet të aktivizojmë të gjitha modulet e nevojshme që Apache duhet të ekzekutojë. Këtë do ta bëjmë me a2enmod, një mjet që mundëson module për Apache. Këto module do të na lejojnë të përfitojmë nga përfaqësuesi i kundërt. Thjesht shkruani këto komanda në terminalin tuaj.

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html

Pas kësaj, do të na duhet të çaktivizojmë fillimin e faqes së paracaktuar të Apache, në mënyrë që të mund të hapim faqen tonë. Përndryshe, aplikacioni i paracaktuar Apache do të anashkalojë tonën. Për të çaktivizuar sitin e paracaktuar, thjesht ekzekutoni sa vijon.

sudo a2dissite 000-default

Tani do të krijojmë skedarin tonë të hostit virtual. Për ta bërë këtë, thjesht hapni një redaktues teksti.

sudo nano /etc/apache2/sites-available/<projectname>

Kopjoni dhe ngjisni sa vijon.

<VirtualHost *:80>
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  ProxyPreserveHost On
  # Servers to proxy the connection, or
  # List of application servers Usage
  ProxyPass / http://0.0.0.0:3000/
 ServerName localhost
</VirtualHost>
  • VirtualHost *:80: I thotë Apache-t të bashkëngjisë në portin 80, që është ajo që duam për aplikacionin tonë në ueb.

  • ProxyPass: Adresa IP e sajtit që dëshironi të përcjellni te përfaqësuesi i kundërt. Kjo ka shumë të ngjarë të jetë IP e VPS-së tuaj

  • ServerName: Emri i serverit tuaj (emri i paracaktuar është zakonisht localhost).

Pasi të keni përfunduar me konfigurimin e cilësimeve të nevojshme, përdorni " Control-O" për të ruajtur dhe " Control-X" për të dalë.

Drejtimi i faqes për herë të parë

Për të testuar dhe për t'u siguruar që faqja e internetit po funksionon, shkruani sa vijon në drejtorinë e projektit.

meteor

Do të shihni daljen e mëposhtme që tregon se faqja juaj ka filluar me sukses.

=> App running at: http://localhost:3000/

Kini parasysh se Meteor, si parazgjedhje dëgjon në port 3000.

Krijimi i faqes sonë të internetit për prodhim

Për t'u siguruar që aplikacioni ynë është në gjendje të funksionojë, ne do të përdorim një shërbim systemd. Ngjashëm me atë që bëmë më lart me MongoDB, ky shërbim i sistemit do të sigurohet që faqja jonë e internetit të fillojë sa herë që sistemi ynë të fillojë dhe të vazhdojë të funksionojë. Ai gjithashtu do të rifillojë aplikacionin tonë, në rast se ai rrëzohet për çfarëdo arsye. Për të konfiguruar shërbimin tonë systemd, shkruani sa vijon në terminalin tuaj.

sudo nano /etc/systemd/system/<projectname>.service

Ja se si dëshironi të duket skedari juaj.

[Service]
WorkingDirectory=/home/<yourusername>/<projectname>
ExecStart=/usr/local/bin/meteor --production
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<projectName>
User=<yourusername>
Environment=NODE_ENV=production
Environment=PWD=/home/<yourusername>/<projectname>
Environment=PORT=3000
Environment=HTTP_FORWARDED_COUNT=1

Shënim : Mos harroni të zëvendësoni projectnameme emrin e projektit dhe yourusernameme emrin e përdoruesit të VPS.

Këtu janë disa linja kryesore që duhet t'i mbani parasysh.

  • WorkingDirectory: Drejtoria e aplikacionit tuaj.

  • Restart: Rinisja ose jo e aplikimit të tij ndalon për çfarëdo arsye.

  • User: Emri juaj i përdoruesit.

  • Environment=PWD: Ident me WorkingDirectory.

  • Environment=PORT: Porti në të cilin po ekzekutohet aplikacioni juaj. Parazgjedhja është 3000.

Ruani dhe mbyllni skedarin.

Tani do ta aktivizojmë dhe do të fillojmë shërbimin.

sudo systemctl enable <projectname>.service

Ku <projectname>është emri i skedarit të shërbimit që kemi krijuar.

Më pas do të fillojmë shërbimin.

sudo systemctl start <projectname>.service

Aplikimi juaj do të fillojë. Për të verifikuar që është nisur, thjesht ekzekutoni sa vijon.

sudo systemctl status <projectname>

Do të shihni që është aktiv, duke verifikuar që shërbimi ka nisur me sukses.

Më pas, ne do të kontrollojmë faqen tonë të internetit. Në shfletuesin tuaj të zgjedhur të internetit, lundroni në adresën tuaj IP.

http://your-server-ip/

Do të shihni ekranin e mostrës së Meteorit, duke verifikuar që keni bërë gjithçka në mënyrë korrekte.

Menaxhimi i aplikacionit tonë

Tani që kemi filluar aplikimin tonë, do të na duhet ta menaxhojmë atë.

Rinisja e aplikacionit tuaj

sudo systemctl restart <projectname>

Ndalimi i aplikacionit

sudo systemctl stop <projectname>

Duke parë statusin e aplikacionit

sudo systemctl status <projectname>

Shikimi i regjistrave

journalctl -u <projectname>

Tani keni konfiguruar me sukses MongoDB, Apache dhe Meteor dhe keni krijuar një server në internet Meteor.js për prodhim. Tani pjesa tjetër varet nga ju, për të dizajnuar faqen tuaj të internetit në pjesën e përparme dhe në pjesën e pasme. Ju keni akses në MongoDB për të ruajtur çdo të dhënë që ju nevojitet, dhe Node.js, i cili ofron një sërë modulesh të disponueshme përmes Node Package Manager ( NPM) për të forcuar më tej fundin tuaj. Për më shumë dokumentacion, mos ngurroni të vizitoni faqen e Meteor , ku mund të mësoni më tej se si të personalizoni faqen tuaj të internetit sipas dëshirës tuaj. Gjithashtu, mund t'i referoheni dokumentacionit MongoDB , kur keni të bëni me operacionet e bazës së të dhënave.


Instaloni Plesk në CentOS 7

Instaloni Plesk në CentOS 7

Përdorimi i një sistemi të ndryshëm? Plesk është një panel kontrolli i pronarit të hostit në internet që lejon përdoruesit të administrojnë faqet e tyre të internetit personale dhe/ose të klientëve, bazat e të dhënave

Instaloni Lets Encrypt SSL në aplikacionin WordPress me një klik

Instaloni Lets Encrypt SSL në aplikacionin WordPress me një klik

Hyrje Lets Encrypt është një shërbim i autoritetit certifikues që ofron certifikata falas TLS/SSL. Procesi i instalimit është thjeshtuar nga Certbot,

Si të instaloni dhe konfiguroni PHP 7.0 ose PHP 7.1 në Ubuntu 16.04

Si të instaloni dhe konfiguroni PHP 7.0 ose PHP 7.1 në Ubuntu 16.04

PHP dhe paketat e lidhura me to janë komponentët më të përdorur gjatë vendosjes së një serveri në internet. Në këtë artikull, ne do të mësojmë se si të konfigurojmë PHP 7.0 ose PHP 7.1 o

Si të instaloni Lighttpd (LLMP Stack) në CentOS 6

Si të instaloni Lighttpd (LLMP Stack) në CentOS 6

Hyrje Lighttpd është një fork i Apache që synon të jetë shumë më pak intensiv me burime. Është i lehtë, prandaj emri i tij, dhe është mjaft i thjeshtë për t'u përdorur. Instaloni

Tre panele kontrolli të serverit falas (Instalim i shpejtë)

Tre panele kontrolli të serverit falas (Instalim i shpejtë)

1. Virtualmin/Webmin Virtualmin është një panel kontrolli i fuqishëm dhe fleksibël i hostimit në internet për sistemet Linux dhe UNIX i bazuar në bazën e mirënjohur të internetit me burim të hapur.

Vendosja e një aplikacioni Yii në Ubuntu 14.04

Vendosja e një aplikacioni Yii në Ubuntu 14.04

Yii është një kornizë PHP që ju lejon të zhvilloni aplikacione më shpejt dhe më lehtë. Instalimi i Yii në Ubuntu është i thjeshtë, siç do të mësoni saktësisht

Përdorimi i ekranit në Ubuntu 14.04

Përdorimi i ekranit në Ubuntu 14.04

Screen është një aplikacion që lejon përdorimin e shumëfishtë të sesioneve të terminalit brenda një dritareje. Kjo ju lejon të simuloni dritare të shumta terminale ku është ma

Konfiguro serverin tuaj DNS në Debian/Ubuntu

Konfiguro serverin tuaj DNS në Debian/Ubuntu

Ky tutorial shpjegon se si të konfiguroni një server DNS duke përdorur Bind9 në Debian ose Ubuntu. Gjatë gjithë artikullit, zëvendësoni emrin e domain-it tuaj në përputhje me rrethanat. Në

Përdorimi i Logrotate për të menaxhuar skedarët e regjistrave

Përdorimi i Logrotate për të menaxhuar skedarët e regjistrave

Hyrje Logrotate është një mjet Linux që thjeshton administrimin e skedarëve të regjistrit. Zakonisht funksionon një herë në ditë përmes një pune cron dhe menaxhon bazën e regjistrave

Konfigurimi i rrjeteve statike dhe IPv6 në CentOS 7

Konfigurimi i rrjeteve statike dhe IPv6 në CentOS 7

VULTR kohët e fundit ka bërë ndryshime në fund të tyre dhe gjithçka duhet të funksionojë mirë tani me NetworkManager të aktivizuar. Nëse dëshironi të çaktivizoni

Modifikimi i Icinga2 për të përdorur Modelin Master/Klient në CentOS 6 ose CentOS 7

Modifikimi i Icinga2 për të përdorur Modelin Master/Klient në CentOS 6 ose CentOS 7

Icinga2 është një sistem i fuqishëm monitorimi dhe kur përdoret në një model master-klient, ai mund të zëvendësojë nevojën për kontrolle monitorimi të bazuara në NRPE. Master-klien

Përpiloni dhe instaloni Nginx me Modulin e PageSpeed ​​në Debian 8

Përpiloni dhe instaloni Nginx me Modulin e PageSpeed ​​në Debian 8

Në këtë artikull, ne do të shohim se si të përpiloni dhe instaloni Nginx mainline nga burimet zyrtare të Nginx me modulin PageSpeed, i cili ju lejon t

Si të instaloni Gitea në Debian 9

Si të instaloni Gitea në Debian 9

Përdorimi i një sistemi të ndryshëm? Gitea është një sistem alternativ i kontrollit të versionit me burim të hapur, i vetë-pritur, i mundësuar nga Git. Gitea është shkruar në Golang dhe është

Si të instaloni Gitea në Ubuntu 18.04

Si të instaloni Gitea në Ubuntu 18.04

Përdorimi i një sistemi të ndryshëm? Gitea është një sistem alternativ i kontrollit të versionit me burim të hapur, i vetë-pritur, i mundësuar nga git. Gitea është shkruar në Golang dhe është

Si të instaloni MODX Revolution në një FreeBSD 11 FAMP VPS

Si të instaloni MODX Revolution në një FreeBSD 11 FAMP VPS

Përdorimi i një sistemi të ndryshëm? MODX Revolution është një Sistem i Menaxhimit të Përmbajtjes (CMS) i shpejtë, fleksibël, i shkallëzuar, me burim të hapur, i shkallës së ndërmarrjes, i shkruar në PHP. Ajo i

Instalimi i Docker CE në Ubuntu 16.04

Instalimi i Docker CE në Ubuntu 16.04

Përdorimi i një sistemi të ndryshëm? Docker është një aplikacion që lejon vendosjen e programeve që ekzekutohen si kontejnerë. Ishte shkruar në programin popullor Go

Si të instaloni Golang 1.8.3 në CentOS 7, Ubuntu 16.04 dhe Debian 9

Si të instaloni Golang 1.8.3 në CentOS 7, Ubuntu 16.04 dhe Debian 9

Golang është një gjuhë programimi e zhvilluar nga Google. Falë shkathtësisë, thjeshtësisë dhe besueshmërisë së tij, Golang është bërë një nga më të populluarit

Përmirësimi i shfrytëzimit të lopës së pistë në CentOS

Përmirësimi i shfrytëzimit të lopës së pistë në CentOS

Çfarë është Lopa e Pistë (CVE-2016-5195)? Dobësia e Dirty Cow shfrytëzohet përmes mënyrës se si Linux përpunon kodin. Ai lejon që një përdorues i paprivilegjuar të gai

Konfiguro një përdorues jo-rrënjë me Sudo Access në Ubuntu

Konfiguro një përdorues jo-rrënjë me Sudo Access në Ubuntu

Të kesh vetëm një përdorues, i cili është root, mund të jetë i rrezikshëm. Pra, le ta rregullojmë atë. Vultr na ofron lirinë për të bërë si të duam me përdoruesit dhe serverët tanë

Rivendosni fjalëkalimin rrënjësor MySQL në Debian/Ubuntu

Rivendosni fjalëkalimin rrënjësor MySQL në Debian/Ubuntu

Nëse e keni harruar fjalëkalimin tuaj rrënjësor MySQL, mund ta rivendosni atë duke ndjekur hapat në këtë artikull. Procesi është mjaft i thjeshtë dhe funksionon në to

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë