Κεφάλαιο 14 · 14.5
PHP-ρυθμίσεις ανά φάκελο και μέσω .htaccess
Μερικές φορές θέλετε ένας συγκεκριμένος φάκελος να λειτουργεί διαφορετικά από την υπόλοιπη ιστοσελίδα σας. Για παράδειγμα ένα παλιό ηλεκτρονικό κατάστημα σε έναν υποφάκελο που δεν μπορεί ακόμα να λειτουργήσει με τη νέα έκδοση PHP, ή ένα script που χρειάζεται περισσότερη μνήμη. Αυτό μπορείτε να το ρυθμίσετε με ένα αρχείο .htaccess σε εκείνον τον φάκελο. Οι διακομιστές μας λειτουργούν με LiteSpeed, και το LiteSpeed διαβάζει κανόνες PHP στο .htaccess.
Προσοχή: Ένα λάθος στο .htaccess μπορεί να κάνει ολόκληρη την ιστοσελίδα σας (ή τον φάκελο) μη προσβάσιμη, με σφάλμα 500. Δημιουργήστε πρώτα ένα αντίγραφο του αρχείου και δοκιμάστε αμέσως μετά την αποθήκευση. Πώς βρίσκετε και επεξεργάζεστε το .htaccess, διαβάστε το στο Εμφάνιση και επεξεργασία κρυφών αρχείων όπως το .htaccess.
Προσαρμογή μιας επιλογής PHP για έναν φάκελο
Προσθέστε στο .htaccess εκείνου του φακέλου γραμμές όπως αυτές:
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value memory_limit 384M
php_value max_execution_time 300
Για επιλογές που είναι ενεργοποιημένες ή απενεργοποιημένες, χρησιμοποιείτε php_flag, για παράδειγμα php_flag display_errors off.
Οι γραμμές ισχύουν για εκείνον τον φάκελο και όλους τους υποφακέλους του. Αν τις προσθέσετε στο .htaccess του public_html, τότε ισχύουν για ολόκληρη την ιστοσελίδα σας.
Συμβουλή: Θέλετε να προσαρμόσετε μια επιλογή για ολόκληρο το πακέτο σας; Κάντε το τότε καλύτερα στο Select PHP version (δείτε PHP-επιλογές: upload_max_filesize, memory_limit και max_execution_time). Έτσι όλα βρίσκονται σε ένα σημείο και δεν ξεχνάτε αργότερα ότι υπάρχουν ακόμα γραμμές στο .htaccess.
Διαφορετική έκδοση PHP για έναν φάκελο
Ολόκληρο το πακέτο σας χρησιμοποιεί την έκδοση που έχετε επιλέξει στο Select PHP version. Αν θέλετε να δώσετε σε έναν φάκελο (ή σε ένα subdomain, που επίσης έχει δικό του φάκελο) διαφορετική έκδοση, προσθέστε στο .htaccess εκείνου του φακέλου:
<FilesMatch "\.(php)$">
SetHandler application/x-lsphp83
</FilesMatch>
Ο αριθμός μετά το lsphp είναι η έκδοση χωρίς τελεία: 74 για PHP 7.4, 82 για PHP 8.2, 83 για PHP 8.3, 84 για PHP 8.4, και ούτω καθεξής. Μπορείτε να επιλέξετε από τις ίδιες εκδόσεις που είναι διαθέσιμες στο Select PHP version.
Χρησιμοποιείτε σε εκείνον τον φάκελο extensions ή επιλογές που διαφέρουν; Αυτές ανήκουν στην έκδοση. Επιλέξτε τότε προσωρινά εκείνη την έκδοση στο Select PHP version, ρυθμίστε τα extensions και τις επιλογές, και στη συνέχεια επαναφέρετε την έκδοση του πακέτου σας. Οι ρυθμίσεις ανά έκδοση παραμένουν αποθηκευμένες.
Έλεγχος αν λειτουργεί
- Δημιουργήστε στον φάκελο ένα αρχείο info-test.php με αυτή τη μία γραμμή: <?php echo PHP_VERSION, ' ', ini_get('memory_limit');
- Ανοίξτε το στον browser σας, για παράδειγμα https://www.yourdomain.gr/oudewinkel/info-test.php. Θα δείτε την έκδοση PHP και τη μνήμη.
- Διαγράψτε αμέσως το αρχείο μετά. Μην αφήνετε αρχεία δοκιμής με πληροφορίες σχετικά με τον διακομιστή σας στην ιστοσελίδα σας.
Τι δεν λειτουργεί;
- Ένα δικό σας php.ini στον φάκελό σας δεν έχει καμία επίδραση. Χρησιμοποιήστε το Select PHP version ή το .htaccess.
- Τα disable_functions και open_basedir δεν μπορείτε να τα προσαρμόσετε μέσω .htaccess. Αυτά ανήκουν στην ασφάλεια του διακομιστή.
- Τιμές που έχουν οριστεί στο PHP Instellingen ως παράκαμψη για το domain (δείτε PHP Instellειngs στο DirectAdmin ή Select PHP version: ποια είναι η διαφορά;) υπερισχύουν του .htaccess.
