Αυτός δεν είναι πλήρης κατάλογος των PHP directives. Τα Directives μπορούν να βρεθούν στις κατάλληλες τοποθεσίες. Για παράδειγμα, οι πληροφορίες για τα session directives βρίσκονται στο κεφάλαιο για τα sessions.
Πίνακας 4-3. Επιλογές Ρυθμίσεων Γλώσσας και Άλλων
Όνομα | Προεπιλογή | Μεταβλητό |
---|---|---|
short_open_tag | On | PHP_INI_SYSTEM|PHP_INI_PERDIR |
asp_tags | Off | PHP_INI_SYSTEM|PHP_INI_PERDIR |
precision | "14" | PHP_INI_ALL |
y2k_compliance | Off | PHP_INI_ALL |
allow_call_time_pass_reference | On | PHP_INI_SYSTEM|PHP_INI_PERDIR |
expose_php | On | PHP_INI_SYSTEM |
Ακολουθεί μια μικρή επεξήγηση των directive ρυθμίσεων.
Ορίζει αν η σύντομη μορφή (<? ?>) του open tag της PHP θα επιτρέπεται. Αν θέλετε να χρησιμοποιείτε την PHP σε συνδιασμό με XML, μπορείτε να απενεργοποιήσετε αυτή την επιλογή για να χρησιμοποιείτε το <?xml ?> inline. Αλλιώς, μπορείτε να το εκτυπώνετε με την PHP, για παράδειγμα: <?php echo '<?xml version="1.0"'; ?>. Επίσης αν είναι ανενεργοποιημένο, θα πρέπει να χρησιμοποιείτε την μεγάλη μορφή του PHP open tag (<?php ?>).
Σημείωση: Αυτό το directive επίσης επιρεάζει το "συντομογραφικό" <?=, το οποίο είναι ίδιο με το <? echo. Η χρήση αυτών των συντομεύσεων προϋποθέτει το short_open_tag να είναι ενεργοποιημένο.
Επιτρέπει τη χρήση των ASP-like <% %> tags επιπρόσθετα στα συνηθισμένα <?php ?> tags. Αυτό συμπεριλμβάνει την σύντομη variable-value εκτύπωση <%= $value %>. Για περισσότερες πληροφορίες, δείτε το Βγαίνοντας από την HTML.
Σημείωση: Η υποστήριξη για tags του στυλ της ASP προστέθηκε στην έκδοση 3.0.4.
Ο αριθμός των σημαντικών ψηφίων (significant digits) που θα παρουσιάζεται στους αριθμούς κινητής υποδιαστολής.
Επιβάλλει year 2000 compliance (συμβατότητα) (θα έχει προβλήματα με μη συμβατούς browsers)
Ελέγχει κατά πόσον θα υπάρχει η ικανότητα να επιβάλλεται το πέρασμα με αναφορά (by reference) των ορισμάτων κατά τη κλήση μιας συνάρτησης. Αυτή η μέθοδος έχει ξεπεραστεί και πιθανόν να μην υποστηρίζεται σε μελλοντικές εκδόσεις της PHP/Zend. Η μέθοδος που υποστηρίζεται είναι να ορίζονται ποια ορίσματα θα περνιούνται by reference να βρίσκεται στον ορισμό της συνάρτησης. Ενθαρρύνεστε να δοκιμάσετε να απενεργοποιήσετε αυτή την επιλογή ώστε να σιγουρευτείτε πως τα script σας δουλεύουν για να δείτε ότι θα δουλεύουν και με μελλοντικές εκδόσεις της γλώσσας (θα λαμβάνετε μια προειδοποίηση κάθε φορά που το χρησιμοποιείτε και το όρισμα θα περνιέται by value αντί by reference).
Δείτε επίσης το Επεξήγηση Αναφορών.
Αποφασίζει αν η PHP θα φανερώνει το ότι είναι εγκατεστημένη στον server (π.χ. προσθέτοντας την υπογραφή της στον Web server header). Δεν αποτελεί ρίσκο ασφάλειας με οποιοδήποτε τρόπο, αλλά καθιστά ικανή την αναγνώριση του αν χρησιμοποιείτε PHP στον server σας ή όχι.
Ακολουθεί μια μικρή επεξήγηση των directive ρυθμίσεων.
Ορίζει το μέγιστο μέγεθος μνήμης σε bytes το οποίο επιτρέπεται να χρησιμοποιήσει ένα script. Αυτό βοηθά να αποφεύγεται το ενδεχόμενο φτωχά γραμμένα scripts να τρώνε όλη τη διαθέσιμη μνήμη σε ένα server. Για να χρησιμοποιήσετε αυτό το directive πρέπει να το ενεργοποιήσετε στη στιγμή του compile. Έτσι, η configure γραμμή θα περιείχε: --enable-memory-limit. Σημειώστε πως πρέπει να το ορίσετε σε -1 αν δεν θέλετε οποιοδήποτε όριο για τη μνήμη σας.
Δείτε επίσης: max_execution_time.
Πίνακας 4-5. Επιλογές Ρυθμίσεων Χειρισμού Δεδομένων
Όνομα | Προεπιλογή | Μεταβλητό |
---|---|---|
track-vars | "On" | PHP_INI_?? |
arg_separator.output | "&" | PHP_INI_ALL |
arg_separator.input | "&" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
variables_order | "EGPCS" | PHP_INI_ALL |
register_globals | "Off" | PHP_INI_PERDIR|PHP_INI_SYSTEM |
register_argc_argv | "On" | PHP_INI_PERDIR|PHP_INI_SYSTEM |
post_max_size | "8M" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
gpc_order | "GPC" | PHP_INI_ALL |
auto_prepend_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
auto_append_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
default_mimetype | "text/html" | PHP_INI_ALL |
default_charset | "iso-8859-1" | PHP_INI_ALL |
always_populate_raw_post_data | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
allow_webdav_methods | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
Ακολουθεί μια μικρή επεξήγηση των directive ρυθμίσεων.
Όταν είναι ενεργοποιημένη, οι Environment, GET, POST, Cookie, και Server μεταβλητές μπορούν να βρεθούν στα global associative arrays $_ENV, $_GET, $_POST, $_COOKIE, και $_SERVER.
Σημειώστε πως από την PHP 4.0.3, το track_vars είναι πάντα ενεργοποιημένο.
Ο διαχωριστής (separator) που χρησιμοποιείται στα URL που δημιουργούνται από τη PHP για να ξεχωρίζουν μεταξύ τους τα arguments.
Λίστα από διαχωριστές(ή) που χρησιμοποιεί η PHP για να μετφράσει τα URL εισόδου σε μεταβλητές.
Σημείωση: Κάθε χαρακτήρας αυτού του directive θεωρείται ένας διαχωριστής (separator)!
Ορίζει τη σειρά της EGPCS (Environment, GET, POST, Cookie, Server) ανάλυσης μεταβλητών. Η προεπιλεγμένη ρύθμιση αυτού του directive είναι "EGPCS". Ορίζοντας το σε "GP", για παράδειγμα, θα κάνει την PHP να αγνοήσει τελείως τις μεταβλητές περιβάλλοντος (E), τα cookies and και τις μεταβλητές του server, και να κάνει overwrite όσες GET method μεταβλητές με τις POST-method μεταβλητές που έχουν το ίδιο όνομα.
Δείτε επίσης το register_globals.
Ορίζει αν θα καταχωρηθούν οι EGPCS (Environment, GET, POST, Cookie, Server) μεταβλητές σαν global μεταβλητές. Για παράδειγμα: Αν το register_globals = on, το url http://www.example.com/test.php?id=3 θα παράξει το $id. Ή, το $DOCUMENT_ROOT από το $_SERVER['DOCUMENT_ROOT']. Μπορεί να θέλετε να το κάνετε off αν δεν θέλετε να γεμίσετε το global scope των script σας με δεδομένα των χρηστών. Από την PHP 4.2.0, αυτό το directive έχει προεπιλογή το off. Προτιμάται αντί αυτού, να πηγαίνετε μέσω των Προκαθορισμένων Μεταβλητών της PHP, όπως τα superglobals: $_ENV, $_GET, $_POST, $_COOKIE, και $_SERVER. Παρακαλούμε διαβάστε το κεφάλαιο περί ασφάλειας και το Χρησιμοποιώντας το register_globals για σχετικές πληροφορίες.
Παρακαλούμε σημειώστε πως το register_globals δεν μπορεί να οριστεί στο runtime (ini_set()). Ωστόσο, μπορείτε να χρησιμοποιήσετε το .htaccess αν ο web server σας το υποστηρίζει όπως περιγράφεται παραπάνω. Ένα παράδειγμα καταχώρησης στο .htaccess: php_flag register_globals on.
Σημείωση: Το register_globals επιρεάζεται από το variables_order directive.
Ορίζει αν η PHP θα δηλώσει τις argv & argc μεταβλητές (που θα περιέχουν τις GET πληροφορίες).
Δείτε επίσης το command line. Επίσης, αυτό το directive έγινε διαθέσιμο στην PHP 4.0.0 και πριν από αυτή την έκδοση ήταν πάντα ενεργοποιημένο.
Ορίζει το μέγιστο μέγεθος των post δεδομένων που επιτρέπεται. Αυτή η ρύθμιση επίσης επιρεάζει το upload αρχείων. Για να επιτρέπεται upload μεγάλων αρχείων, αυτή η τιμή πρέπει να είναι μεγαλύτερη από το upload_max_filesize.
Αν το όριο μνήμης είναι ενεργοποιημένο από το configure script, το memory_limit επίσης επιρεάζει το upload αρχείων. Γενικώς, το memory_limit πρέπει να είναι μεγαλύτερο από το post_max_size.
Ορίζει τη σειρά της ανάλυσης των GET/POST/COOKIE μεταβλητών. Η προεπιλεγμένη ρύθμιση αυτού του directive είναι "GPC". Ορίζοντας αυτό σε "GP", για παράδειγμα, θα κάνει την PHP να αγνοήσει εντελώς τα cookies και να κάνει overwrite όσες GET method μεταβλητές με τις POST-method μεταβλητές που έχουν το ίδιο όνομα.
Σημείωση: Αυτή η επιλογή δεν είναι διαθέσιμη στην PHP 4. Χρησιμοποιήστε το variables_order αντί αυτού.
Ορίζει το όνομα ενός αρχείου που θα μεταφράζεται αυτόματα πριν το κυρίως αρχείο. Το αρχείο γίνεται include σαν να είχε καλεστεί με τη συνάρτηση include(), έτσι το include_path χρησιμοποιείται.
Η ειδική τιμή none απενεργοποιεί το αυτόματο prepend.
Ορίζει το όνομα ενός αρχείου που θα μεταφράζεται αυτόματα μετά το κυρίως αρχείο. Το αρχείο γίνεται include σαν να είχε καλεστεί με τη συνάρτηση include(), έτσι το include_path χρησιμοποιείται.
Η ειδική τιμή none απενεργοποιεί το αυτόματο prepend.
Σημείωση: Αν το script τερματιστεί με την exit(), το auto-append δεν θα συμβεί.
Από την 4.0b4, η PHP πάντα βγάζει ένα character encoding στο Content-type: header. Για να απενεργοποιήσετε την αποστολή του charset, απλά ορίστε το να είναι κενό.
Πάντα να γνωστοποιείται η μεταβλητή $HTTP_RAW_POST_DATA.
Επιτρέπει το χειρισμό των WebDAV http αιτήσεων μέσα από PHP scripts (π.χ. PROPFIND, PROPPATCH, MOVE, COPY, κλπ..) Αν θέλετε να πάρετε τα post data αυτών των requests, πρέπει να ορίσετε το always_populate_raw_post_data επίσης.
Δείτε επίσης τα: magic_quotes_gpc, magic-quotes-runtime, και magic_quotes_sybase.
Πίνακας 4-6. Επιλογές Ρυθμίσεων για Paths και Καταλόγους
Όνομα | Προεπιλογή | Μεταβλητό |
---|---|---|
include_path | PHP_INCLUDE_PATH | PHP_INI_ALL |
doc_root | PHP_INCLUDE_PATH | PHP_INI_SYSTEM |
user_dir | NULL | PHP_INI_SYSTEM |
extension_dir | PHP_EXTENSION_DIR | PHP_INI_SYSTEM |
cgi.force_redirect | "1" | PHP_INI_SYSTEM |
cgi.redirect_status_env | "" | PHP_INI_SYSTEM |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM |
Ακολουθεί μια μικρή επεξήγηση των directive ρυθμίσεων.
Ορίζει μια λίστα από κατάλογους όπου οι require(), include() και fopen_with_path() συναρτήσεις ψάχνουν για αρχεία. Το σχήμα είναι σαν την PATH μεταβλητή περιβάλλοντος του συστήματος χωρισμένες με ένα σύμβολο άνω και κάτω τελείας στο UNIX ή ελληνικού ερωτηματικού στα Windows.
Χρησιμοποιώντας μια . στο include path σας επιτρέπει relative includes αφού υπονοεί τον τρέχων κατάλογο.
Το "root directory" της PHP στον server. Χρησιμοποιείται μόνο αν δεν είναι κενό. Αν η PHP γίνει configured με το safe mode, δεν εξυπηρετούνται αρχεία έξω από αυτό τον κατάλογο. Αν η PHP δεν έχει γίνει compiled με FORCE_REDIRECT, ΠΡΕΠΕΙ να ορίσετε το doc_root αν τρέχετε την PHP σαν CGI κάτω από οποιονδήποτε web server (εκτός τον IIS) Η εναλλακτική επιλογή είναι να χρησιμοποιήσετε την cgi.force_redirect ρύθμιση παρακάτω.
Το βασικό όνομα του καταλόγου που χρησιμοποιείται στο home directory κάποιου χρήστη για τα PHP αρχεία, για παράδειγμα public_html.
Ορίζει σε ποιό κατάλογο η PHP θα ψάχνει για δυναμικά φορτώσιμες επεκτάσεις (dynamically loadable extensions). Δείτε επίσης τα: enable_dl, και dl().
Ποιές δυναμικά φορτώσιμες επεκτάσεις να φορτώθούν όταν ξεκινά η PHP.
Το cgi.force_redirect είναι απαραίτητο για να προσφέρει ασφάλεια όταν η PHP τρέχει σαν CGI κάτω από τους περισσότερους web servers. Αν δεν οριστεί, η PHP το ενεργοποιεί από μόνη της. Μπορείτε να το απενεργοποιήσετε ΜΕ ΔΙΚΟ ΣΑΣ ΡΙΣΚΟ.
Σημείωση: Χρήστες Windows: ΜΠΟΡΕΙΤΕ με ασφάλεια να το απενεργοποιήσετε αυτό για τον IIS, μάλιστα, ΠΡΕΠΕΙ να το κάνετε. Για να κάνετε τον OmniHTTPD ή τον Xitami να δουλέψουν ΠΡΕΠΕΙ να το απενεργοποιήσετε.
Αν το cgi.force_redirect είναι ενεργοποιημένο, και δεν τρέχετε κάτω από Apache ή Netscape (iPlanet) web servers, ΜΠΟΡΕΙ να χρειαστεί να ορίσετε ένα όνομα μεταβλητής περιβάλλοντος που η PHP θα ψάχνει για να ξέρει πως είναι εντάξει να συνεχίσει την εκτέλεση
Σημείωση: Ορίζοντας αυτή τη μεταβλητή ΜΠΟΡΕΙ να δημιουργήσει θέματα ασφάλειας, ΝΑ ΞΕΡΕΤΕ ΤΙ ΚΑΝΕΤΕ ΠΡΩΤΑ.
Το FastCGI κάτω από τον IIS (σε ΟΣ βασισμένα σε WINNT) υποστηρίζει την ικανότητα να παριστάνει tokens ασφάλειας του καλούντος client. Αυτό επιτρέπει στον IIS να ορίσει το περιεχόμενο ασφάλειας κάτω από την οποία τρέχει το request. To mod_fastcgi στον Apache δεν υποστηρίζει προς το παρών αυτό το χαρακτηριστικό (03/17/2002) Ορίστε το σε 1 αν τρέχετε κάτω από IIS. Η προεπιλογή είναι μηδέν.
Πίνακας 4-7. Επιλογές Ρυθμίσεων για Upload Αρχείων
Όνομα | Προεπιλογή | Μεταβλητό |
---|---|---|
file_uploads | "1" | PHP_INI_SYSTEM |
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
upload_max_filesize | "2M" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
Ακολουθεί μια μικρή επεξήγηση των directive ρυθμίσεων.
Ορίζει αν θα επιτραπούν HTTP upload αρχείων. Δείτε επίσης τα upload_max_filesize, upload_tmp_dir, και post_max_size directives.
Ο προσωρινός κατάλογος που χρησιμοποιείται για αποθήκευση αρχείων όταν γίνεται ένα upload αρχείου. Πρέπει να είναι writable (εγγράψιμος) από οποιοδήποτε χρήστη τρέχει σαν αυτόν η PHP. Αν δεν οριστεί, η PHP θα χρησιμοποιήσει την προεπιλογή του συστήματος.
Το μέγιστο μέγεθος αρχείο ενός αρχείου που θα γίνει upload.
Πίνακας 4-8. Επιλογές Ρυθμίσεων Γενικά για SQL
Όνομα | Προεπιλογή | Μεταβλητό |
---|---|---|
sql.safe_mode | "0" | PHP_INI_SYSTEM |
Ακολουθεί μια μικρή επεξήγηση των directive ρυθμίσεων.