Αυτό είναι ένα τεχνικό άρθρο. Δεν αφορά (ακόμη) τον επιχειρηματία που σκέφτεται να δημιουργήσει την επαγγελματική του ιστοσελίδα. Δεν αφορά επίσης τον/την κάτοχο επαγγελματικής ιστοσελίδας της οποίας την διαχείριση έχει αναλάβει κάποια εταιρία. Το πως αλλάζουμε τις τιμές των βασικών παραμέτρων php αφορά μάλλον τον ιδιοκτήτη ιστοσελίδας ο οποίος έχει αναλάβει τη συντήρησή της μόνος του.
Και κυρίως, αφορά τον καθένα συνεργάτη – εργαζόμενο μιας επιχείρισης που διαχειρίζεται την επαγγελματική της ιστοσελίδα.
Γιατί μας αφορά
Το WordPress έχει πλέον κυριαρχήσει ως βασικότερο CMS ιστοσελίδας. Ο βαθμός εξάπλωσής του είναι τέτοιος, ώστε οι βασικές γνώσεις διαχείρισης WP θεωρούνται πλέον βασικό skill για κάθε εργαζόμενο σε ένα ευρύ επαγγελματικό φάσμα. Πολλές επιχειρήσεις επιλέγουν να αφήνουν τη διαχείριση της ιστοσελίδας τους σε κάποιον από τους εσωτερικούς της συνεργάτες.
Το βάρος της διαχείρισης, αλλά και γενικότερα της σωστής λειτουργίας της ιστοσελίδας, βρίσκεται συχνά στα χέρια κάποιου εργαζόμενου της επιχείρησης. Κάποιες ρυθμίσεις που είτε εξ΄αρχής έχουν γίνει λάθος, είτε στη πορεία ανάπτυξης της ιστοσελίδας έχουν μείνει παρωχημένες και δυσλειτουργικές, πρέπει να αλλάξουν.
Σε αυτό το αυστηρά τεχνικό λοιπόν άρθρο, θα δούμε κάποιες σημαντικές από τις ρυθμίσεις αυτές.
Τι είναι τα php values;
Πρόκειται για κάποιες τιμές που δίνονται σε συγκεκριμένες μεταβλητές της γλώσσας php στην οποία είναι “χτισμένη” κάθε WordPress ιστοσελίδα. Ο ρόλος τους αφορά τον τρόπο λειτουργίας κάποιων ενεργειών που γίνονται αυτόματα (ή που κάνουμε εμείς) στην ιστοσελίδα. Οι δε τιμές που δίνονται, εξασφαλίζουν την ισορροπία μεταξύ λειτουργικότητας, χρόνου φόρτωσης της σελίδας και ασφάλειας.
Δεν θα ασχοληθούμε αναλυτικά με αυτές γιατί θα ξεφύγουμε από το θέμα του άρθρου, θα κάνουμε όμως μια απλή αναφορά στη βασική χρήση της καθεμίας από αυτές. Ο καθένας που παίρνει βασικά μαθήματα WordPress και μαθαίνει πως γίνεται η εγκατάσταση του WP τοπικά, ενημερώνεται πως ένα από τα πρώτα που πρέπει να κάνει πριν ξεκινήσει τη πρώτη του εγκατάσταση είναι να αλλάξει στον τοπικό του server και μέσα από το αρχείο php.ini τις παρακάτω τιμές:
max_input_time
max_input_vars
memory_limit
post_max_size
upload_max_filesize
max_execution_time
Οι τιμές αυτές ορίζουν για παράδειγμα το χρόνο που δίνεται για να εκτελεστεί κάποια ενέργεια: η εμφάνιση error 502 πχ γίνεται όταν έχουμε περιορισμένο χρόνο εκτέλεσης τέτοιων ενεργειών. Επίσης, κάποιες από τις παραπάνω τιμές ορίζουν το μέγιστο μέγεθος αρχείων που μπορούμε να μεταφορτώσουμε στη βιβλιοθήκη πολυμέσων. Ή το μέγιστο όγκο που μπορεί να καταλαμβάνει κάποιο άρθρο κτλ.
Υπάρχουν “σωστές” τιμές για τα php values;
Η απλή λογική λέει “δώσε όσο το δυνατόν μεγαλύτερες τιμές” ώστε να υπάρχει όσο το δυνατόν μεγαλύτερη ελευθερία στις ενέργειες που είναι να γίνουν. Είναι μια λογική που αποτελεί ένα συνηθισμένο λάθος που κάνουμε συχνά – ναι, κοκκινίζω, αλλά έχω πέσει κι εγώ στο παρελθόν σε αυτό το σφάλμα. Το WP επιτρέπει για παράδειγμα από προεπιλογή, το μέγιστο επιτρεπόμενο αρχείο που να μπορούμε να μεταφορτώσουμε (μια εικόνα, ένα βίντεο κτλ) να έχει μέγεθος 2Μ. Γιατί να μην αυξήσουμε το μέγεθος αυτό, γιατί να μην έχουμε τη δυνατότητα να μπορούμε να ανεβάσουμε ένα βίντεο μεγαλύτερης χωρητικότητας;
Δεν υπάρχει κάποια σωστή απάντηση σε αυτό. Ίσα ίσα, σε αυτό το άρθρο θα δούμε πως θα μπορούμε να κάνουμε κάτι τέτοιο. Από την άλλη μεριά όμως, είμαστε σίγουροι ότι θέλουμε να επιβαρύνουμε τον serever μας με ένα σύνολο αρχείων τέτοιας χωρητικότητας; Ή αλλιώς, ο χώρος φιλοξενίας που έχουμε μας επιτρέπει την ομαλή διαχείριση τέτοιων αρχείων χωρίς να “γονατίσει” την ιστοσελίδα μας;
Παρόμοιες ανησυχίες θα προκύψουν και για άλλα χαρακτηριστικά. Δείτε για παράδειγμα εδώ ότι τιμές μεγαλύτερες από το default των 30 δευτερολέπτων για τη παράμετρο max_execution_time δεν δίνει πάντα τα καλύτερα αποτελέσματα.
Γιατί να πειράξουμε τα php values;
Όπως φαίνεται, αν δεν είμαστε απόλυτα σίγουροι για το τι κάνουμε κι εκτός κι αν μας το έχει υποδείξει κάποιος ειδικός, δεν μοιάζει συνετό το να αλλάξουμε τις παραπάνω τιμές. Παρ΄ όλα αυτά.
Ο καθένας που έχει εγκαταστήσει κάποιο premium θέμα στην ιστοσελίδα του, γνωρίζει πως το κάθε θέμα για να λειτουργήσει, έχει τις δικές του απαιτήσεις. Αμέσως μετά την εγκατάσταση μας προτείνει τις ενδεδειγμένες τιμές php για να λειτουργήσει σωστά.
Αν έχουμε μόλις αλλάξει θέμα στην ιστοσελίδα μας είναι πιθανόν οι τιμές αυτές να απαιτείται να αλλάξουν. Το ίδιο θα συμβεί αν ο κατασκευαστής της σελίδας μας αμέλησε να κάνει τις σωστές ρυθμίσεις.
Πως τα αλλάζουμε
Α. Τοπικά
Στο φάκελο php του xampp βρίσκεται το αρχείο php.ini. Εναλλακτικά μπορούμε να το αναζητήσουμε μέσω του πίνακα ελέγχου του xampp πιέζοντας το Config. Μέσα σε αυτό και από την αναζήτηση, βρίσκουμε καθεμία από τις παραπάνω τιμές και τις αλλάζουμε σύμφωνα με αυτές που μας έχουν προταθεί.
Κάποιες προτεινόμενες για παράδειγμα τιμές είναι οι
max_input_time=180
max_input_vars=6000
memory_limit=512M
post_max_size=128M
upload_max_filesize=64M
max_execution_time=600,
οι οποίες θα αυξήσουν τη λειτουργικότητα του site που δουλεύουμε τοπικά χωρίς να δημιουργήσουν πρόβλημα στην ασφάλεια.
Αλλά τι γίνεται όταν η ιστοσελίδα μας βρίσκεται στον αέρα και δεν έχουμε πρόσβαση στα αρχεία του ίδιου του server;
Β. Online
Είτε για λόγους ασφαλείας είτε επειδή το πακέτο φιλοξενίας μας δεν επιτρέπει μεγαλύτερες τιμές, οι διαχειριστές του hosting μας έχουν “κλειδώσει” κάποιες προεπιλεγμένες τιμές για τα php values. Αν το θέμα μας απαιτεί μεγαλύτερες τιμές για να λειτουργήσει, έχουμε πρόβλημα.
Υπάρχουν τρεις τρόποι για να προσπελάσουμε τις από το hosting προεπιλεγμένες τιμές. Ας τις δούμε.
1. Δημιουργία ή επεξεργασία υπάρχοντος αρχείου php.ini
Κατά πάσα πιθανότητα δεν θα έχουμε πρόσβαση σε αυτό το αρχείο. Αν όμως έχουμε πρόσβαση στα ίδια τα αρχεία της ιστοσελίδας μας, τότε μπορούμε να κάνουμε το εξής:
- Δημιουργούμε ένα απλό text αρχείο στον υπολογιστή μας ονομάζοντάς το php.text.
- Από τον παρακάτω κώδικα:
max_input_time=180
max_input_vars=6000
memory_limit=512M
post_max_size=128M
upload_max_filesize=64M
max_execution_time=600
(α) αντιγράφουμε όσες από τις τιμές απαιτούνται από το θέμα μας να αλλάξουμε,
(β) θέτουμε ακριβώς τις τιμές που ζητάει το θέμα! - Αποθηκεύουμε το αρχείο και το κάνουμε upload στο ριζικό (κεντρικό) φάκελο των αρχείων του site μας.
- Μετονομάζουμε το αρχείο σε php.ini.
Όπως προτείνεται από τους ειδικούς, “αυτή η μέθοδος ίσως λειτουργήσει σε πολλούς χρήστες”. Προσωπικά σε εμένα δεν λειτούργησε όταν απαιτήθηκε να κάνω μια αντίστοιχη αλλαγή, οπότε περνάμε στη 2η μέθοδο.
2. Μέθοδος htaccess
Στο ριζικό φάκελο των αρχείων του WordPress βρίσκεται (σχεδόν) πάντα ένα αρχείο με το όνομα .htaccess. Αν δεν υπάρχει, το δημιουργούμε εμείς. Στο αρχείο αυτό επικολλούμε (πχ στο τέλος του) τον παρακάτω κώδικα:
php_value max_input_time 180
php_value max_input_vars=6000
php_value memory_limit=512M
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 600
ή, όποια τμήματα του παραπάνω κώδικα απαιτεί το θέμα μας να αλλάξουμε, δίνοντας τις κατάλληλες τιμές. Και σε αυτή τη περίπτωση και αν διαθέτουμε shared hosting, είναι πιθανόν ούτε αυτή η μέθοδος να λειτουργήσει.
Οπότε περνάμε στη τρίτη και πιο αξιόπιστη μέθοδο.
3. Αρχείο functions.php
Στη διαδρομή wp-content -> Themes των αρχείων του WP βρίσκουμε τους φακέλους με τα εγκατεστημένα θέματα του site μας. Σιγουρευόμαστε για το ποιο έχουμε ενεργοποιημένο και ανοίγουμε αυτό.
Προσοχή. Αν όλα έχουν γίνει σωστά, εκτός από το θέμα που έχουμε εγκαταστήσει, έχει δημιουργηθεί – και είναι ενεργοποιημένο! – και το θυγατρικό θέμα. Ανοίγουμε το φάκελο του θυγατρικού θέματος λοιπόν.
Στο φάκελο οποιουδήποτε θέματος υπάρχει ένα αρχείο με το όνομα functions.php. Το ανοίγουμε και αντιγράφουμε σε αυτόν το τμήμα του παρακάτω κώδικα που μας ενδιαφέρει:
@ini_set( ‘max_input_time’ , ‘180’ );
@ini_set( ‘max_input_vars’ , ‘6000’ );
@ini_set( ‘memory_limit’ , ‘512M’ );
@ini_set( ‘upload_max_size’ , ’64M’ );
@ini_set( ‘post_max_size’, ’64M’);
@ini_set( ‘max_execution_time’, ‘600’ );
Και πάλι, δεν ξεχνάμε να αλλάξουμε τις παραπάνω τιμές σε αυτές που ζητάει το θέμα μας. Η μέθοδος αυτή θα λειτουργήσει ακόμη και στη περίπτωση που το site μας βρίσκεται σε shared hosting. Τα php values θα αλλάξουν, το θέμα μας θα λειτουργεί απροβλημάτιστα.
Ελπίζω τα παραπάνω να βοήθησαν να προσπελάσετε προβλήματα δυσλειτουργίας του θέματός σας.
Ραντεβού στο επόμενο άρθρο!