Μετάβαση στο περιεχόμενο

Ρυθμίσεις cookies

Επιλέξτε ανά κατηγορία ποια cookies επιτρέπετε. Μπορείτε να αλλάξετε την επιλογή σας οποιαδήποτε στιγμή μέσω των Ρυθμίσεων cookies στο κάτω μέρος κάθε σελίδας. Δήλωση απορρήτου

Απαραίτητα

Πάντα ενεργά

Χρειάζονται για τη σύνδεση, για να διατηρείται το καλάθι σας και για να θυμόμαστε τις επιλογές σας. Είναι πάντα ενεργά.

Ποια cookies;
  • weboke_sessie, weboke_klant, weboke_remember: η συνεδρία σας και η παραμονή σε σύνδεση
  • weboke_basket: το καλάθι σας
  • wkBtwIncl: εμφάνιση τιμών με ή χωρίς ΦΠΑ
  • wok_cookies: η επιλογή σας για τα cookies, 12 μήνες

Μετρούν ποια διαφήμιση οδηγεί σε επίσκεψη ή παραγγελία, ώστε να μην πληρώνουμε για διαφημίσεις που δεν αποδίδουν.

Ποια cookies;
  • Google Ads μέσω Google Tag Manager (_gcl_au, _gcl_aw), έως 90 ημέρες
  • OpenAI Ads, διαφημίσεις στο ChatGPT
  • wok_aff: μέσω ποιου συνεργάτη ήρθατε σε εμάς (πρόγραμμα συνεργατών), 60 ημέρες

4,6

Χώρα και γλώσσα

Κάθε χώρα έχει τη δική της ιστοσελίδα, με τιμές και ΦΠΑ της χώρας αυτής.

Προβολή

Κάτω από το καπό: διακομιστής, PHP και βάση δεδομένων

Ενότητα 1: Πώς λειτουργεί το WordPress · Χρόνος ανάγνωσης: 8 λεπτά

Μαθησιακός στόχος: Μετά από αυτό το μάθημα θα μπορείτε να εξηγήσετε βήμα προς βήμα πώς ένα αίτημα σελίδας στο WordPress γίνεται σελίδα HTML, και πού μια cache συντομεύει αυτή τη διαδρομή.

Βασικές έννοιες: διακομιστής (LiteSpeed, Apache, nginx), PHP, MariaDB/MySQL, query, index.php, ιεραρχία προτύπων (template hierarchy), δυναμικό έναντι στατικού, TTFB

Μια στατική και μια δυναμική σελίδα

Σε έναν στατικό ιστότοπο, κάθε σελίδα βρίσκεται ως έτοιμο αρχείο στον διακομιστή. Ο διακομιστής παίρνει το αρχείο και το αποστέλλει. Αυτό είναι γρήγορο και απλό, αλλά κάθε αλλαγή σημαίνει νέο αρχείο.

Το WordPress είναι δυναμικό: η σελίδα υπάρχει μόνο τη στιγμή που κάποιος τη ζητά. Δεν υπάρχει αρχείο contact.html. Υπάρχει ένα κομμάτι κειμένου στη βάση δεδομένων, ένα θέμα εμφάνισης με πρότυπα και ένα σύνολο κώδικα PHP που συνδυάζει τα δύο. Αυτό προσφέρει ευκολία (προσαρμόζετε το κείμενο μέσα από το πρόγραμμα περιήγησής σας), αλλά απαιτεί υπολογιστική εργασία σε κάθε επίσκεψη. Αν κατανοήσετε αυτή την υπολογιστική εργασία, θα κατανοήσετε αργότερα και γιατί ένας ιστότοπος είναι αργός, γιατί η cache κάνει τόσο μεγάλη διαφορά και γιατί μια αναβάθμιση PHP μπορεί να προκαλέσει πρόβλημα.

Το ταξίδι ενός αιτήματος σελίδας

Ας υποθέσουμε ότι ένας επισκέπτης ανοίγει το https://example.com/contact/. Αυτό συμβαίνει:

  1. DNS: το πρόγραμμα περιήγησης αναζητά τη διεύθυνση IP του example.com (δείτε το μάθημα DNS). Δημιουργεί ασφαλή σύνδεση με αυτή τη διεύθυνση.
  2. Διακομιστής (webserver): στον διακομιστή τρέχει ένας διακομιστής ιστού, για παράδειγμα LiteSpeed, Apache ή nginx. Αυτός λαμβάνει το αίτημα. Αν υπάρχει πραγματικό αρχείο ή φάκελος με αυτό το όνομα (μια εικόνα, ένα stylesheet), το αποστέλλει απευθείας. Αν όχι, ισχύει ο κανόνας από το .htaccess (στο LiteSpeed και στο Apache) ή από τη ρύθμιση του nginx: «δώσε ό,τι δεν υπάρχει στο index.php».
  3. PHP: το index.php είναι αρχείο PHP. Ο διακομιστής αναθέτει την εκτέλεσή του στην PHP, τη γλώσσα προγραμματισμού στην οποία είναι γραμμένο το WordPress. Η PHP φορτώνει πρώτα το wp-config.php (τις ρυθμίσεις, με τα στοιχεία της βάσης δεδομένων), μετά τον υπόλοιπο πυρήνα του WordPress, μετά όλα τα ενεργά πρόσθετα και το ενεργό θέμα εμφάνισης.
  4. Βάση δεδομένων: το WordPress ελέγχει ποιο περιεχόμενο αντιστοιχεί στο /contact/ και θέτει ερωτήματα στη βάση δεδομένων (MariaDB ή MySQL): ποια σελίδα έχει το slug contact, ποιες είναι οι ρυθμίσεις του ιστοτόπου, ποιο μενού αντιστοιχεί; Ένα τέτοιο ερώτημα ονομάζεται query. Μια απλή σελίδα κοστίζει ήδη δεκάδες queries· με πρόσθετα μπορεί να γίνουν εκατοντάδες.
  5. Θέμα εμφάνισης: το WordPress επιλέγει ποιο πρότυπο του θέματος εμφάνισης θα διαμορφώσει τη σελίδα. Αυτό γίνεται σύμφωνα με την ιεραρχία προτύπων (template hierarchy): για μια σελίδα με slug contact, το WordPress αναζητά πρώτα ένα πρότυπο page-contact, μετά page-<id> (τον αριθμό της σελίδας), μετά page, μετά singular και τέλος index. Το πρώτο που υπάρχει, κερδίζει.
  6. Επιστροφή HTML: το αποτέλεσμα είναι μια σελίδα HTML που η PHP παραδίδει στον διακομιστή, και ο διακομιστής στο πρόγραμμα περιήγησης.
  7. Το πρόγραμμα περιήγησης διαβάζει την HTML και στη συνέχεια ανακτά τα stylesheets, τα scripts, τις γραμματοσειρές και τις εικόνες. Αυτά είναι κανονικά αρχεία, οπότε προέρχονται απευθείας από τον διακομιστή (ή από μια cache).

Ανάμεσα στο βήμα 2 και το βήμα 6 βρίσκεται ο χρόνος που χρειάζεται ο διακομιστής για να δημιουργήσει τη σελίδα. Αυτό το βλέπετε ως TTFB (time to first byte): τον χρόνο ανάμεσα στο αίτημα και το πρώτο byte της απάντησης. Σε έναν καλά ρυθμισμένο ιστότοπο αυτός είναι αρκετά κάτω από ένα δευτερόλεπτο. Στην ενότητα 6 θα το μετρήσετε μόνοι σας.

Γιατί κάθε πρόσθετο μετράει

Στο βήμα 3 φορτώνονται όλα τα ενεργά πρόσθετα, σε κάθε αίτημα. Ακόμα κι αν αυτό το πρόσθετο δεν κάνει τίποτα σε αυτή τη σελίδα. Ένα πρόσθετο για γκαλερί φωτογραφιών φορτώνεται λοιπόν και όταν κάποιος ανοίξει τη σελίδα επικοινωνίας σας. Κάθε πρόσθετο μπορεί να εκτελέσει επιπλέον queries, να φορτώσει επιπλέον κώδικα και να προσθέσει επιπλέον scripts στη σελίδα.

Αυτό εξηγεί δύο πράγματα που θα συναντήσετε συχνά σε αυτό το μάθημα:

  • Λιγότερα πρόσθετα είναι συνήθως πιο γρήγορα. Όχι επειδή μετράει ο αριθμός καθαυτός, αλλά επειδή κάθε πρόσθετο μπορεί να εκτελεί εργασία σε κάθε αίτημα.
  • Ένα χαλασμένο πρόσθετο μπορεί να ρίξει ολόκληρο τον ιστότοπο. Αν κάτι πάει στραβά στο βήμα 3 (για παράδειγμα ένα πρόσθετο που δεν λειτουργεί με τη νέα έκδοση PHP), η PHP δεν φτάνει ποτέ στο βήμα 6. Ο επισκέπτης βλέπει μια λευκή σελίδα ή το μήνυμα «Υπήρξε ένα κρίσιμο σφάλμα σε αυτόν τον ιστότοπο» (μάθημα 5.4).

Από πού προέρχονται η PHP και η βάση δεδομένων

Η PHP και η βάση δεδομένων εκτελούνται στον διακομιστή του παρόχου φιλοξενίας σας. Εσείς συνήθως επιλέγετε την έκδοση PHP στον πίνακα ελέγχου (στο DirectAdmin αυτό ονομάζεται Select PHP version, δείτε το μάθημα 8.4). Η βάση δεδομένων δημιουργείται κατά την εγκατάσταση· ο installer το κάνει συχνά αυτόματα για εσάς (μάθημα 2.2).

Μερικά πράγματα που αξίζει να θυμάστε:

  • Έκδοση PHP: κάθε νέα έκδοση PHP είναι πιο γρήγορη και πιο ασφαλής, αλλά παλιός κώδικας μπορεί να μην λειτουργήσει σωστά σε αυτή. Το wordpress.org συνιστά αυτή τη στιγμή PHP 8.3 ή νεότερη (κατάσταση Νοέμβριος 2026).
  • Βάση δεδομένων: το wordpress.org συνιστά MariaDB 10.11 ή νεότερη, ή MySQL 8.0 ή νεότερη. Η MariaDB είναι μια διακλάδωση (fork) της MySQL· για το WordPress δεν υπάρχει διαφορά.
  • Η βάση δεδομένων βρίσκεται συνήθως στον ίδιο διακομιστή (το DB_HOST είναι τότε localhost). Σε μεγαλύτερες υπηρεσίες φιλοξενίας μπορεί να βρίσκεται σε ξεχωριστό διακομιστή.

Cache: η συντόμευση της διαδρομής

Αν εκατό επισκέπτες ζητήσουν την ίδια σελίδα επικοινωνίας, το WordPress τη δημιουργεί εκατό φορές χωρίς cache. Κάθε φορά τα ίδια queries, το ίδιο πρότυπο, η ίδια HTML. Μια cache σελίδας αποθηκεύει την HTML μετά την πρώτη φορά. Ο επόμενος επισκέπτης λαμβάνει την αποθηκευμένη έκδοση: τα βήματα 3 έως και 6 παραλείπονται.

Zonder cache:  browser > webserver > PHP > WordPress + plugins > database > thema > HTML
Met cache:     browser > webserver > opgeslagen HTML

Γι' αυτό η cache δίνει το μεγαλύτερο κέρδος ταχύτητας (μάθημα 6.2). Αυτό εξηγεί επίσης μια συχνή παρεξήγηση: «άλλαξα το κείμενο, αλλά βλέπω την παλιά έκδοση.» Τότε βλέπετε μια αποθηκευμένη έκδοση· μετά το άδειασμα της cache θα δείτε τη νέα.

Δεν επιτρέπεται όλα να προέρχονται από μια cache. Ένας συνδεδεμένος διαχειριστής, ένα καλάθι αγορών ή μια σελίδα ολοκλήρωσης παραγγελίας είναι διαφορετικά για κάθε επισκέπτη. Ένα καλό πρόσθετο cache τα παραλείπει αυτά.

Κεφαλίδες: τι σας λέει ο διακομιστής

Κάθε απάντηση ενός διακομιστή ξεκινά με κεφαλίδες (headers), πριν από την HTML. Αυτές δεν τις βλέπετε στη σελίδα, αλλά τις βλέπετε στα εργαλεία προγραμματιστή του προγράμματος περιήγησής σας (F12, καρτέλα Δίκτυο, κάντε κλικ στο πρώτο αίτημα). Ένα παράδειγμα:

HTTP/2 200
server: LiteSpeed
content-type: text/html; charset=UTF-8
link: <https://example.com/wp-json/>; rel="https://api.w.org/"
x-litespeed-cache: hit
  • Το server δηλώνει ποιος διακομιστής απαντά.
  • Το link με wp-json αποκαλύπτει ότι πρόκειται για WordPress.
  • Το x-litespeed-cache: hit σημαίνει ότι αυτή η σελίδα προήλθε από την cache του LiteSpeed. Άλλες cache χρησιμοποιούν άλλα ονόματα, όπως x-cache: HIT ή cf-cache-status: HIT στο Cloudflare.

Δεν χρειάζεται να απομνημονεύσετε αυτές τις γραμμές. Αλλά όποιος μπορεί να τις διαβάσει, μπορεί να εντοπίσει πολλά προβλήματα μόνος του.

Σύνοψη

  • Το WordPress δημιουργεί κάθε σελίδα τη στιγμή του αιτήματος: διακομιστής, PHP, πρόσθετα, βάση δεδομένων, θέμα εμφάνισης, HTML.
  • Σε κάθε αίτημα φορτώνονται όλα τα ενεργά πρόσθετα· ένα χαλασμένο πρόσθετο μπορεί να σταματήσει ολόκληρο τον ιστότοπο.
  • Η ιεραρχία προτύπων καθορίζει ποιο πρότυπο του θέματος εμφάνισης διαμορφώνει μια σελίδα.
  • Μια cache σελίδας παραλείπει την υπολογιστική εργασία δίνοντας αποθηκευμένη HTML. Συνδεδεμένοι χρήστες και καλάθια αγορών δεν ανήκουν σε αυτή την cache.
  • Οι κεφαλίδες μιας απάντησης δηλώνουν ποιος διακομιστής απαντά και αν η σελίδα προήλθε από cache.

Κουίζ

1. Ποιος εκτελεί τον κώδικα PHP του WordPress;



2. Ένας ιστότοπος με 40 πρόσθετα είναι αργός, ακόμα και σε σελίδες όπου αυτά τα πρόσθετα δεν κάνουν τίποτα ορατό. Ποια είναι η καλύτερη εξήγηση;



3. Από πού προέρχεται συνήθως ένα stylesheet όπως το /wp-content/themes/thema/style.css;



4. Βλέπετε στις κεφαλίδες x-litespeed-cache: hit. Τι σημαίνει αυτό;



5. Ποιο πρότυπο χρησιμοποιεί το WordPress για μια σελίδα με slug contact αν το θέμα εμφάνισης έχει μόνο page και index;



Άσκηση

Άσκηση A1.2: Διαβάστε τις κεφαλίδες του ιστότοπού σας. Ανοίξτε τον δικό σας ιστότοπο (ή το wordpress.org) με τα εργαλεία προγραμματιστή του προγράμματος περιήγησής σας (F12, καρτέλα Δίκτυο, ανανεώστε τη σελίδα, κάντε κλικ στο πρώτο αίτημα). Συμπληρώστε ποιος διακομιστής αναγράφεται στην κεφαλίδα server (ή «κανένας» αν δεν υπάρχει) και αν υπάρχει κεφαλίδα που δηλώνει ότι η σελίδα προήλθε από cache (ποιο όνομα και ποια τιμή). Το πρόγραμμα ζητά την ίδια σελίδα και συγκρίνει.

Άσκηση A1.2: Διαβάστε τις κεφαλίδες του ιστότοπού σας




Ό,τι συμπληρώνετε και ό,τι βρίσκουμε δεν το αποθηκεύουμε. Το πρόγραμμα περιήγησής σας θυμάται τις απαντήσεις σας και αν περάσατε την άσκηση. Αν έχετε εγγραφεί, αποθηκεύουμε μόνο ότι η άσκηση ήταν (σχεδόν) σωστή στο Τα μαθήματά μου· εκεί μπορείτε και να το διαγράψετε.

Περαιτέρω ανάγνωση

Αυτά τα άρθρα περιγράφουν τα βήματα στους πίνακες ελέγχου του WebOké· σε άλλους πίνακες ελέγχου λειτουργούν παρόμοια.

Μια στιγμή…

Ρυθμίστε τα domains σας

Ρυθμίστε για κάθε domain τους nameservers, τη σύνδεση με το hosting σας και ποιος θα είναι ο κάτοχος.

Φόρτωση των domains σας…