Πώς να αλλάξετε τις επιλογές ρυθμίσεων

Χρησιμοποιώντας την PHP σαν Apache module

Όταν χρησιμοποιείτε την 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_".

php_value όνομα τιμή

Ορίζει την τιμή για το directive που έχει οριστεί. Μπορεί να χρησιμοποιηθεί μόνο με τα directive τύπου PHP_INI_ALL και PHP_INI_PERDIR. Για να καθαριστεί μια προηγούμενη τιμή που έχει οριστεί, χρησιμοποιήστε το none σαν την τιμή.

php_value auto_prepend_file none

Σημείωση: Μην χρησιμοποιείτε το php_value για να ορίσετε boolen τιμές. Αντί αυτού, το php_flag (δείτε παρακάτω) πρέπει να χρησιμοποιείται..

php_flag όνομα on|off

Χρησιμοποιείται για να οριστεί ένα Boolean directive ρύθμισης. Μπορεί να χρησιμοποιηθεί μόνο με τα directive τύπου PHP_INI_ALL και PHP_INI_PERDIR.

php_admin_value όνομα τιμή

Ορίζει την τιμή του αναφερόμενου directive. Αυτό ΔΕΝ μπορεί να χρησιμοποιηθεί σε αρχεία .htaccess. Κανένα directive που έχει type set με php_admin_value δεν μπορεί να παραβιαστεί από κάποιο .htaccess ή virtualhost directive. Για να καθαριστεί μια προηγούμενη τιμή που έχει οριστεί, χρησιμοποιήστε το none σαν την τιμή.

php_admin_value open_basedir none

php_admin_flag όνομα on|off

Χρησιμοποιείται για να ορίσει ένα Boolean directive ρύθμισης. Αυτό ΔΕΝ μπορεί να χρησιμοποιηθεί σε αρχεία .htaccess. Κανένα directive που έχει type set με php_admin_value δεν μπορεί να παραβιαστεί από κάποιο .htaccess ή virtualhost directive.

Παράδειγμα 4-2. Παράδειγμα ρύθμισης Apache

<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
  php3_include_path ".:/usr/local/lib/php"
  php3_safe_mode on
</IfModule>

Σημείωση: Οι σταθερές της PHP δεν υπάρχουν έξω από την PHP. Για παράδειγμα, στο httpd.conf δεν μπορείτε να χρησιμοποιήσετε σταθερές της PHP όπως οι E_ALL ή E_NOTICE για να ορίσετε το error_reporting directive γιατί δεν θα έχουν σημασία και θα αποτιμούνται σε 0. Αντί αυτού, χρησιμοποιήστε το associated bitmask τιμές. Αυτές οι σταθερές μπορούν να χρησιμοποιηθούν στο php.ini.

Άλλα interface στη PHP

Ανεξάρτητα από το interface στη PHP μπορείτε να αλλάξετε ορισμένες τιμές κατά την εκτέλεση των script σας μέσω της ini_set(). Ο ακόλουθος πίνακας προσφέρει μια περιγραφή σε ποιο επίπεδο μπορεί να οριστεί/αλλαχθεί ένα directive.

Πίνακας 4-1. Ορισμός PHP_INI_* σταθερών

ΣταθεράΤιμήΝόημα
PHP_INI_USER1Μπορεί να οριστεί σε user scripts
PHP_INI_PERDIR2 Μπορεί να οριστεί στα php.ini, .htaccess ή httpd.conf
PHP_INI_SYSTEM4 Μπορεί να οριστεί στα php.ini ή httpd.conf
PHP_INI_ALL7Μπορεί να οριστεί οπουδήποτε

Μπορείτε να δείτε τις ρυθμίσεις των τιμών στην έξοδο της phpinfo(). Μπορείτε επίσης να προσπελάσετε τις τιμές του κάθε directives ρύθμισης χρησιμοποιώντας τις ini_get() ή get_cfg_var().