Πλήρης οδηγός για τα μυστικά του wp-config.php του WordPress

wp-config.php του WordPress

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’ τότε μπορούμε σχετικά εύκολα να εντοπίζουμε σφάλματα και προειδοποιήσεις.

define( 'WP_DEBUG', true );
define( 'WP_DEBUG', false );

Μέχρι τώρα αναφερθήκαμε σε γνωστές λειτουργίες του αρχείου 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
define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/myfolder/wp-content' );

Μπορώ να κάνω και αυτό. Να αλλάξω δηλαδή θέση στο φάκελο wp-content που περιέχει τα θέματα, τα πρόσθετα και όλες τις μεταφορτώσεις κάπου έξω από τo φάκελο εγκατάστασης του WordPress. Δεν έχουμε παρά να ορίσουμε τη πλήρη διαδρομή του φακέλου που έχουμε τοποθετήσει το wp-content.

θα πρέπει ακόμα ακόμα μαζί με το path του φακέλου να ορίσουμε και το URL του όπως βλέπουμε παρακάτω:

define( 'WP_CONTENT_URL', 'http://mysite.com/myfolder/wp-content' );

και να μην ξεχνάμε δεν βάζουμε ποτέ "/" στο τέλος.


Μετακινώντας τον φάκελο με τα πρόσθετα
define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/myfolder/plugins' );

Γνωρίζουμε ότι ο φάκελος με τα πρόσθετα βρίσκεται στη διαδρομή 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

Μπορεί επίσης να σας αρέσει...

Απάντηση

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει τα ανεπιθύμητα σχόλια. Μάθετε πώς υφίστανται επεξεργασία τα δεδομένα των σχολίων σας.