Δημιουργία ιστολογίου Jekyll στο Ubuntu 16.04
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Jekyll είναι μια εξαιρετική εναλλακτική λύση στο WordPress για blogging ή κοινή χρήση περιεχομένου. Δεν απαιτεί βάσεις δεδομένων και είναι πολύ εύκολο
Μια κοινή χρήση ενός εικονικού διακομιστή Vultr είναι η φιλοξενία ιστοσελίδων Wordpress. Αυτός ο οδηγός σάς δείχνει πώς να αυτοματοποιήσετε τη διαμόρφωση ενός εικονικού διακομιστή από την αρχή (χρησιμοποιώντας το Ansible) και να αναπτύξετε πολλούς ανεξάρτητους ιστότοπους του Wordpress (χρησιμοποιώντας Webmin/Virtualmin). Το Virtualmin/Webmin είναι μια γραφική διεπαφή χρήστη που σας επιτρέπει να διαχειρίζεστε την ανάπτυξη πολλαπλών λογαριασμών εικονικών διακομιστή στον ίδιο υπολογιστή (πλήρης με στοίβα LAMP/LEMP). Το Virtualmin μοιάζει πολύ με το cPanel και το Plesk και σε αυτό το σεμινάριο θα χρησιμοποιήσουμε τη δωρεάν έκδοση GPL. Μετά την αρχική εγκατάσταση του διακομιστή Vultr και την εγκατάσταση του Virtualmin, μπορείτε πολύ γρήγορα να ρυθμίσετε πολλούς εικονικούς διακομιστές μέσα από τη διεπαφή Virtualmin και να εγκαταστήσετε απευθείας το Wordpress σε αυτόν τον εικονικό διακομιστή με το δικό του όνομα τομέα.
Σε αυτό το σεμινάριο, αντί να εισάγουμε με μη αυτόματο τρόπο μια μακρά λίστα εντολών, θα χρησιμοποιήσουμε το Ansible. Το Ansible είναι ένα εργαλείο αυτοματισμού που βασίζεται σε python και σας επιτρέπει να αυτοματοποιείτε αξιόπιστα και επανειλημμένα τις εργασίες διακομιστή. Αυτό σημαίνει ότι αφού ακολουθήσετε αυτό το σεμινάριο, θα μπορείτε να αναπτύξετε έναν άλλο διακομιστή με τον ίδιο τρόπο με μερικές μόνο εντολές.
Εγκαταστήστε το Ansible στον τοπικό σας υπολογιστή ή σε άλλο διακομιστή.
mkdir ansible
cd ansible
virtualenv env
source env/bin/activate
pip install ansible
Το Ansible λειτουργεί με τη σύνδεση στον διακομιστή σας μέσω SSH. Η πρόσβαση SSH είναι πιο ασφαλής εάν χρησιμοποιούμε κλειδιά αντί για κωδικό πρόσβασης. Ας δημιουργήσουμε πρώτα ένα ζεύγος δημόσιου και ιδιωτικού κλειδιού.
mkdir ssh_keys
ssh-keygen -t rsa -b 2048 -f ./ssh_keys
Στον ssh_keys
κατάλογο θα υπάρχουν τώρα δύο αρχεία ssh_keys
και ssh_keys.pub
. ssh_keys
είναι το αρχείο του ιδιωτικού κλειδιού σας και πρέπει να φυλάσσεται ασφαλές. Τώρα μπορείτε να ανοίξετε το ssh_keys.pub
, το οποίο περιέχει το δημόσιο κλειδί.
Συνδεθείτε στον πίνακα ελέγχου ιστού Vultr και κάντε κλικ στο Deploy New Server
.
Επιλέξτε μια περιοχή, Τύπος διακομιστή (Ubuntu 16.04), Μέγεθος διακομιστή και, στη συνέχεια, στο μέρος 6 ( SSH keys
), κάντε κλικ στο Add New
. Στην επόμενη σελίδα επικολλήστε το δημόσιο κλειδί σας και δώστε του ένα όνομα και κάντε κλικ στο Add SSH key
. Τέλος, βεβαιωθείτε ότι το κλειδί είναι επιλεγμένο και κάντε κλικ στο Deploy now
.
Μόλις ο διακομιστής ολοκληρώσει την ανάπτυξη, θα εμφανιστεί η διεύθυνση IP του. Θα χρειαστεί να συνδεθείτε στον διακομιστή DNS του ονόματος τομέα σας και να τον υποδείξετε σε αυτήν τη διεύθυνση.
Τα αρχεία αυτοματισμού του Ansible ονομάζονται roles
. Πρώτα θα ρυθμίσουμε τη δομή του καταλόγου (μέσα στον ansible
κατάλογο που μόλις δημιουργήσατε στο βήμα 1) και τα βασικά αρχεία.
mkdir -p group_vars roles/common/tasks/ roles/common/handlers
touch hosts group_vars/all deploy.yml roles/common/handlers/main.yml
Επεξεργαστείτε το hosts
αρχείο ώστε να περιέχει τα ακόλουθα, αντικαθιστώντας το ip address
για τον διακομιστή που μόλις δημιουργήσατε. Το Ansible χρησιμοποιεί python 2, το οποίο το Ubuntu 16.04 δεν έχει εγκαταστήσει από προεπιλογή. Στο hosts
αρχείο λέμε στον Ansible να χρησιμοποιήσει python 3.
[common]
192.0.2.1 ansible_python_interpreter=/usr/bin/python3
Επεξεργαστείτε το deploy.yml
αρχείο ώστε να περιέχει τα ακόλουθα. Θα χρησιμοποιήσουμε τον root
χρήστη.
- name: apply common configuration to server
hosts: all
user: root
roles:
- common
Επεξεργαστείτε το /group_vars/all
αρχείο ώστε να περιέχει τα ακόλουθα. Αυτές οι μεταβλητές λένε στην Ansible τη θέση των κλειδιών SSH, τις παραμέτρους του αρχείου swap, το πλήρως πιστοποιημένο όνομα τομέα σας και τον κωδικό πρόσβασης root. Θυμηθείτε να μην συμπεριλάβετε το αρχείο στον έλεγχο προέλευσης καθώς περιέχει τον κωδικό πρόσβασής σας σε καθαρό κείμενο.
ssh_dir: ./ssh_keys
swap_file_path: /swapfile
swap_file_size: 1G
swappiness: 1
hostname: example.com
new_password: YOUR_PASSWORD_HERE
Επεξεργαστείτε το common/handlers/main.yml
αρχείο ώστε να περιέχει τα ακόλουθα.
- name: restart sshd
service: name=ssh state=restarted
Ο Ansible αυτοματισμός είναι πιο κατανοητός εάν τον αναλύσουμε σε εργασίες. Ας δημιουργήσουμε αρχεία για κάθε εργασία μας στη διαδικασία.
cd roles/common/tasks
touch hosts main.yml setup.yml users.yml ufw.yml swap.yml virtualmin.yml
main.yml
πρέπει να δείχνει σε κάθε αρχείο που περιέχει τις εντολές Ansible, επομένως επεξεργαστείτε το ώστε να περιέχει τα ακόλουθα.
- include: setup.yml
- include: users.yml
- include: ufw.yml
- include: swap.yml
- include: virtualmin.yml
Το πρώτο βήμα για τη ρύθμιση ενός νέου διακομιστή είναι να ενημερώσετε την προσωρινή μνήμη repo και να ορίσετε τη ζώνη ώρας. Επεξεργαστείτε το common/handlers/setup.yml
αρχείο ώστε να περιέχει τα ακόλουθα.
- apt: update_cache=yes
sudo: yes
- name: set timezone to Europe/London
timezone:
name: Europe/London
Τώρα, θα δώσουμε στον χρήστη root έναν κωδικό πρόσβασης (τον οποίο θα χρειαστούμε για πρόσβαση στη διεπαφή ιστού virtualmin), αλλά θα απενεργοποιήσουμε τις συνδέσεις με κωδικό πρόσβασης μέσω SSH (καθώς χρησιμοποιούμε τη μέθοδο ελέγχου ταυτότητας με πιο ασφαλή κλειδιά). Επεξεργαστείτε users.yml
για να περιέχει τα ακόλουθα.
- name: Change passwd
user: name=root password={{ new_password | password_hash('sha512') }} update_password=always
- name: Disable SSH password login
lineinfile: dest=/etc/ssh/sshd_config regexp="^#?PasswordAuthentication" line="PasswordAuthentication no"
notify: restart sshd
Για ασφάλεια, χρειαζόμαστε ένα τείχος προστασίας. Θα χρησιμοποιήσουμε το Uncomplicated Firewall για να επιτρέψουμε την πρόσβαση SSH στη θύρα 22
, την πρόσβαση στον ιστό στη θύρα 80
και την ασφαλή πρόσβαση στον ιστό στη θύρα 443
. Επεξεργαστείτε το ufw.yml
αρχείο ώστε να περιέχει τα ακόλουθα.
- name: Set default firewall policy to deny all
become: True
ufw: state=enabled direction=incoming policy=deny
tags: firewall
- name: enable SSH in firewall
ufw: rule=allow port=22
sudo: yes
- name: enable HTTP connections for web server
ufw: rule=allow port=80
sudo: yes
- name: enable HTTPS connections for web server
ufw: rule=allow port=443
sudo: yes
- name: enable firewall
ufw: state=enabled
sudo: yes
Προαιρετικά, μπορείτε να συμπεριλάβετε ένα αρχείο ανταλλαγής. Αυτό είναι απαραίτητο εάν ο διακομιστής σας έχει λιγότερη από 2 GB μνήμης RAM για να αποφύγετε τις διακοπές λειτουργίας της μνήμης. Επεξεργαστείτε swap.yml
για να περιέχει τα ακόλουθα.
- name: Set swap_file variable
set_fact:
swap_file: "{{swap_file_path}}"
tags:
- swap.set.file.path
- name: Check if swap file exists
stat:
path: "{{swap_file}}"
register: swap_file_check
tags:
- swap.file.check
- name: Create swap file
command: fallocate -l {{swap_file_size}} {{swap_file}}
when: not swap_file_check.stat.exists
tags:
- swap.file.create
- name: Change swap file permissions
file: path="{{swap_file}}"
owner=root
group=root
mode=0600
tags:
- swap.file.permissions
- name: Format swap file
sudo: yes
command: "mkswap {{swap_file}}"
when: not swap_file_check.stat.exists
tags:
- swap.file.mkswap
- name: Write swap entry in fstab
mount: name=none
src={{swap_file}}
fstype=swap
opts=sw
passno=0
dump=0
state=present
tags:
- swap.fstab
- name: Turn on swap
sudo: yes
command: swapon -a
when: not swap_file_check.stat.exists
tags:
- swap.turn.on
- name: Set swappiness
sudo: yes
sysctl:
name: vm.swappiness
value: "{{swappiness}}"
tags:
- swap.set.swappiness
Το Virtualmin έχει το δικό του αρχείο εγκατάστασης το οποίο μπορεί να ληφθεί και να εκτελεστεί από την Ansible. Εδώ χρησιμοποιούμε την ελάχιστη εγκατάσταση ( LINK
). Τα πρόσθετα στοιχεία είναι να ρυθμίσετε τον κωδικό πρόσβασης διακομιστή MySQL που δεν έχει οριστεί κατά την εγκατάσταση από το Virtualmin. Πρέπει να σταματήσουμε προσωρινά τη MySQL και να προσθέσουμε τον κατάλογο ελέγχου ταυτότητας πριν αλλάξουμε τον κωδικό πρόσβασης. Επεξεργαστείτε virtualmin.yml
για να περιέχει τα ακόλουθα.
- name: download virtualmin install script
get_url: >
url=http://software.virtualmin.com/gpl/scripts/install.sh
dest=/root/install.sh
mode=0755
- name: virtualmin install (takes around 10 mins) you can see progress using $ sudo tail -f /root/virtualmin-install.log
tags: non-idem
shell: ~/install.sh --force --hostname {{ hostname }} --minimal --yes
args:
chdir: /root
- name: temp stop mysql
service:
name: mysql
state: stopped
- name: change owner (and group) of mysqld dir
file:
path: "/var/run/mysqld"
state: directory
owner: mysql
group: mysql
- name: virtualmin set mysql password
shell: virtualmin set-mysql-pass --user root --pass {{ new_password }}
- name: restart mysql
service:
name: mysql
state: started
Ο ρόλος του Ansible έχει πλέον ολοκληρωθεί και είμαστε έτοιμοι να αναπτύξουμε.
Από τον φάκελο ansible, μπορούμε τώρα απλά να εκτελέσουμε την ακόλουθη εντολή και το Ansible θα εκτελέσει όλες τις εργασίες που έχουμε δημιουργήσει αυτόματα. Την πρώτη φορά που θα συνδεθείτε θα λάβετε μια προειδοποίηση κλειδιού SSH, απλώς πληκτρολογήστε " yes
" στο μήνυμα.
ansible-playbook deploy.yml --private-key=ssh_keys/ssh_keys -i hosts
Εάν θέλουμε να χρησιμοποιήσουμε άλλο διακομιστή, μπορούμε απλώς να αλλάξουμε τη διεύθυνση IP στο αρχείο hosts και να εκτελέσουμε ξανά αυτήν την εντολή για να ολοκληρώσουμε ακριβώς την ίδια ρύθμιση.
Η εγκατάσταση ολοκληρώθηκε και τώρα μπορούμε να μεταβούμε στο https://192.0.2.1:10000
(χρησιμοποιήστε τη διεύθυνση IP του διακομιστή σας). Το πρόγραμμα περιήγησής σας θα εκδώσει μια προειδοποίηση ασφαλείας επειδή το πιστοποιητικό είναι αυτο-υπογεγραμμένο, επομένως κάντε κλικ advanced
και προσθέστε μια εξαίρεση. Θα εμφανιστεί μια σελίδα σύνδεσης. Το όνομα χρήστη είναι root
και ο κωδικός πρόσβασης είναι αυτός που εισαγάγατε στο group_vars/all
αρχείο στο βήμα 3. Την πρώτη φορά που θα εισέλθετε στο Virtualmin θα εμφανιστεί ο οδηγός μετά την εγκατάσταση. Μπορείτε είτε να περάσετε από αυτές τις ρυθμίσεις με μη αυτόματο τρόπο είτε να κάνετε κλικ cancel
για να αποδεχτείτε τις προεπιλογές.
Για να θέσετε τον πρώτο σας διακομιστή Wordpress σε λειτουργία, από τον πίνακα ελέγχου του Virtualmin κάντε κλικ στο Create Virtual Server
. Θα χρειαστεί να εισαγάγετε όνομα τομέα, περιγραφή και κωδικό πρόσβασης διαχειριστή. Το όνομα τομέα θα πρέπει να είναι διαφορετικό από το πλήρως πιστοποιημένο όνομα τομέα Virtualmin και θα πρέπει να υποδείξετε την εγγραφή DNS στη διεύθυνση IP του διακομιστή σας.
Κάντε κλικ στο Create Server
. Μόλις το Virtualmin ολοκληρώσει τη δημιουργία του διακομιστή σας, κάντε κλικ Install Scripts
στο αριστερό μενού. Επιλέξτε Wordpress
, κάντε κλικ Show install options
και στην επόμενη σελίδα επιλέξτε τη θέση της εγκατάστασης του Wordpress. Απλώς επιλέξτε At top level
και κάντε κλικ στο Install Now
.
Αυτό είναι το μόνο που χρειάζεται να κάνετε - μπορείτε να ολοκληρώσετε την εγκατάσταση του Wordpress μεταβαίνοντας στο δικό σας http://example.net/wp-admin/install.php
(πού example.net
βρίσκεται αυτό το όνομα τομέα εικονικών διακομιστών). Εάν οι εγγραφές σας DNS δεν έχουν διαδοθεί ακόμα, μπορείτε να μεταβείτε Services > Preview Website
από το μενού Virtualmin.
Μπορείτε να επαναλάβετε αυτό το βήμα πολλές φορές για να δημιουργήσετε πολλές τοποθεσίες Wordpress, όλες στον ίδιο διακομιστή Vultr.
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Jekyll είναι μια εξαιρετική εναλλακτική λύση στο WordPress για blogging ή κοινή χρήση περιεχομένου. Δεν απαιτεί βάσεις δεδομένων και είναι πολύ εύκολο
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το MODX Revolution είναι ένα γρήγορο, ευέλικτο, επεκτάσιμο, δωρεάν και ανοιχτού κώδικα, εταιρικό Σύστημα Διαχείρισης Περιεχομένου (CMS) γραμμένο i
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το MODX Revolution είναι ένα γρήγορο, ευέλικτο, επεκτάσιμο, ανοιχτού κώδικα, εταιρικό Σύστημα Διαχείρισης Περιεχομένου (CMS) γραμμένο σε PHP. Αυτο εγω
Εισαγωγή Το WordPress είναι το κυρίαρχο σύστημα διαχείρισης περιεχομένου στο διαδίκτυο. Παρέχει τα πάντα, από ιστολόγια έως πολύπλοκους ιστότοπους με δυναμικό περιεχόμενο
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Jekyll είναι μια καλή εναλλακτική στο WordPress. Δεν απαιτεί βάσεις δεδομένων και λειτουργεί με μια γλώσσα που πολλοί γνωρίζουν
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το MODX Revolution είναι ένα γρήγορο, ευέλικτο, επεκτάσιμο, δωρεάν και ανοιχτού κώδικα, εταιρικό Σύστημα Διαχείρισης Περιεχομένου (CMS) γραμμένο i
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Fork είναι ένα CMS ανοιχτού κώδικα γραμμένο σε PHP. Ο πηγαίος κώδικας του Forks φιλοξενείται στο GitHub. Αυτός ο οδηγός θα σας δείξει πώς να εγκαταστήσετε το Fork CM
Το Neos είναι ένα καινοτόμο σύστημα διαχείρισης περιεχομένου ανοιχτού κώδικα που είναι εξαιρετικό για τη δημιουργία και την επεξεργασία διαδικτυακού περιεχομένου. Με γνώμονα τους συγγραφείς και τους εκδότες, ο Neo
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Ghost είναι μια πλατφόρμα blogging ανοιχτού κώδικα που κερδίζει δημοτικότητα μεταξύ προγραμματιστών και απλών χρηστών από το 201
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το SilverStripe είναι ένα ευέλικτο και επεκτάσιμο, ανοιχτού κώδικα, εταιρικής ποιότητας Σύστημα Διαχείρισης Περιεχομένου (CMS) γραμμένο σε PHP. Είναι ευκολίες
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Ghost είναι μια πλατφόρμα blogging ανοιχτού κώδικα που κερδίζει δημοτικότητα μεταξύ προγραμματιστών και απλών χρηστών από το 201
Μια κοινή χρήση ενός εικονικού διακομιστή Vultr είναι η φιλοξενία ιστοσελίδων Wordpress. Αυτός ο οδηγός σάς δείχνει πώς να αυτοματοποιήσετε τη διαμόρφωση ενός εικονικού διακομιστή από την αρχή
Το Ghost είναι το πιο πρόσφατο και καλύτερο ξεκίνημα σε ανταγωνιστικό WordPress. Η ανάπτυξη θεμάτων είναι γρήγορη και εύκολη στην εκμάθηση επειδή οι προγραμματιστές του Ghost αποφάσισαν να χρησιμοποιήσουν και τα δύο
Το Ghost είναι μια σύγχρονη, ανοιχτού κώδικα πλατφόρμα δημοσίευσης που βασίζεται στο Node.js με έναν πελάτη διαχειριστή Ember.js, ένα JSON API και ένα API θεμάτων που υποστηρίζεται από το Handlebars.js. Γκος
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το MODX Revolution είναι ένα γρήγορο, ευέλικτο, επεκτάσιμο, δωρεάν και ανοιχτού κώδικα, εταιρικό Σύστημα Διαχείρισης Περιεχομένου (CMS) γραμμένο i
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Dotclear είναι μια πολύ απλή μηχανή blogging. Είναι ανοιχτού κώδικα και εύκολο στη χρήση. Αυτό το σεμινάριο θα περάσει από την εγκατάσταση στο
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Fork είναι ένα CMS ανοιχτού κώδικα γραμμένο σε PHP. Ο πηγαίος κώδικας του Forks φιλοξενείται στο GitHub. Αυτός ο οδηγός θα σας δείξει πώς να εγκαταστήσετε το Fork CM
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Ghost είναι μια πλατφόρμα blogging ανοιχτού κώδικα που κερδίζει δημοτικότητα μεταξύ των προγραμματιστών και των απλών χρηστών από την κυκλοφορία της το 2013. Εγώ
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Fork είναι ένα CMS ανοιχτού κώδικα γραμμένο σε PHP. Ο πηγαίος κώδικας του Forks φιλοξενείται στο GitHub. Αυτός ο οδηγός θα σας δείξει πώς να εγκαταστήσετε το Fork CM
Το Typesetter είναι ένα CMS ανοιχτού κώδικα γραμμένο σε PHP που επικεντρώνεται στην ευκολία χρήσης με την επεξεργασία True WYSIWYG και την αποθήκευση επίπεδων αρχείων. Σε αυτό το άρθρο, θα εγκαταστήσουμε
Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.
Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.
Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.
Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.
Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…
Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.
Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.
Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.
Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.
Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα