Δημοσιεύτηκε: 30 Μάιος 2011, 14:16
από Star_Light
Αποστόλης έγραψε:1. Το php[b]2.ini δεν θα παίξει εκτός κι αν το δηλώσεις στο php.ini[/b]

2. To .:/usr/share/php:/home/kostas δεν υφίσταται όταν θέλεις να κάνεις include (ή require) ένα αρχείο στην php
υπάρχει μόνο το ../ ή το $_SERVER['DOCUMENT_ROOT']."/path/"; όταν το αρχείο είναι μέσα στο directory.
Αυτό που έχεις ποστάρει εσύ είναι ειδική ρύθμιση στο php.ini
edit Συγκεκριμένα εκεί αναφέρεται το path το οποίο θα χρησιμοποιήσει η php για να εκτελέσει τις php εφαρμογές που έχουν γραφτεί σε pear.
http://pear.php.net/
Για να σου δώσω μια απλή εικόνα, η pear είναι κάτι σαν fork της php όπου γράφουν δικές τους εφαρμογές.
Για παράδειγμα επειδή στα windows δεν δουλεύει κάποια ειδική συνάρτηση (getmxrr) που βρίσκει αν ισχύει το δεύτερο μισό μιας mail διεύθυνσης, κάθισαν κι έγραψαν ολόκληρη εφαρμογή που να κάνει αυτό το πράγμα στα windows. Για να παίξει αυτή η εφαρμογή πρέπει να είναι εγκατεστημένη η pear και οι βιβλιοθήκες της (dll).

Εστω λοιπόν οτι το file σου βρίσκεται στον φάκελο test που βρίσκεται μέσα στον φάκελο kostas που βρίσκεται μέσα στον φάκελο scriptakia και το test.php βρίσκεται στον αρχικό φάκελο mysite
Αν λοιπόν θέλεις να κάνεις include ένα αρχείο ή θα το κάνεις ως include (../../../test.php)
ή ως $_SERVER['DOCUMENT_ROOT']."/test.php";
Αν το file σου βρίσκεται έξω από το web root θα πάιξει μόνο ο πρώτος τρόπος.
2.Συνήθως όμως δεν υπάρχει λόγος να βρίσκεται έξω από το document root εκτός κι αν συντρέχει πολύ σημαντικός λόγος.
Για παράδειγμα εκεί βάζουμε μόνο τα scripts που κρατάνε το username/pasword/db name για να κάνουμε connect με μία βάση δεδομένων.
Ο λόγος είναι προφανής, αν κάποιος μας χακάρει τη σελίδα να μην μπορεί να δείς τις ρυθμίσεις και μας κλέψει/τσακίσει όλα τα data που έχουμε στη βάση.
Αλλιώς είναι περιττό όλο αυτό.


3. Τα include - include_once - require - require_once δεν έχουν καμμία διαφορά όσον αφορά τα path και τον τρόπο που καλείς ένα αρχείο σε ένα script.
Είτε βάλεις include είτε βάλεις include_once, αν το αρχείο δεν είναι στο σωστό path είναι ένα και το αυτό.

4. Με τον καιρό θα εξοικειωθείς με τα μηνύματα και θα καταλαβαίνεις αμέσως τι παίζει.
Το μήνυμα Warning: include(test): failed to open stream: No such file or directory in /var/www/mathima_13.php
στο λέει πεντακάθαρα.
Δεν υπάρχει το αρχείο/φάκελος (No such file or directory) εκεί που μου λες να ψάξω


Καλησπερα. Και σε ευχαριστω πολυ για το αρκετα εκτενες και επεξηγηματικο υφος της απαντησης σου. Το ειχα μυριστει και εγω οτι μπορει να μην δουλεψει το backup αρχειο php2.ini που πηγα να φτιαξω. Το αλλο με τον καταλογο και την σχετικη του διαδρομη ή απολυτη? πως λεγεται δεν θυμαμαι δεν το εχω δοκιμασει ακομη , οταν το δοκιμασω θα σου πω. Απλα ηθελα να παιξω λιγο με τις ντιρεκτιβες και να εξοικιωθω περισσοτερο δεν υπαρχει καποιος σοβαρος λογος.

Τωρα σχετικα με το 2. επειδη με ενδιαφερει αρκετα και η ασφαλεια... εννοεις οτι ο /var/www στον οποιο μπαινουν τα σκριπτακια της php για να κανει καποιος τροποποιηση σε ενα αρχειο θελει δικαιωματα root. Βεβαια δεν εχεις δικαιωμα για τροποποιηση των αρχειων ... δικαιωμα για προσπελαση και να δεις τις ρυθμισεις εχεις... αρα πως δεν μπορεις να δεις τις ρυθμισεις αν καταφερεις και αρχισεις τις ερωτησεις στον υπολογιστη / σερβερ που εχει τους καταλογους με τα αρχεια??? :geek: :geek: :geek: