Πλήρης οδηγός για τα μυστικά του wp-config.php του WordPress
συντάκτης Evangelos · Δημοσιεύτηκε · Ενημερώθηκε
wp-config.php του WordPress και τι πρέπει να ξέρω για αυτό
Το ταύρο λένε ότι πρέπει να τον πιάνεις από τα κέρατα. Εάν το WordPress είναι ο ταύρος τότε τα κέρατα είναι το αρχείο wp-config.php.
Το αρχείο wp-config.php του WordPress είναι ίσως το πιο σημαντικό αρχείο στην εγκατάσταση μας. Αυτό βρίσκεται από προεπιλογή(αυτό αλλάζει) στο φάκελο που βρίσκεται η εγκατάσταση του WP μας.Το αρχείο wp-config.php δημιουργείτε με την ολοκλήρωση της εγκατάστασης που θα κάνουμε σε γραφικό περιβάλλον. Υπάρχει πάντα η δυνατότητα να το δημιουργήσουμε μόνοι μας μετονομάζοντας το αρχείο wp-config-sample.php σε wp-config.php που συνοδεύει πάντα το WordPress.
Το wp-config.php που βρίσκεται σε μία συνήθη εγκατάσταση περιλαμβάνει τις βασικές λειτουργίες και που είναι οι απαραίτητες για να λειτουργήσει σωστά το WP.
Η βασικότερη από αυτές είναι η σύνδεση με τη βάση δεδομένων:
Database Name
Το όνομα της βάσης
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');
Database Username
Το όνομα χρήστη της βάσης
/** MySQL database username */
define('DB_USER', 'username_here');
Database Password
Ο κωδικός της βάσης
/** MySQL database password */
define('DB_PASSWORD', 'password_here');
Database Host
Που φιλοξενείται η βάσης μας. Εάν είναι τοπικά τότε η ρύθμιση είναι localhost και εάν είναι σε κάποιον απομακρυσμένο server τότε γράφουμε τη διεύθυνση του server για παράδειγμα db.mysite.com:3307, όπου 3307 είναι η πόρτα πρόσβασης. Φυσικά δεν μπορούμε να γνωρίζουμε από μόνοι μας αυτές τις πληροφορίες και θα μας ενημερώσει σχετικά η εταιρεία που κάνουμε το hosting μας.
/** MySQL hostname */
define('DB_HOST', 'localhost');
Security Keys
Άλλη μία σημαντική λειτουργία που θα βρούμε σε αυτό το αρχείο είναι για τα Security Keys όπως λέγονται και που σκοπό έχουν την μεγαλύτερη ασφάλεια του WP μας.
Τα Security Keys συνήθως εγκαθίστανται μόνα τους κατά την εξέλιξη της εγκατάστασης του WordPress. Εμείς μπορούμε και χειροκίνητα να τα τοποθετήσουμε χρησιμοποιώντας την σχετική γεννήτρια του WordPress Api.
Ένα παράδειγμα των Security Keys:
define('AUTH_KEY', 'h#!u>|/PuJg<H)JC=MO?a}xR^PKZ[|Bw5ckk3L5dz.C[<=a;mg:#+*Af|I8f:|dr');
define('SECURE_AUTH_KEY', 'kS?3<~+F)e}f{f%A]-bEow+aT|?iKS-~sD&t+JL:ZY6p/^X~$/+)2n!@^r`cI.tH');
define('LOGGED_IN_KEY', 'p6L{8/*G]L>J^, %0A-*|7^)=nWVm_b*Pm+rrWLFS:|G/-B~)JJGT:$+!cB>hRg=');
define('NONCE_KEY', 'lx)+O`I7I}9Y1AEkEUjd6f^?~[3#on]vv;f8I(k~*s[gJDyP+}n#8K3-;38`(kuD');
define('AUTH_SALT', '+uO)T5Mx?V4F+#h_`wA/PFUC!:ApTMEj;h}hIgTw~X1!`i%TH.RXQ!1;C(/%^Fe%');
define('SECURE_AUTH_SALT', 'n]Q~A*lF}.B+[.r%$gVG%myiI:)iK0m6+9Mc_6L9:=;i*ajY+O:Sd93#c/P-|_9v');
define('LOGGED_IN_SALT', '!|R-KS-Y}Y]`.by)eEz*c9Nl-,~p|_|:<b9>lUkuT%]Y9,S}*lB|$Sit(F]&7M7E');
define('NONCE_SALT', ')kw}qKmhM|;|hL -^Y2 Cfmsk+0y4&0GD=7rfcI:,+y:JV-c27!mqx[F<po2Pqt^');
table_prefix
Ένα άλλο χαρακτηριστικό που όλοι το θεωρούμε δεδομένο να είναι έτσι και πάντα το προσπερνάμε είναι το table_prefix.
$table_prefix = 'wp_';
Ο λόγος που θα σταθώ σε αυτό το χαρακτηριστικό είναι γιατί έχει άμεση σχέση με την ασφάλεια της βάσης μας και εν γένει με όλο το site μας. Γνωρίζοντας κάποιος κακόβουλος ότι το προκαθορισμένο πρόθεμα είναι wp_ τότε μπορεί εύκολα να αποσπάσει πληροφορίες από τη βάση. Προτείνεται λοιπόν να αλλάζουμε αυτό το προκαθορισμένο πρόσθεμα σε κάτι διαφορετικό:
$table_prefix = 'myprefix_';
Με αυτό το τρόπο ανέβάζουμε την ασφάλεια του site μας.
Ένας ακόμα λόγος χρήσης του προθέματος wp_ είναι όταν θέλουμε να κάνουμε μία δεύτερη εγκατάσταση ενός WordPress και έχουμε στη διάθεση μας μόνο μία βάση. Τότε αναγκαστικά θα πρέπει να αλλάξουμε το πρόθεμα στη δεύτερη εγκατάσταση από wp_ σε wp2_ για παράδειγμα και έτσι θα αποφύγουμε την επανεγγραφή της βάσης στη υπάρχουσα εγκατάσταση.
ΠΡΟΣΟΧΗ: Για πρόθεμα χρησιμοποιούμε μόνο γράμματα, αριθμούς και και την κάτω παύλα.
Εκσφαλμάτωση (Debug)
Η εκσφαλμάτωση είναι μία μαγική λειτουργία και μας βοηθάει πάντα όταν όλα στραβώνουν.
Η προκαθορισμένη τιμή είναι ‘false’ και όταν εμείς την αλλάζουμε σε ‘true’ τότε μπορούμε σχετικά εύκολα να εντοπίζουμε σφάλματα και προειδοποιήσεις.
Μέχρι τώρα αναφερθήκαμε σε γνωστές λειτουργίες του αρχείου wp-config.php του WordPress. Υπάρχουν όμως άλλες λειτουργίες που μπορούμε να προσθέσουμε ώστε να βελτιώσουμε τα χαρακτηριστικά του WordPress μας ή και να προσθέσουμε καινούργια;
Τα κρυμμένα μυστικά του wp-config.php στο WordPress
Ενεργοποίηση του Multisite / Network
define( 'WP_ALLOW_MULTISITE', true );
Ένα από τα πιο δυνατά χαρακτηριστικά του WordPress που είναι καλά κρυμμένο είναι η δυνατότητα να μετατρέψετε την απλή εγκατάσταση του WordPress σας σε multisite network(διαβάστε περισσότερα εδώ).
WP_SITEURL
define( 'WP_SITEURL', 'http://mysite.com);
Γνωρίζουμε ότι αυτή η λειτουργία βρίσκεται στον πίνακα wp_options και μπορεί να αλλάξει μέσα από την διαχείριση και από τη σελίδα Ρυθμίσεις -> Γενικά.
Γιατί όμως να ενεργοποιήσω αυτή τη λειτουργία από το αρχείο wp-config.php; Οι λόγοι είναι πολύ και ένας από τους σημαντικούς είναι ότι έτσι μειώνετε τα αιτήματα προς τη βάση δεδομένων όταν φορτώνει το site σας.
Δεν πρέπει να τελειώνει με κάθετο "/" . Η λειτουργία αυτή δεν αλλάζει την εγγραφή στον πίνακα της βάσης και όταν την διαγράψουμε τότε επανέρχεται το URL της βάσης.
WP_HOME
define( 'WP_HOME', 'http://mysite.com' );
Όπως και με το WP_SITEURL η λειτουργία αυτή βρίσκεται στον πίνακα wp_options και μπορεί να αλλάξει και αυτή μέσα από την διαχείριση και από τη σελίδα Ρυθμίσεις -> Γενικά.
Είναι ουσιαστικά το URL του WordPress και πρέπει να περιλαμβάνει το "http://" και ΔΕΝ πρέπει να τελειώνει με "/".
Αλλάζοντας θέση στο φάκελο wp-content
Μπορώ να κάνω και αυτό. Να αλλάξω δηλαδή θέση στο φάκελο wp-content που περιέχει τα θέματα, τα πρόσθετα και όλες τις μεταφορτώσεις κάπου έξω από τo φάκελο εγκατάστασης του WordPress. Δεν έχουμε παρά να ορίσουμε τη πλήρη διαδρομή του φακέλου που έχουμε τοποθετήσει το wp-content.
θα πρέπει ακόμα ακόμα μαζί με το path του φακέλου να ορίσουμε και το URL του όπως βλέπουμε παρακάτω:
define( 'WP_CONTENT_URL', 'http://mysite.com/myfolder/wp-content' );
και να μην ξεχνάμε δεν βάζουμε ποτέ "/" στο τέλος.
Μετακινώντας τον φάκελο με τα πρόσθετα
Γνωρίζουμε ότι ο φάκελος με τα πρόσθετα βρίσκεται στη διαδρομή wp-content/plugins. Μπορούμε να αλλάξουμε τη θέση με το μεταφέρουμε όπου εμείς θέλουμε.
Θα πρέπει να ορίσουμε και το URL:
define( 'WP_PLUGIN_URL', 'http://mysite.com/myfolder/plugins' );
Αυτόματη αποθήκευση και πως ελέγχω τα χρονικά της διαστήματα
Το WordPress κάνει αυτόματη αποθήκευση σε άρθρα και σελίδες κάθε 60 δευτερόλεπτα.
Εμείς μπορούμε να αλλάξουμε αυτό τον χρόνο με την παρακάτω λειτουργία:
define( 'AUTOSAVE_INTERVAL', 180 ); // Seconds
Αναθεωρήσεις εγγράφου ή αλλιώς Post Revisions
Το WordPress από προεπιλογή αποθηκεύει αντίγραφα των άρθρων ή των σελίδων κάθε φορά που κάνουμε επεξεργασία σε αυτά με σκοπό ο αρθρογράφος να μπορεί να επαναφέρει κάποια παλαιότερη έκδοση τους. Αυτό ακούγεται πολύ καλό, όμως πολλές φορές όταν οι Αναθεωρήσεις(Revisions) είναι πάρα πολλές τότε φορτώνουμε τη βάση με πληροφορίες που πιθανών να μην χρειαζόμαστε. Υπάρχει ο τρόπος να αποκτήσουμε πλήρη έλεγχο στις Αναθεωρήσεις και να τις απενεργοποιήσουμε ή να ορίσουμε πόσες από αυτές θα αποθηκεύονται. Φυσικά υπάρχει και ο τρόπος με τον οποίο μπορούμε να καθαρίσουμε τη βάση μας από υπάρχοντες Αναθεωρήσεις αλλά δεν είναι του παρόντος.
Για να απενεργοποιήσω τις Αναθεωρήσεις χρησιμοποιώ τη παρακάτω λειτουργία:
define( 'WP_POST_REVISIONS', false );
Πολλές φορές μπορεί να χρειαστεί να μεταφέρουμε αυτή τη λειτουργία στη κορυφή του αρχείου wp-config.php και κάτω από τα πρώτα σχόλια.
Ορίζοντας τον αριθμό των Αναθεωρήσεων που θα αποθηκεύονται:
define( 'WP_POST_REVISIONS', 4 );
Ισχύει ότι και παραπάνω. Ίσως χρειαστεί να μεταφέρουμε αυτή τη λειτουργία στη κορυφή του αρχείου wp-config.php
Αυξάνοντας την διαθέσιμη μνήμη μέσα από το wp-config.php του WordPress
Το WordPress ‘γυμνό’ χωρίς ενεργοποιημένα πρόσθετα ή κάποιο πολύπλοκο θέμα χρειάζεται για να λειτουργήσει σωστά 40MB μνήμης σε απλή εγκατάσταση και 64MB σε εγκατάσταση multisite.
Όταν όμως υπάρχει η ανάγκη να ενεργοποιήσουμε κάποια πρόσθετα ή να χρησιμοποιούμε ένα πολύπλοκο θέμα με αρκετές απαιτήσεις μνήμης(διαβάστε περισσότερα εδώ) τότε τα 40MB μνήμης είναι πολύ λίγα.
Μπορούμε λοιπόν να αυξήσουμε την διαθέσιμη μνήμη με την παρακάτω λειτουργία:
define( 'WP_MEMORY_LIMIT', '64M' );
Με τον τρόπο αυτό ανεβάσαμε την διαθέσιμη μνήμη στα 64MB
Θα πρέπει να γνωρίζουμε όμως ότι ο hosting provider σας μπορεί να μην επιτρέπει τα παραπάνω οπότε θα πρέπει να επικοινωνήσετε μαζί τους για να κάνουν οι ίδιοι την αύξηση της μνήμης.
Επίσης για τις εργασίες στη περιοχή διαχείρισης απαιτείται κάποιες φορές να απελευθερώσουμε περισσότερο μνήμη. Η μνήμη σε αυτή τη περίπτωση μπορεί να αυξηθεί με την παρακάτω λειτουργία:
define( 'WP_MAX_MEMORY_LIMIT', '256M' );
Αδειάζοντας τον κάδο απορριμμάτων
Το WordPress διατηρεί τις διαγραμμένες σελίδες, σχόλια, άρθρα κλπ σε ένα κάδο απορριμμάτων για μία προεπιλεγμένη περίοδο 30 ημερών.
Μπορούμε να αλλάξουμε αυτή την προεπιλογή με την παρακάτω λειτουργία:
define( 'EMPTY_TRASH_DAYS', 40 ); // 40 days
Για να απενεργοποιήσουμε εντελώς το κάδο απορριμμάτων, ρυθμίσουμε τον αριθμό των ημερών στο μηδέν. ΠΡΟΣΟΧΗ όμως διότι το WordPress δεν θα ζητήσει επιβεβαίωση όταν κάποιος θα κάνει κλικ στο 'Οριστική διαγραφή'
define( 'EMPTY_TRASH_DAYS', 0 ); // Zero days
Απενεργοποιώντας τον επεξεργαστή Θεμάτων και Πρόσθετων
Κάποιες φορές μπορεί να προκύψει η ανάγκη να απενεργοποιήσουμε τον επεξεργαστή Θεμάτων και Πρόσθετων για να αποτρέψουμε τους χρήστες να τα ‘πειράζουν’ ή και για λόγους ασφάλειας.
Η λειτουργία για αυτό είναι η παρακάτω:
define( 'DISALLOW_FILE_EDIT', true );
Απενεργοποιώντας την ενημέρωση αλλά και την εγκατάσταση Θεμάτων και Πρόσθετων
Πολλές φορές χρειάζεται, για να αποφύγουμε προβλήματα με εκείνους τους χρήστες που αρέσκονται να ‘πειράζουν’, να απενεργοποιήσουμε την εγκατάσταση Θεμάτων και Πρόσθετων αλλά και την ενημέρωση τους.
Αυτό θα γίνει με την παρακάτω λειτουργία:
define( 'DISALLOW_FILE_MODS', true );
Σημειώστε ότι αυτή η λειτουργία απενεργοποιεί και την επεξεργασία που αναφέρουμε παραπάνω και έτσι δεν χρειάζεται να χρησιμοποιήσουμε παράλληλα και το DISALLOW_FILE_EDIT
SSL και περιοχή διαχείρισης
Εγκαταστήσατε το νέο σας SSL; Πολύ ωραία. Θα πρέπει τώρα να εισάγετε στο αρχείο wp-config.php του WordPress την παρακάτω λειτουργία:
define( 'FORCE_SSL_ADMIN', true );
Διαβάστε περισσότερες λεπτομέρειες εδώ.
Απενεργοποιήστε τις αυτόματες αναβαθμίσεις στο WordPress
Εάν δεν θέλουμε αυτόματες αναβαθμίσεις τότε εισάγουμε τη παρακάτω λειτουργία στο αρχείο wp-config.php του WordPress.
# Disable all automatic updates:
define( 'AUTOMATIC_UPDATER_DISABLED', true );
Απενεργοποίηση των αναβαθμίσεων του πυρήνα του WordPress
Για να ελέγξουμε τις αναβαθμίσεις του πυρήνα του WordPress μπορούμε να εισάγουμε τη παρακάτω λειτουργία στο αρχείο wp-config.php του WordPress.
Απενεργοποίηση όλων των αναβαθμίσεων:
# Disable all core updates:
define( 'WP_AUTO_UPDATE_CORE', false );
Ενεργοποίηση όλων των αναβαθμίσεων είτε είναι δευτερεύοντες ή μείζονες:
# Enable all core updates, including minor and major:
define( 'WP_AUTO_UPDATE_CORE', true );
Ενεργοποίηση μόνο των αναβαθμίσεων που είναι δευτερεύοντες και αποτελεί την προεπιλογή:
# Enable core updates for minor releases (default):
define( 'WP_AUTO_UPDATE_CORE', 'minor' );
Ελέγχοντας τις μικρογραφίες
Σίγουρα όλοι μας θα έχουμε προσέξει ότι στον φάκελο wp-content/uploads/, όπου και αποθηκεύει το WordPress τις εικόνες που ανεβάζουμε στα άρθρα και σελίδες μας να δημιουργούνται κάποια επιπλέον αρχεία της ίδιας εικόνας. Για παράδειγμα ανεβάσαμε την εικόνα image.jpg και ξαφνικά ανακαλύπτουμε ότι το WordPress δημιούργησε αρχεία της ίδιας εικόνας, μικρογραφίες δηλαδή, όπως image-300x200.jpg, image-300x300.jpg, image-272x282.jpg κλπ. Αυτό είναι μία προεπιλεγμένη συμπεριφορά και εξυπηρετεί εσωτερικές διαδικασίες. Όταν όμως αντικαταστήσουμε την αρχική εικόνα image.jpg, με μία νεότερη έκδοση της κάτι το οποίο μπορεί να συμβαίνει αρκετά συχνά, το WordPress κρατάει τις παλιές μικρογραφίες στο server. Εύκολα καταλαβαίνουμε τις συνέπειες από αυτό. Για να σταματήσουμε αυτή τη συμπεριφορά ορίζουμε το IMAGE_EDIT_OVERWRITE σαν ‘true’.
Αυτό μπορεί να γίνει με την παρακάτω λειτουργία:
define( 'IMAGE_EDIT_OVERWRITE', true );
Κλείνοντας αυτό το μεγάλο αφιέρωμα στο αρχείο wp-config.php του WordPress θα θέλαμε να τονίσουμε ότι οι παραπάνω πειραματισμοί γίνονται καθαρά με δική σας ευθύνη. Πρέπει να κρατάμε πάντα ένα αντίγραφο του αρχείου wp-config.php πριν κάνουμε οποιαδήποτε επέμβαση σε αυτό. Καλόν είναι οι πειραματισμοί να γίνονται σε μία καθαρή εγκατάσταση και όχι σε ένα λειτουργικό site.
Ο γράφων σεβόμενος την Ελληνική γλώσσα(όσο μπορεί) προσπαθεί να αποδώσει κάποιες προγραμματιστικές έννοιες στα Ελληνικά. Για παράδειγμα ο όρος ‘function’ αποδίδεται σαν ‘λειτουργία’.
Το παραπάνω άρθρο είναι εμπνευσμένο από την πολύ τεκμηρίωση του codex.wordpress.org