Όταν χρησιμοποιείτε την PHP σαν ένα Apache module, μπορείτε ακόμη να αλλάξετε τις επιλογές ρυθμίσεων χρησιμοποιώντας directives στα αρχεία ρυθμίσεων του Apache (π.χ. httpd.conf) και τα αρχεία .htaccess (Θα χρειαστεί να ορίσετε τα "AllowOverride Options" ή "AllowOverride All" δικαιώματα)
Με την PHP 4.0, υπάρχουν αρκετά Apache directives που σας επιτρέπουν να αλλάξετε τις ρυθμίσεις της PHP μέσα από τα αρχεία ρυθμίσεων του Apache. Για ένα πλήρη κατάλογο των ποιών directives είναι τα PHP_INI_ALL, PHP_INI_PERDIR, or PHP_INI_SYSTEM, ρίξτε μια ματιά στον πίνακα που μπορεί να βρεθεί στην τεκμηρίωση του ini_set().
Σημείωση: Με την PHP 3.0, υπάρχουν Apache directive που ανταποκρίνονται σε κάθε επιλογή ρύθμισης μέσα στο php3.ini, εκτός τα ονόματα που έχουν πρόθεμα το "php3_".
Ορίζει την τιμή για το directive που έχει οριστεί. Μπορεί να χρησιμοποιηθεί μόνο με τα directive τύπου PHP_INI_ALL και PHP_INI_PERDIR. Για να καθαριστεί μια προηγούμενη τιμή που έχει οριστεί, χρησιμοποιήστε το none σαν την τιμή.
Σημείωση: Μην χρησιμοποιείτε το php_value για να ορίσετε boolen τιμές. Αντί αυτού, το php_flag (δείτε παρακάτω) πρέπει να χρησιμοποιείται..
Χρησιμοποιείται για να οριστεί ένα Boolean directive ρύθμισης. Μπορεί να χρησιμοποιηθεί μόνο με τα directive τύπου PHP_INI_ALL και PHP_INI_PERDIR.
Ορίζει την τιμή του αναφερόμενου directive. Αυτό ΔΕΝ μπορεί να χρησιμοποιηθεί σε αρχεία .htaccess. Κανένα directive που έχει type set με php_admin_value δεν μπορεί να παραβιαστεί από κάποιο .htaccess ή virtualhost directive. Για να καθαριστεί μια προηγούμενη τιμή που έχει οριστεί, χρησιμοποιήστε το none σαν την τιμή.
Χρησιμοποιείται για να ορίσει ένα Boolean directive ρύθμισης. Αυτό ΔΕΝ μπορεί να χρησιμοποιηθεί σε αρχεία .htaccess. Κανένα directive που έχει type set με php_admin_value δεν μπορεί να παραβιαστεί από κάποιο .htaccess ή virtualhost directive.
Σημείωση: Οι σταθερές της PHP δεν υπάρχουν έξω από την PHP. Για παράδειγμα, στο httpd.conf δεν μπορείτε να χρησιμοποιήσετε σταθερές της PHP όπως οι E_ALL ή E_NOTICE για να ορίσετε το error_reporting directive γιατί δεν θα έχουν σημασία και θα αποτιμούνται σε 0. Αντί αυτού, χρησιμοποιήστε το associated bitmask τιμές. Αυτές οι σταθερές μπορούν να χρησιμοποιηθούν στο php.ini.
Ανεξάρτητα από το interface στη PHP μπορείτε να αλλάξετε ορισμένες τιμές κατά την εκτέλεση των script σας μέσω της ini_set(). Ο ακόλουθος πίνακας προσφέρει μια περιγραφή σε ποιο επίπεδο μπορεί να οριστεί/αλλαχθεί ένα directive.
Πίνακας 4-1. Ορισμός PHP_INI_* σταθερών
Σταθερά | Τιμή | Νόημα |
---|---|---|
PHP_INI_USER | 1 | Μπορεί να οριστεί σε user scripts |
PHP_INI_PERDIR | 2 | Μπορεί να οριστεί στα php.ini, .htaccess ή httpd.conf |
PHP_INI_SYSTEM | 4 | Μπορεί να οριστεί στα php.ini ή httpd.conf |
PHP_INI_ALL | 7 | Μπορεί να οριστεί οπουδήποτε |
Μπορείτε να δείτε τις ρυθμίσεις των τιμών στην έξοδο της phpinfo(). Μπορείτε επίσης να προσπελάσετε τις τιμές του κάθε directives ρύθμισης χρησιμοποιώντας τις ini_get() ή get_cfg_var().