Κατάλογος άρθρου
Κάποιος ανέφερε ότι μετά την εγκατάσταση του Wordfence στον ιστότοπό του, λάμβανε συνεχώς σφάλματα που έλεγαν ότι δεν μπορούσε να δημιουργήσει το αρχείο wordfence-waf.php στον ριζικό κατάλογο. Του ζήτησα να μου στείλει ένα στιγμιότυπο οθόνης. Το μήνυμα σφάλματος ήταν μόνο μία γραμμή, λέγοντας ότι επρόκειτο για πρόβλημα δικαιωμάτων αρχείου.
Το σκέφτηκα για μια στιγμή και συνειδητοποίησα ότι το είχα ξανασυναντήσει. Πέρασα πολύ καιρό προσπαθώντας να το καταλάβω, σχεδόν σκεπτόμενος ότι ο πάροχος φιλοξενίας κάτι σκόπευε. Αποδείχθηκε ότι ήταν θέμα δικαιωμάτων και ιδιοκτησίας, αλλά η λογική του πίνακα ελέγχου φιλοξενίας μπορεί να προκαλέσει μεγάλη σύγχυση.

Επιτρέψτε μου πρώτα να διευκρινίσω τι είναι αυτό το wordfence-waf.php.
Στην πραγματικότητα, πρόκειται για το αρχείο προστασίας του τείχους προστασίας του Wordfence, το οποίο πρέπει να είναι γραμμένο στον ριζικό κατάλογο του ιστότοπου, στο ίδιο επίπεδο με το wp-config.php.
Χωρίς αυτό το αρχείο, το τείχος προστασίας δεν μπορεί να ξεκινήσει. Είναι σαν να έχετε εγκαταστήσει μια κλειδαριά αλλά το κλειδί δεν μπορεί να εισαχθεί.
Επιλογή 1: Τροποποίηση δικαιωμάτων με ένα κλικ μέσω του πίνακα ελέγχου (BT Panel/)HestiaCP/cPanel)
Αν χρησιμοποιείτε το BT Panel, είναι στην πραγματικότητα το πιο απλό. Μεταβείτε στον ιστότοπό σας, βρείτε τον αντίστοιχο ιστότοπο, κάντε κλικ στις Ρυθμίσεις και, στη συνέχεια, μεταβείτε στις Δικαιώματα καταλόγου. Αλλάξτε το δικαίωμα στον ριζικό κατάλογο του ιστότοπου σε 755 και στο δικαίωμα σε όλα τα αρχεία σε 644. Στη συνέχεια, ελέγξτε αν ο χρήστης που εκτελείται είναι ο "www". Αν όχι, αλλάξτε το. Κάντε κλικ στο κουμπί "Επισκευή Δικαιωμάτων", περιμένετε να ολοκληρωθεί, ανανεώστε το Wordfence και προσπαθήστε ξανά.
Για το HestiaCP, μεταβείτε στη σελίδα επεξεργασίας ιστότοπου και ενεργοποιήστε την επιλογή "Να επιτρέπεται η πρόσβαση εγγραφής στη ρίζα του ιστού". Στη συνέχεια, εκτελέστε μερικές εντολές SSH για να ενοποιήσετε τον κάτοχο και τα δικαιώματα του καταλόγου ιστότοπου.
chown -R admin:www-data /home/admin/web/你的域名/public_html
chmod -R 755 /home/admin/web/你的域名/public_html
find /home/admin/web/你的域名/public_html -type f -print0 | xargs -0 chmod 644Το cPanel είναι πιο εύχρηστο. Ανοίξτε τη διαχείριση αρχείων, ενεργοποιήστε την επιλογή "Εμφάνιση κρυφών αρχείων" στην επάνω δεξιά γωνία, κάντε δεξί κλικ στον κατάλογο και αλλάξτε τα δικαιώματα σε 755, αλλάξτε τα δικαιώματα αρχείων σε 644 και υπάρχει επίσης μια λειτουργία για να διορθώσετε τον κάτοχο του αρχείου στις προηγμένες επιλογές.
Επιλογή 2: Αλλαγή δικαιωμάτων χειροκίνητα μέσω SSH (γενικά)Linux)
Εάν ο πίνακας ελέγχου δεν μπορεί να το χειριστεί, χρησιμοποιήστε το SSH χειροκίνητα. Μόλις συνδεθείτε στον διακομιστή, ενοποιήστε πρώτα την ιδιοκτησία. Σε ένα περιβάλλον LNMP/LEMP, η ομάδα εκτέλεσης ιστού είναι συνήθως www-data ή www.
chown -R 你的面板用户:www-data /网站根目录完全路径Στη συνέχεια, ορίστε τα δικαιώματα φακέλου σε 755 και τα δικαιώματα αρχείων σε 644.
find /网站根目录 -type d -print0 | xargs -0 chmod 755
find /网站根目录 -type f -print0 | xargs -0 chmod 644Αφού ολοκληρωθεί η διαδικασία, επιστρέψτε στο backend του WP και ενεργοποιήστε ξανά το τείχος προστασίας. Αυτό πιθανότατα θα λύσει το πρόβλημα.
Επιλογή 3: Δημιουργήστε χειροκίνητα το wordfence-waf.php (μια εξαιρετική λύση όταν τα δικαιώματα είναι κλειδωμένα)
Αν δεν μπορείτε να αλλάξετε τίποτα μέσω του πίνακα SSH, κάντε το χειροκίνητα. Δημιουργήστε ένα αρχείο με όνομα wordfence-waf.php στον ριζικό κατάλογο και επικολλήστε τον ακόλουθο κώδικα σε αυτό.
<?php
if (!defined('WFWAF_VERSION')) {
define('WFWAF_VERSION', '7.11.0');
}
$wafConfig = array(
'wafAutoPrepend' => true,
'wafFile' => __FILE__,
'wpContentDir' => dirname(__FILE__) . '/wp-content',
'wpPluginsDir' => dirname(__FILE__) . '/wp-content/plugins',
'wafLogDir' => dirname(__FILE__) . '/wp-content/wflogs',
);
require_once $wafConfig['wpPluginsDir'] . '/wordfence/lib/waf/waf.php';Θυμηθείτε να αντικαταστήσετε την έκδοση 7.11.0 με την τρέχουσα έκδοση του Wordfence. Ορίστε τα δικαιώματα αρχείου σε 644 και ο κάτοχος θα πρέπει να ταιριάζει με τον ιστότοπο. Στη συνέχεια, επεξεργαστείτε το wp-config.php και προσθέστε την ακόλουθη γραμμή στην αρχή του αρχείου.
require_once 'wordfence-waf.php';Αποθηκεύστε και ανανεώστε το Wordfence. Το τείχος προστασίας θα το αναγνωρίσει αυτόματα και δεν θα αναφέρει πλέον σφάλματα.
Επιλογή 4: Ελέγξτε τους κανόνες που περιορίζουν την πρόσβαση εγγραφής.
Μερικές φορές δεν πρόκειται για πρόβλημα δικαιωμάτων, αλλά μάλλον για το αρχείο ρυθμίσεων που το εμποδίζει. Ανοίξτε το αρχείο .htaccess και διαγράψτε όλους τους κανόνες που περιορίζουν την πρόσβαση εγγραφής αρχείων ή αποτρέπουν τη δημιουργία αρχείων PHP. Για το Nginx, ελέγξτε τη διαμόρφωση του ιστότοπού σας για περιορισμούς όπως η root path (μόνο για ανάγνωση) ή η create_file off και καταργήστε τους.
Ένα άλλο σενάριο είναι ότι ο εικονικός κεντρικός υπολογιστής ή η υπηρεσία lightweight cloud hosting περιορίζει την ίδια τη δημιουργία αρχείων PHP στον ριζικό κατάλογο. Σε αυτήν την περίπτωση, πρέπει να επικοινωνήσετε με τον πάροχο φιλοξενίας σας για να καταργήσετε τον περιορισμό ή να αλλάξετε τη λειτουργία προστασίας του Wordfence. Μεταβείτε στο μενού Wordfence, Όλες οι επιλογές, WAF και αλλάξτε τη λειτουργία του μηχανισμού προστασίας σε Εκτεταμένη προστασία για να παρακάμψετε τη δημιουργία αρχείων root.
Λύση 5: Διένεξεις προσθηκών που προκαλούν αποκλεισμό
Ορισμένα πρόσθετα προσωρινής αποθήκευσης ή ασφαλείας ενδέχεται να εμποδίζουν αυτήν τη λειτουργία. Απενεργοποιήστε προσωρινά πρόσθετα προσωρινής αποθήκευσης όπως τα WP Rocket, W3 Total Cache και LiteSpeed Cache, καθώς και πρόσθετα ασφαλείας όπως τα Sucuri και iThemes Security. Στη συνέχεια, εκκαθαρίστε την προσωρινή μνήμη του διακομιστή και το opcache και επανεκκινήστε την υπηρεσία PHP.
systemctl restart php8.3-fpmΓρήγορη ακολουθία αντιμετώπισης προβλημάτων (συνιστάται να ακολουθήσετε τα βήματα με τη σειρά)
Σας προτείνω να ακολουθήσετε αυτήν τη σειρά για να αποφύγετε την αναστάτωση. Αρχικά, ενοποιήστε τα δικαιώματα και την ιδιοκτησία. Αυτό έχει τη μεγαλύτερη πιθανότητα να λύσει το πρόβλημα. Εάν αυτό δεν λειτουργήσει, επανεκκινήστε το PHP-FPM και ανανεώστε το backend. Εάν αυτό εξακολουθεί να μην λειτουργεί, δημιουργήστε ένα νέο αρχείο με μη αυτόματο τρόπο και τροποποιήστε το wp-config. Στη συνέχεια, ελέγξτε εάν η διαμόρφωση Nginx ή Apache εμποδίζει τη δημιουργία νέων αρχείων PHP στον ριζικό κατάλογο. Τέλος, σκεφτείτε να αλλάξετε τις λειτουργίες του τείχους προστασίας.
Ένα πράγμα που πρέπει να σας υπενθυμίσω είναι ότι δεν πρέπει ποτέ να ορίζετε δικαιώματα σε 777. Τα δικαιώματα φακέλων θα πρέπει να είναι 755 και τα δικαιώματα αρχείων 644. Αυτό είναι το πρότυπο. Ο ορισμός δικαιωμάτων σε 777 θα εκθέσει άμεσα τον ιστότοπό σας, θέτοντας σε εξαιρετικά υψηλό κίνδυνο ασφαλείας. Εάν πέσετε θύμα χάκερ, θα είναι πολύ αργά για να το μετανιώσετε.
Για να είμαι ειλικρινής, δεν είμαι σίγουρος αν αυτές οι λύσεις θα λειτουργήσουν για την περίπτωσή σας, αλλά έχω μοιραστεί τις παγίδες που αντιμετώπισα και τις μεθόδους που ανακάλυψα. Εάν λάβετε άλλα μηνύματα σφάλματος, τραβήξτε ένα στιγμιότυπο οθόνης και στείλτε το σε εμένα και θα το ξαναδώ.
Αφού διαβάσατε μέχρι εδώ, αν το βρήκατε χρήσιμο, κάντε like και κοινοποιήστε το. Αν θέλετε να λαμβάνετε ενημερώσεις πρώτοι, μπορείτε επίσης να με ακολουθήσετε!
Σας ευχαριστώ που διαβάσατε το άρθρο μου. Τα λέμε την επόμενη φορά.
Ιστολόγιο Hope Chen Weiliang ( https://www.chenweiliang.com/ Το σεμινάριο "Πλήρης λύση για την αδυναμία δημιουργίας του wordfence-waf.php από το WordPress Wordfence" που κοινοποιήθηκε εδώ μπορεί να σας φανεί χρήσιμο.
Καλώς ήρθατε να μοιραστείτε τον σύνδεσμο αυτού του άρθρου:https://www.chenweiliang.com/cwl-34337.html
