Αρχείο wp-config.php στο WordPress: ρόλος και ασφαλής αλλαγή
Το wp-config.php έχει τα στοιχεία της βάσης δεδομένων, κλειδιά ασφαλείας και ρυθμίσεις. Δείτε πού είναι, τι κάνει κάθε μέρος και πώς το αλλάζετε με ασφάλεια.
Το wp-config.php είναι το αρχείο που λέει στο WordPress πώς να συνδεθεί στη βάση δεδομένων και πώς να λειτουργεί. Κανονικά βρίσκεται στον ριζικό φάκελο της εγκατάστασης, δίπλα στα wp-admin και wp-content. Μπορείτε με ασφάλεια να προσθέσετε ή να αλλάξετε ρυθμίσεις πάνω από τη γραμμή “That’s all, stop editing!” (Αυτά ήταν, σταματήστε την επεξεργασία!), ενώ τα δύο μπλοκ κώδικα κάτω από αυτή πρέπει να μείνουν ως έχουν. Κρατήστε πρώτα αντίγραφο ασφαλείας, γιατί ένα μόνο τυπογραφικό λάθος μπορεί να ρίξει όλο τον ιστότοπο.
Βασικά σημεία
- Το αρχείο περιέχει τον κωδικό της βάσης δεδομένων και τα κλειδιά ασφαλείας, οπότε χειριστείτε το σαν κωδικό πρόσβασης και μην δημοσιεύετε ποτέ το περιεχόμενό του σε φόρουμ ή συνομιλία υποστήριξης.
- Οι δικές σας ρυθμίσεις μπαίνουν πάνω από τη γραμμή “stop editing”. Η τελευταία γραμμή κάτω από αυτή φορτώνει το WordPress, και μια ρύθμιση μετά από εκείνη έρχεται πολύ αργά.
- Η λήψη του WordPress περιλαμβάνει το
wp-config-sample.php. Το πραγματικόwp-config.phpδημιουργείται κατά την εγκατάσταση.- Μην αλλάζετε το
$table_prefixσε ζωντανό ιστότοπο επεξεργαζόμενοι μόνο αυτή τη γραμμή. Το WordPress θα συμπεριφερθεί σαν να μην είναι εγκατεστημένο.
Πού θα βρείτε το wp-config.php
Συνδεθείτε μέσω SFTP ή ανοίξτε τη διαχείριση αρχείων της φιλοξενίας σας και πηγαίνετε στον φάκελο που περιέχει τα wp-admin, wp-includes και wp-content. Η τεκμηρίωση του WordPress τον ονομάζει ρίζα του καταλόγου αρχείων του WordPress.
Αν δεν είναι εκεί, κοιτάξτε έναν φάκελο πιο πάνω. Ο φορτωτής του WordPress ελέγχει πρώτα τον φάκελο εγκατάστασης και μετά τον γονικό φάκελο, και παραλείπει τον γονικό αν έχει δικό του wp-settings.php, γιατί αυτό σημαίνει ότι εκεί υπάρχει άλλη εγκατάσταση WordPress.
Αν το αρχείο δεν υπάρχει σε κανένα από τα δύο σημεία, το WordPress στέλνει τους επισκέπτες στην οθόνη εγκατάστασης. Αυτή η οθόνη δημιουργεί το αρχείο από το wp-config-sample.php. Όταν δεν μπορεί να γράψει στον φάκελο, σας δείχνει το κείμενο για να το επικολλήσετε χειροκίνητα σε νέο αρχείο.
Τι κάνει κάθε προεπιλεγμένη ενότητα
Το wp-config-sample.php είναι το πρότυπο, και έχει αυτά τα μέρη με αυτή τη σειρά:
| Ενότητα | Τι περιέχει | Μπορείτε να την αλλάξετε; |
|---|---|---|
DB_NAME, DB_USER, DB_PASSWORD, DB_HOST | Τα στοιχεία σύνδεσης της βάσης δεδομένων. Το πρότυπο χρησιμοποιεί localhost ως host, και ο πάροχος φιλοξενίας μπορεί να σας δώσει τις πραγματικές τιμές. | Ναι, όταν αλλάξουν τα στοιχεία της βάσης δεδομένων. Μια λάθος τιμή προκαλεί το σφάλμα σύνδεσης με τη βάση δεδομένων. |
DB_CHARSET, DB_COLLATE | Πώς αποθηκεύεται το κείμενο στη βάση δεδομένων. Οι προεπιλογές είναι utf8mb4 και μια κενή τιμή. | Το ίδιο το σχόλιο του προτύπου για το DB_COLLATE λέει να μην το αλλάξετε αν έχετε αμφιβολία. |
AUTH_KEY έως NONCE_SALT | Οκτώ κλειδιά ασφαλείας και salts για τα cookies σύνδεσης. | Ναι. Η αλλαγή τους αποσυνδέει όλους τους χρήστες. |
$table_prefix | Το κείμενο στην αρχή του ονόματος κάθε πίνακα της βάσης δεδομένων, από προεπιλογή wp_. | Μόνο κατά την εγκατάσταση, εκτός αν μετονομάσετε και τους πίνακες και ενημερώσετε τις αποθηκευμένες εγγραφές της βάσης των οποίων τα ονόματα χρησιμοποιούν το πρόθεμα. |
WP_DEBUG | Η λειτουργία εντοπισμού σφαλμάτων, με τιμή false στο πρότυπο. | Ναι. Ο οδηγός για τη θέση του αρχείου καταγραφής δείχνει πώς να στέλνετε τα σφάλματα σε αρχείο. |
| Το σχόλιο “custom values” (προσαρμοσμένες τιμές) | Κενός χώρος για τις ρυθμίσεις σας, που τελειώνει στη γραμμή “stop editing”. | Ναι, εδώ μπαίνουν οι προσθήκες σας. |
ABSPATH και η γραμμή wp-settings.php | Η διαδρομή προς το WordPress και η γραμμή που φορτώνει τα υπόλοιπα. | Όχι. Αφήστε τα ως έχουν. |
Νέα κλειδιά παίρνετε με ένα κλικ: η υπηρεσία μυστικών κλειδιών του WordPress.org δίνει νέο σύνολο κάθε φορά που τη φορτώνετε. Αντικαταστήστε και τις οκτώ γραμμές με το νέο σύνολο.
Τα παλαιότερα αρχεία μπορεί να μην έχουν το σχόλιο “custom values” και να γράφουν “Happy blogging” αντί για “Happy publishing”. Και τα δύο λειτουργούν, και ο κανόνας μένει ίδιος: προσθέστε τις ρυθμίσεις σας πάνω από εκείνη τη γραμμή.
Ρυθμίσεις που αλλάζουν συχνά
Καθεμία είναι μία γραμμή. Όλες προέρχονται από την τεκμηρίωση του wp-config.php, και οι προεπιλογές από το default-constants.php του WordPress.
// Memory for the front end, then for wp-admin
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
// Keep at most 3 revisions per post (false turns revisions off)
define( 'WP_POST_REVISIONS', 3 );
// Autosave every 180 seconds
define( 'AUTOSAVE_INTERVAL', 180 );
// Empty the trash after 7 days
define( 'EMPTY_TRASH_DAYS', 7 );
// Remove the theme and plugin file editor from wp-admin
define( 'DISALLOW_FILE_EDIT', true );
// Force HTTPS for logins and wp-admin
define( 'FORCE_SSL_ADMIN', true );
// Set the site addresses here
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );
Αντιγράψτε μόνο τις γραμμές που χρειάζεστε. Κάποιες έχουν λεπτομέρειες που αξίζει να γνωρίζετε:
- Μνήμη: το WordPress χρησιμοποιεί από προεπιλογή 40M, ή 64M σε multisite, και 256M για το wp-admin, εκτός αν η PHP επιτρέπει ήδη περισσότερα. Αν η φιλοξενία σας δεν επιτρέπει αλλαγή του ορίου, το WordPress χρησιμοποιεί το όριο που έχει ήδη η PHP. Ο οδηγός για την εξάντληση μνήμης εξηγεί τι να κάνετε τότε.
- Αναθεωρήσεις: είναι ενεργές από προεπιλογή. Βάλτε
falseγια να τις απενεργοποιήσετε ή έναν αριθμό για όριο. - Αυτόματη αποθήκευση και κάδος: οι προεπιλογές είναι 60 δευτερόλεπτα και 30 ημέρες. Με
EMPTY_TRASH_DAYSστο0ο κάδος απενεργοποιείται, και η τεκμηρίωση προειδοποιεί ότι τότε το WordPress δεν θα ζητά επιβεβαίωση όταν κάποιος πατά “Delete Permanently” (Οριστική διαγραφή). - Επεξεργαστής αρχείων: ο οδηγός ασφάλειας λέει ότι αυτό δεν θα εμποδίσει έναν επιτιθέμενο να ανεβάσει κακόβουλα αρχεία, αν και μπορεί να σταματήσει κάποιες επιθέσεις. Το
DISALLOW_FILE_MODSπάει πιο πέρα και μπλοκάρει επίσης την εγκατάσταση και ενημέρωση προσθέτων και θεμάτων. - HTTPS: όταν η ρύθμιση «Διεύθυνση WordPress» ξεκινά ήδη με
https, το WordPress ορίζει μόνο του τοFORCE_SSL_ADMINσεtrue. Αυτή η γραμμή αλλάζει κάτι μόνο όταν η διεύθυνση δεν ξεκινά μεhttps. - Διευθύνσεις ιστότοπου: αυτές παρακάμπτουν τις αποθηκευμένες τιμές χωρίς να αλλάζουν ό,τι υπάρχει στη βάση δεδομένων. Συμπεριλάβετε το τμήμα
https://.
Μία ρύθμιση χρειάζεται περισσότερο σχεδιασμό. Το define( 'DISABLE_WP_CRON', true ); σταματά τις επισκέψεις σελίδων από το να ξεκινούν προγραμματισμένες εργασίες, οπότε ρυθμίστε ένα cron στον server για το wp-cron.php πριν το ενεργοποιήσετε, αλλιώς οι προγραμματισμένες δημοσιεύσεις και άλλες χρονισμένες εργασίες δεν θα εκτελούνται.
Πώς να επεξεργαστείτε με ασφάλεια το wp-config.php
- Κατεβάστε πρώτα ένα αντίγραφο. Κρατήστε το στον δικό σας υπολογιστή. Ένα αντίγραφο στον server με όνομα όπως
wp-config.php.bakμπορεί να διαβάζεται από πρόγραμμα περιήγησης, επειδή ο server δεν το χειρίζεται πια ως PHP. - Ανοίξτε το αρχείο σε επεξεργαστή απλού κειμένου. Ο οδηγός επεξεργασίας του WordPress αναφέρει ως αποδεκτά τα Notepad++, Sublime Text και Visual Studio Code, και προειδοποιεί για τα Google Docs και Microsoft Word, επειδή οι επεξεργαστές κειμένου αλλάζουν τα εισαγωγικά και μπορούν να προσθέσουν κώδικα που χαλά τα αρχεία.
- Βρείτε τη γραμμή “stop editing” και βάλτε τις νέες γραμμές ακριβώς από πάνω. Αν η ρύθμιση έχει ήδη οριστεί πιο πάνω, αλλάξτε εκείνη τη γραμμή.
- Αποθηκεύστε, ανεβάστε και ανοίξτε τον ιστότοπο σε ιδιωτικό παράθυρο του προγράμματος περιήγησης, μαζί με μία σελίδα του wp-admin.
- Αν κάτι χαλάσει, επαναφέρετε το αντίγραφό σας. Έτσι αναιρείται η αλλαγή, ακόμη κι αν δεν φορτώνει το wp-admin.
Μεταφορά του αρχείου πάνω από τη ρίζα του web
Ο οδηγός ασφάλειας λέει ότι το wp-config.php μπορεί να αποθηκευτεί έναν φάκελο πάνω από την εγκατάσταση του WordPress, και ο κώδικας του φορτωτή το χειρίζεται χωρίς επιπλέον ρυθμίσεις. Μετακινήστε το αρχείο και ελέγξτε ότι ο ιστότοπος φορτώνει ακόμη. Η μεταφορά έχει δύο όρια:
- Ο γονικός φάκελος δεν μπορεί να έχει άλλη εγκατάσταση WordPress. Ο φορτωτής αγνοεί γονικό φάκελο με δικό του
wp-settings.php. - Ένα επίπεδο πιο πάνω είναι ιδιωτικό μόνο αν το WordPress βρίσκεται στη ρίζα του web. Αν το WordPress είναι σε υποφάκελο όπως
/blog/, ένα επίπεδο πιο πάνω συνήθως παραμένει δημόσιο.
Ο ίδιος οδηγός αναφέρει ότι κάποιοι υποστηρίζουν πως η μεταφορά έχει ελάχιστα οφέλη ασφάλειας και ότι μπορεί να δημιουργήσει σοβαρά κενά ασφαλείας αν γίνει απρόσεκτα. Θεωρήστε την λοιπόν προαιρετική. Για τον Apache, ο οδηγός δίνει επίσης αυτό το μπλοκ για την αρχή του αρχείου .htaccess, που απορρίπτει τα απευθείας αιτήματα προς το αρχείο:
<Files "wp-config.php">
Require all denied
</Files>
Ο οδηγός μας για την ασφάλεια του .htaccess καλύπτει αυτόν τον κανόνα μαζί με άλλους.
Δικαιώματα αρχείου για το wp-config.php
Η τεκμηρίωση του WordPress δίνει ελαφρώς διαφορετικούς αριθμούς, ανάλογα με την περίπτωση:
- Ο οδηγός ασφάλειας λέει ότι μόνο εσείς και ο web server πρέπει να μπορείτε να διαβάσετε το αρχείο, που σύμφωνα με αυτόν γενικά σημαίνει 400 ή 440.
- Ο οδηγός δικαιωμάτων αρχείων αναφέρει 440 ή 400 σε κοινόχρηστη φιλοξενία με suexec, ώστε να μην μπορούν να το διαβάσουν άλλοι χρήστες του server. Δείχνει επίσης το 600 ως ασφαλισμένο παράδειγμα.
- Για τα συνηθισμένα αρχεία του WordPress, ο ίδιος οδηγός αναφέρει 644 ή 640.
Ποιος αριθμός λειτουργεί εξαρτάται από τον χρήστη συστήματος με τον οποίο τρέχει ο web server. Ο web server πρέπει να μπορεί να διαβάζει το αρχείο, οπότε αν ο ιστότοπος σταματήσει να φορτώνει μετά από αλλαγή, γυρίστε στην προηγούμενη τιμή και ρωτήστε τον πάροχο φιλοξενίας ποια ταιριάζει στη δική του διαμόρφωση.
Συνηθισμένα λάθη
- Επικόλληση ρύθμισης μετά τη γραμμή
wp-settings.php. Αυτή η γραμμή φορτώνει το WordPress και ορίζει τις προεπιλογές του. Μια σταθερά της PHP δεν μπορεί να αλλάξει κατά την εκτέλεση ενός script, οπότε η γραμμή σας δεν έχει αποτέλεσμα. - Ορισμός της ίδιας ρύθμισης δύο φορές. Η πρώτη γραμμή ορίζει την τιμή και η δεύτερη δεν μπορεί να την αλλάξει. Το εγχειρίδιο της PHP αναφέρει ότι η επαναδήλωση σταθεράς έχει καταργηθεί σταδιακά (deprecated) από την PHP 8.5, οπότε μπορεί να εμφανιστεί και μήνυμα. Αναζητήστε το όνομα στο αρχείο πριν το προσθέσετε.
- Εισαγωγικά γύρω από το true ή το false. Το
'false'είναι μη κενή συμβολοσειρά, και η PHP το θεωρεί true. Γράψτεfalseχωρίς εισαγωγικά. Τα μεγέθη όπως'256M'τα χρειάζονται. - Καμπυλωτά εισαγωγικά από επεξεργαστή κειμένου ή ιστοσελίδα. Η PHP χρειάζεται ίσια εισαγωγικά, οπότε τα καμπυλωτά προκαλούν σφάλμα που εμποδίζει τη φόρτωση του ιστότοπου.
- Εμφάνιση σφαλμάτων εντοπισμού σε ζωντανό ιστότοπο. Το
WP_DEBUG_DISPLAYείναι από προεπιλογήtrue, οπότε αν ενεργοποιήσετε μόνο τοWP_DEBUG, τα σφάλματα εμφανίζονται στη σελίδα για τους επισκέπτες. Ο οδηγός για τη θέση του αρχείου καταγραφής δείχνει πώς να τα στέλνετε σε αρχείο. - Να μένει ενεργό το
WP_ALLOW_REPAIR. Η τεκμηρίωση λέει να το ενεργοποιείτε μόνο όταν χρειάζεται και να το απενεργοποιείτε μόλις λυθεί το πρόβλημα.
Συχνές ερωτήσεις
Τι είναι το wp-config.php στο WordPress;
Είναι το αρχείο ρυθμίσεων που φορτώνει το WordPress κατά την εκκίνηση. Περιέχει τα στοιχεία σύνδεσης της βάσης δεδομένων, τα κλειδιά ασφαλείας και το πρόθεμα πινάκων, και εκεί προσθέτετε ρυθμίσεις όπως WP_DEBUG ή WP_MEMORY_LIMIT.
Πού βρίσκεται το αρχείο wp-config.php;
Κανονικά στη ρίζα της εγκατάστασης του WordPress, τον φάκελο που περιέχει επίσης τα wp-admin, wp-includes και wp-content. Το WordPress το δέχεται και έναν φάκελο πάνω από την εγκατάσταση, αρκεί αυτός ο φάκελος να μην έχει wp-settings.php.
Πού προσθέτω κώδικα στο wp-config.php; Πάνω από τη γραμμή That’s all, stop editing! Happy publishing. (Αυτά ήταν, σταματήστε την επεξεργασία! Καλές δημοσιεύσεις.) Τα παλαιότερα αρχεία γράφουν Happy blogging. Η τελευταία γραμμή κάτω από αυτή φορτώνει το WordPress, οπότε μια ρύθμιση μετά από εκείνη τη γραμμή έρχεται πολύ αργά.
Είναι ασφαλής η επεξεργασία του wp-config.php; Ναι, αν κρατήσετε αντίγραφο ασφαλείας και χρησιμοποιήσετε επεξεργαστή απλού κειμένου. Ένα μόνο τυπογραφικό λάθος μπορεί να εμποδίσει τη φόρτωση όλου του ιστότοπου, μαζί και του wp-admin, οπότε κατεβάστε πρώτα ένα αντίγραφο. Αν ο ιστότοπος χαλάσει μετά την αλλαγή, επαναφέρετε το αντίγραφο.
Τι συμβαίνει αν διαγράψω το wp-config.php; Το WordPress δεν μπορεί πια να βρει τα στοιχεία σύνδεσης της βάσης δεδομένων και ξεκινά τη διαδικασία εγκατάστασης, με προτροπή να δημιουργήσετε αρχείο ρυθμίσεων. Το περιεχόμενό σας μένει στη βάση δεδομένων, οπότε η επαναφορά του αντιγράφου ή η εκ νέου δημιουργία του αρχείου με τα ίδια στοιχεία συνδέει ξανά τον ιστότοπο.
Ποια δικαιώματα πρέπει να έχει το wp-config.php; Ο οδηγός ασφάλειας του WordPress λέει ότι μόνο εσείς και ο web server πρέπει να μπορείτε να το διαβάσετε, που γενικά σημαίνει 400 ή 440. Ο οδηγός δικαιωμάτων αρχείων δείχνει επίσης 600. Ο web server πρέπει να μπορεί να διαβάζει το αρχείο, οπότε ρωτήστε τον πάροχο φιλοξενίας αν ο ιστότοπος σταματήσει να φορτώνει.
Πηγές
- WordPress Advanced Administration: wp-config.php, Hardening WordPress, File permissions, Editing files
- Πηγαίος κώδικας του WordPress: wp-config-sample.php, wp-load.php, default-constants.php, setup-config.php, cron.php
- Εγχειρίδιο PHP: Constants, Booleans
Φτιάξτε τις ρυθμίσεις που χρειάζεστε χωρίς να τις πληκτρολογείτε, μαζί με νέα κλειδιά ασφαλείας, με τη δωρεάν γεννήτρια wp-config.php.
FAQ
Ερωτήσεις
Τι είναι το wp-config.php στο WordPress;
Είναι το αρχείο ρυθμίσεων που φορτώνει το WordPress κατά την εκκίνηση. Περιέχει τα στοιχεία σύνδεσης της βάσης δεδομένων, τα κλειδιά ασφαλείας και το πρόθεμα πινάκων, και εκεί προσθέτετε ρυθμίσεις όπως WP_DEBUG ή WP_MEMORY_LIMIT.
Πού βρίσκεται το αρχείο wp-config.php;
Κανονικά στη ρίζα της εγκατάστασης του WordPress, τον φάκελο που περιέχει επίσης τα wp-admin, wp-includes και wp-content. Το WordPress το δέχεται και έναν φάκελο πάνω από την εγκατάσταση, αρκεί αυτός ο φάκελος να μην έχει wp-settings.php.
Πού προσθέτω κώδικα στο wp-config.php;
Πάνω από τη γραμμή That's all, stop editing! Happy publishing. (Αυτά ήταν, σταματήστε την επεξεργασία! Καλές δημοσιεύσεις.) Τα παλαιότερα αρχεία γράφουν Happy blogging. Η τελευταία γραμμή κάτω από αυτή φορτώνει το WordPress, οπότε μια ρύθμιση μετά από εκείνη τη γραμμή έρχεται πολύ αργά.
Είναι ασφαλής η επεξεργασία του wp-config.php;
Ναι, αν κρατήσετε αντίγραφο ασφαλείας και χρησιμοποιήσετε επεξεργαστή απλού κειμένου. Ένα μόνο τυπογραφικό λάθος μπορεί να εμποδίσει τη φόρτωση όλου του ιστότοπου, μαζί και του wp-admin, οπότε κατεβάστε πρώτα ένα αντίγραφο. Αν ο ιστότοπος χαλάσει μετά την αλλαγή, επαναφέρετε το αντίγραφο.
Τι συμβαίνει αν διαγράψω το wp-config.php;
Το WordPress δεν μπορεί πια να βρει τα στοιχεία σύνδεσης της βάσης δεδομένων και ξεκινά τη διαδικασία εγκατάστασης, με προτροπή να δημιουργήσετε αρχείο ρυθμίσεων. Το περιεχόμενό σας μένει στη βάση δεδομένων, οπότε η επαναφορά του αντιγράφου ή η εκ νέου δημιουργία του αρχείου με τα ίδια στοιχεία συνδέει ξανά τον ιστότοπο.
Ποια δικαιώματα πρέπει να έχει το wp-config.php;
Ο οδηγός ασφάλειας του WordPress λέει ότι μόνο εσείς και ο web server πρέπει να μπορείτε να το διαβάσετε, που γενικά σημαίνει 400 ή 440. Ο οδηγός δικαιωμάτων αρχείων δείχνει επίσης 600. Ο web server πρέπει να μπορεί να διαβάζει το αρχείο, οπότε ρωτήστε τον πάροχο φιλοξενίας αν ο ιστότοπος σταματήσει να φορτώνει.
Περισσότεροι οδηγοί για αυτό το θέμα
- Πού βρίσκεται το debug log του WordPress και πώς να το μετακινήσετε
- Αναζήτηση και αντικατάσταση URL στη βάση δεδομένων του WordPress χωρίς να σπάσουν τα σειριοποιημένα δεδομένα
- Αύξηση ορίου μεταφόρτωσης στο WordPress (σε κάθε host)
- Διόρθωση του σφάλματος "Allowed Memory Size Exhausted" στο WordPress