Si të konfiguroni një server Tekkit Classic në Ubuntu 16.10
Përdorimi i një sistemi të ndryshëm? Çfarë është Tekkit Classic? Tekkit Classic është një modpack për lojën që të gjithë e njohin dhe e duan; Minecraft. Ai përmban disa nga ver
Redmine është një mjet falas dhe me burim të hapur, i bazuar në ueb për menaxhimin e projektit. Është shkruar në Ruby on Rails dhe mbështet shumë serverë të bazës së të dhënave për ruajtjen e bazës së të dhënave. Është një aplikacion i pasur me veçori që mbështet projekte të shumta, ACL të bazuar në role dhe një sistem të gjurmimit të çështjeve. Ai gjithashtu ka mbështetje për grafikun dhe kalendarin Gantt, menaxhimin e skedarëve, për wiki dhe forum projektesh, si dhe shumë veçori të tjera. Ai mbështet sistemet e kontrollit të versioneve si Git, SVN ose CVS. Ai është gjithashtu shumëgjuhësh, duke mbështetur deri në 49 gjuhë.
Për këtë tutorial, ne do të përdorim 192.168.1.1
si adresën IP publike dhe redmine.example.com
si emrin e domenit të drejtuar drejt shembullit Vultr. Ju lutemi sigurohuni që të zëvendësoni të gjitha rastet e emrit të domenit shembull dhe adresës IP me atë aktuale.
Përditësoni sistemin tuaj bazë duke përdorur udhëzuesin Si të përditësoni Ubuntu 16.04 . Pasi sistemi juaj të jetë përditësuar, vazhdoni të instaloni varësitë.
Redmine është shkruar në Ruby on Rails, kështu që ne do të kërkojmë që Phusion Passenger të integrohet me serverin e internetit Apache për të shërbyer aplikacionin.
Instaloni Apache.
sudo apt -y install apache2 apache2-dev libcurl4-openssl-dev
Për të ndërtuar Ruby dhe Passenger, do të na duhen gjithashtu disa mjete zhvillimi. Instaloni mjetet e nevojshme.
sudo apt -y install imagemagick libmagickwand-dev git build-essential automake libgmp-dev
Redmine mbështet lloje të shumta të serverëve të bazës së të dhënave si MySQL, PostgreSQL dhe MSSQL. Në këtë tutorial, ne do të përdorim PostgreSQL për të pritur serverin e bazës së të dhënave Redmine.
PostgreSQL është një sistem bazë të dhënash objekt-relacionale. Depoja e parazgjedhur e Ubuntu përmban një version të vjetër të PostgreSQL, kështu që shtoni depon e PostgreSQL në sistem.
echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
Instaloni serverin e bazës së të dhënave PostgreSQL.
sudo apt -y install postgresql
Nisni serverin PostgreSQL dhe aktivizoni atë të fillojë automatikisht në kohën e nisjes.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Ndryshoni fjalëkalimin për përdoruesin e paracaktuar të PostgreSQL.
sudo passwd postgres
Identifikohu si përdorues i PostgreSQL.
sudo su - postgres
Krijo një përdorues të ri PostgreSQL për Redmine.
createuser redmine
Ju lejohet të përdorni çdo emër përdoruesi në vend të redmine
. PostgreSQL siguron psql
shell për të ekzekutuar pyetje në bazën e të dhënave. Kalo në shell PostgreSQL.
psql
Vendosni një fjalëkalim për përdoruesin e krijuar rishtazi për bazën e të dhënave Redmine.
ALTER USER redmine WITH ENCRYPTED password 'DBPassword';
Zëvendësoni DBPassword
me një fjalëkalim të sigurt. Krijo një bazë të dhënash të re për instalimin Redmine.
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
Dalje nga psql
guaska.
\q
Kalo te sudo
përdoruesi.
exit
Instaloni disa varësi të tjera të kërkuara PostgreSQL.
sudo apt -y install libpqxx-dev protobuf-compiler
Ne do të instalojmë versionin më të fundit të Ruby duke përdorur RVM. Përdoret për të instaluar dhe menaxhuar versione të shumta të Ruby.
Shtoni depon e RVM.
sudo apt-add-repository -y ppa:rael-gc/rvm
sudo apt update
Instaloni RVM.
sudo apt -y install rvm
Meqenëse duhet të instalojmë sistemin Ruby gjerësisht, ne do të kalojmë përkohësisht te përdoruesi rrënjë.
sudo -i
Përditësoni variablat e mjedisit.
echo "source /etc/profile.d/rvm.sh" | tee -a /etc/profile
source /etc/profile.d/rvm.sh
Instaloni versionin më të fundit të Ruby.
rvm install 2.5.1
Shënim: Nëse jeni duke përdorur një version tjetër të Ruby, sigurohuni që të përditësoni rrugën Ruby në përputhje me rrethanat.
Përdorni versionin e instaluar të Ruby.
rvm use 2.5.1 --default
Mund të verifikoni versionin e tij.
ruby -v
Do të shihni një dalje të ngjashme.
root@vultr:~# ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
Instalo bundler
, i cili është menaxheri i varësisë për aplikacionin Ruby.
gem install bundler
Ruby është instaluar tani. Përpara se të instalojmë Redmine, do të na duhet të instalojmë Phusion Passenger.
Ekzekutoni komandën e mëposhtme për të instaluar Passenger.
gem install passenger
Instaloni modulin Apache për Passenger.
passenger-install-apache2-module
Skripti i instaluesit do t'ju bëjë disa pyetje. Së pari, ai do t'ju japë informacion në lidhje me procesin e instalimit. Më pas, do t'ju kërkojë të zgjidhni gjuhën që do të përdorni. Meqenëse aplikacioni ynë është shkruar në Ruby on Rails, zgjidhni Ruby nga menyja dhe shtypni ENTERpër të vazhduar më tej.
Which languages are you interested in?
Use <space> to select.
If the menu doesn't display correctly, press '!'
‣ ⬢ Ruby
⬢ Python
⬡ Node.js
⬡ Meteor
Instaluesi tani do të kontrollojë për kërkesat. Instaluesi nuk do të hasë ndonjë varësi që mungon dhe do të vazhdojë automatikisht me përpilimin dhe instalimin e modulit.
Pasi të instalohet moduli, do t'ju kërkojë të shtoni modulin në skedarin e konfigurimit të Apache.
Almost there!
Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
</IfModule>
After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!
Press ENTER when you are done editing.
We will skip this for now and will complete it later in the tutorial. Press ENTER to skip this step.
Finally, the installer script will validate the installation and you will see a warning saying the Passenger module is not specified in Apache configuration.
Validating installation...
* Checking whether this Passenger install is in PATH... ✓
* Checking whether there are no other Passenger installations... ✓
* Checking whether Apache is installed... ✓
* Checking whether the Passenger module is correctly configured in Apache... (!)
You did not specify 'LoadModule passenger_module' in any of your Apache
configuration files. Please paste the configuration snippet that this
installer printed earlier, into one of your Apache configuration files, such
as /etc/apache2/apache2.conf.
Detected 0 error(s), 1 warning(s).
Press ENTER to continue.
Now that we have installed the Passenger module for Apache, proceed to download and install Redmine. Switch to the sudo
user again since we do not need to run any more commands using root
user.
exit
It is recommended to use an unprivileged user to run the application to keep it isolated from rest of the system. Create a new user for Redmine and switch to the newly created user.
sudo adduser --disabled-password --gecos "Redmine User" redmine
sudo su - redmine
Download the latest version of Redmine from the official Redmine download page.
cd ~
wget http://www.redmine.org/releases/redmine-3.4.4.tar.gz
Extract the archive and rename the directory for the sake of convenience.
tar -xf redmine-*.tar.gz
mv redmine-*/ redmine/
Copy the example configuration files to its production location.
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
Open the database configuration file we just copied to enter the database details.
nano config/database.yml
By default, the database file is configured for MySQL. Find the configurations for production and development, and test which uses the MySQL adapter. Comment out all of these lines.
#production:
# adapter: mysql2
# database: redmine
# host: localhost
# username: root
# password: ""
# encoding: utf8
#development:
# adapter: mysql2
# database: redmine_development
# host: localhost
# username: root
# password: ""
# encoding: utf8
#test:
# adapter: mysql2
# database: redmine_test
# host: localhost
# username: root
# password: ""
# encoding: utf8
Furthur, find the lines which are commented, having production
configuration for the postgresql
adapter. Uncomment those lines and update the database name and user credentials. Make sure to use the correct indentation, which is two spaces.
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "DBPassword"
Configure the application to use the PostgreSQL configuration.
bundle config build.pg --with-pg-config=/usr/bin/pg_config
Install the dependencies required by the application.
bundle install --path vendor/bundle --without development test
You will see the following message at the end of the installation.
Installing roadie-rails 1.1.1
Bundle complete! 31 Gemfile dependencies, 55 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into `./vendor/bundle`
The following command generates secret tokens that are used to encode the session data.
bundle exec rake generate_secret_token
Write the PostgreSQL database.
RAILS_ENV=production bundle exec rake db:migrate
Run the following command, which writes the default data into PostgreSQL database.
RAILS_ENV=production bundle exec rake redmine:load_default_data
The above command will ask you to choose the default language to be used with the application. The default choice is English; choose according to your preference.
[redmine@vultr redmine]$ RAILS_ENV=production bundle exec rake redmine:load_default_data
Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]
====================================
Default configuration data loaded.
Installation of the Redmine application is now finished. Change ownership and permissions of the directories and files.
mkdir -p tmp tmp/pdf public/plugin_assets
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets
We have configured everything we need from the non-privileged user. Switch back to the sudo
user by running su - <username>
.
Add the Passenger module for Apache into the Apache configuration file. This will automatically load the Passenger module.
echo "LoadModule passenger_module /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/buildout/apache2/mod_passenger.so" | sudo tee -a /etc/apache2/apache2.conf
Note: The path to the Passenger module may change when there is a new release of Passenger. To find the path to the module, use the sudo find / -name mod_passenger.so
command.
Create a new virtual host file for your Redmine application.
sudo nano /etc/apache2/sites-available/redmine.conf
Populate the file with the following content.
<VirtualHost *:80>
ServerName redmine.example.com
DocumentRoot /home/redmine/redmine/public
PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
PassengerUser redmine
<Directory /home/redmine/redmine/public>
Allow from all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>
Make sure to replace redmine.example.com
with your actual domain name. Also, make sure that the path to the PassengerRoot
and PassengerDefaultRuby
are correct. The path to the binaries may change when there is a new release of Ruby or Passenger. To find these paths, run the following command.
passenger-config about ruby-command
You will get following output.
user@vultr:~$ passenger-config about ruby-command
passenger-config was invoked through the following Ruby interpreter:
Command: /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
Version: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
To use in Apache: PassengerRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
To use in Nginx : passenger_ruby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
To use with Standalone: /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/bin/passenger start
## Notes for RVM users
Do you want to know which command to use for a different Ruby interpreter? 'rvm use' that Ruby interpreter, then re-run 'passenger-config about ruby-command'.
Once the Virtual host file is created. Activate the configuration.
sudo a2ensite redmine
Restart the Apache web server.
sudo systemctl restart apache2
Tani mund të përdorni ndërfaqen tuaj Redmine në http://redmine.example.com
. Hyni me emrin e përdoruesit admin
dhe fjalëkalimin admin
. Në hyrjen tuaj të parë, Redmine do t'ju kërkojë të përditësoni fjalëkalimin.
Meqenëse instalimi ynë Redmine është në një server me pamje publike, rekomandohet përdorimi i SSL për të siguruar shkëmbimin e të dhënave nga serveri.
Shtoni depon e Certbot.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Instaloni Certbot, i cili është aplikacioni i klientit për Let's Encrypt CA.
sudo apt -y install certbot
Shënim: Për të marrë certifikata nga Let's Encrypt CA, domeni për të cilin do të krijohen certifikatat duhet të drejtohet drejt serverit. Nëse jo, bëni ndryshimet e nevojshme në të dhënat DNS të domenit dhe prisni që DNS të përhapet përpara se të bëni përsëri kërkesën për certifikatë. Certbot kontrollon autoritetin e domenit përpara se të japë certifikatat.
Gjeneroni certifikatat SSL.
sudo certbot certonly --webroot -w /home/redmine/redmine/public -d redmine.example.com
Certifikatat e krijuara ka të ngjarë të ruhen në /etc/letsencrypt/live/redmine.example.com/
. Certifikata SSL do të ruhet si cert.pem
dhe çelësi privat do të ruhet si privkey.pem
.
Le të Enkriptojmë certifikatat skadojnë për 90 ditë, prandaj rekomandohet të konfiguroni rinovimin automatik të certifikatave duke përdorur Cron jobs.
Hapni skedarin e punës Cron për root
përdoruesin.
sudo crontab -e
Shtoni rreshtin e mëposhtëm në fund të skedarit.
30 5 * * * /usr/bin/certbot renew --quiet
Puna e mësipërme në Cron do të funksionojë çdo ditë në orën 5:30 të mëngjesit. Nëse certifikata duhet të skadojë, ajo do të rinovohet automatikisht.
Aktivizo modulin SSL për Apache.
sudo a2enmod ssl
Redaktoni skedarin e hostit virtual që krijuam më parë për Redmine.
sudo nano /etc/apache2/sites-available/redmine.conf
Modifiko skedarin e hostit virtual që të jetë i ngjashëm me sa vijon.
<VirtualHost *:80>
ServerName redmine.example.com
Redirect permanent / https://redmine.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName redmine.example.com
DocumentRoot "/home/redmine/redmine/public"
<Directory "/home/redmine/redmine/public">
Options None
Require all granted
</Directory>
PassengerAppEnv production
PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
PassengerUser redmine
PassengerHighPerformance on
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/redmine.example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/redmine.example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/redmine.example.com/chain.pem
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
<IfModule headers_module>
Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
</IfModule>
</VirtualHost>
Ruani skedarin dhe dilni nga redaktori.
Rinisni Apache në mënyrë që ndryshimet të hyjnë në fuqi.
sudo systemctl restart apache2
Tani mund të hyni në Redmine HTTPS
në https://redmine.example.com
.
Urime, ju keni instaluar me sukses Redmine në shembullin tuaj Ubuntu 16.04. Filloni të zhvilloni projektin tuaj ose duke krijuar ose importuar projektin tuaj.
Përdorimi i një sistemi të ndryshëm? Çfarë është Tekkit Classic? Tekkit Classic është një modpack për lojën që të gjithë e njohin dhe e duan; Minecraft. Ai përmban disa nga ver
Përdorimi i një sistemi të ndryshëm? Jekyll është një alternativë e shkëlqyeshme për WordPress për blogimin ose ndarjen e përmbajtjes. Nuk kërkon ndonjë bazë të dhënash dhe është shumë e lehtë i
Përdorimi i një sistemi të ndryshëm? Nëse blini një server Debian, atëherë duhet të keni gjithmonë arnimet dhe përditësimet më të fundit të sigurisë, pavarësisht nëse jeni në gjumë apo jo
Squid është një program i popullarizuar, falas Linux që ju lejon të krijoni një përfaqësues në ueb përcjellës. Në këtë udhëzues, do të shihni se si të instaloni Squid në CentOS për t'ju kthyer
Përdorimi i një sistemi të ndryshëm? Red5 është një server mediash me burim të hapur i implementuar në Java që ju lejon të ekzekutoni aplikacione Flash me shumë përdorues si transmetimi i drejtpërdrejtë
Përdorimi i një sistemi të ndryshëm? Apache Cassandra është një sistem i menaxhimit të bazës së të dhënave NoSQL falas dhe me burim të hapur që është krijuar për të ofruar shkallëzim, të lartë
Përdorimi i një sistemi të ndryshëm? Apache Cassandra është një sistem i menaxhimit të bazës së të dhënave NoSQL falas dhe me burim të hapur që është krijuar për të ofruar shkallëzim, të lartë
Përdorimi i një sistemi të ndryshëm? Forumi Vanilla është një aplikacion forumi me burim të hapur i shkruar në PHP. Është plotësisht i personalizueshëm, i lehtë për t'u përdorur dhe mbështet jashtëm
Përdorimi i një sistemi të ndryshëm? Hyrje Kanboard është një program softuerik për menaxhimin e projekteve me burim të lirë dhe me burim të hapur, i cili është krijuar për të lehtësuar dhe vizualizuar
Përdorimi i një sistemi të ndryshëm? Hyrje Kanboard është një program softuerik për menaxhimin e projekteve me burim të lirë dhe me burim të hapur, i cili është krijuar për të lehtësuar dhe vizualizuar
Hyrje Lynis është një mjet falas, me burim të hapur të auditimit të sistemit, që përdoret nga shumë administratorë të sistemit për të verifikuar integritetin dhe për të forcuar sistemet e tyre. Unë
Përdorimi i një sistemi të ndryshëm? Thelia është një mjet me burim të hapur për krijimin e faqeve të internetit të e-biznesit dhe menaxhimin e përmbajtjes në internet të shkruar në PHP. Kodi burimor Thelia i
Përdorimi i një sistemi të ndryshëm? Microweber është një CMS me burim të hapur drag and drop dhe dyqan online. Kodi burimor Microweber është pritur në GitHub. Ky udhëzues do t'ju tregojë
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, i lirë dhe me burim të hapur, i shkallës së ndërmarrjes.
Përdorimi i një sistemi të ndryshëm? Mattermost është një alternativë me burim të hapur, të vetë-strehuar për shërbimin e mesazheve Slack SAAS. Me fjalë të tjera, me Mattermost, ju rreth
Përdorimi i një sistemi të ndryshëm? DotCMS është një sistem menaxhimi i përmbajtjes me burim të hapur, të nivelit të ndërmarrjes, i shkruar në Java. Ai përmban pothuajse çdo veçori të kërkuar
Përdorimi i një sistemi të ndryshëm? BigTree CMS 4.2 është një sistem i shpejtë dhe i lehtë, pa pagesë dhe me burim të hapur, sistem i menaxhimit të përmbajtjes së nivelit të ndërmarrjes (CMS) me një
Paneli i kontrollit Plesk përmban një integrim shumë të bukur për Lets Encrypt. Lets Encrypt është një nga ofruesit e vetëm SSL që jep plotësisht certifikata
Lets Encrypt është një autoritet certifikimi i dedikuar për të ofruar certifikata SSL pa pagesë. cPanel ka ndërtuar një integrim të pastër në mënyrë që ju dhe klienti juaj
Adminer është një alternativë e lehtë për phpMyAdmin. Në krahasim, madhësia totale e paketës së saj është 400 KB, kundrejt 4.2 MB të phpMyAdmin. Ndryshe nga phpMyAdmin, e cila
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.
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.
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.
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.
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ë…
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.
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.
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ë.
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ë.
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ë