327 116 75MB
Greek Pages 640 [592] Year 2014
ΜΑΘΕΤΕ
PHP,MySQL KaIApache Ένα Βlβλίο... Όλες οι Απαντήσεις
MELONI C. JULIE
,
να
ΜΑΘΕΤΕ
MySQL KaIApache ΡΗΡ,
Ένα Βιβλίο ...Όλες οι Απαντήσεις Μάθετε την
πώς να χρησιμοποιείτε την ΡΗΡ , και το Apache για να δη μιουρ
MySO L
γείτε δυναμικά Web sites και εφαρμογές με διαδραστικά χαρακτη ριστικά χρησιμοποιώ ντας τις τρεις κορυφαίες τεχνολογίες " ανοι χroύ κώδικα" που υπάρχουν σήμερα για την ανάmυξη εφαρμογών Web. Ακολουθώντας
μία απλή , βήμα προς
βήμ α
προσέγγιση, κάθε μάθημα του βιβλίου βασίζε ται και επαυξάνε ι τις γνώσεις που αποκτήσα τε
στα προηγο ύ μενα , πράγμ α το οποίο σας δίνει τη ν δυνατότη τα να μάθετε τα βασικά των βάσεων δεδομένων MySOL, του Apache serνer και τη ς συγγραφής
scripts
με την ΡΗΡ , στον
ελάχιστο δυνατό χρόνο .
Ανεξάρτητα από το εάν χρη σιμοποιείτε το λειτο υργικό σύ στη μα Linux ή Windows στον υπολογιστή σας , το Συνοδευτικό CD το υ βιβλίο υ περ ιλαμβάνει ένα Πλήρες " κιτ εκκί νηση ς " το οποίο σας δ ίνει τη δυνατότητα να εγκαταστήσετε όλο το λογισμικό που θ α χρειαστείτε για να δη μιου ργήσετε ένα στα θερό περιβάλλον για σκοπο ύς εκμάθηση ς, ανάmυξης και ελέΥΧου εφαρμογών.
Συνοπτικός Πίνακας Περιεχομένων Εισαγωγή
Μέρος Ι: Εγκατάσταση και Διαμόρφωση των ΚΕΦΑΛΑΙΟ
1
MySQL, Apache
και ΡΗΡ
1 Εγ κατάσταση και Διαμόρφωση της MySQL
2
Εγκατάσταση και Διαμόρφωση του
3
Εγ κατάσταση και Διαμόρφωση της ΡΗΡ
Apache
7 27 51
Μέρος 11: Βασικά Στοιχεία της Γλώσσας ΚΕΦΑΛΑΙΟ
4
Τα Δομικά Στοιχεία της Ρ ΗΡ
71
5
Οι Εντολέ ς Ελέγχου της Ροής Εκτέλε σης
93
6
Συναρτήσε ις
115
7
Διατάξεις και Αντικείμενα
135
Μέρος 111: Συγγραφή Κώδικα ΚΕΦΑΛΑΙΟ
8
Διαχείριση Αλφαριθμητικών και Τιμών Ημερομηνίας/Ωρας
9
Χρήση και Διαχείριση Φορμών
181
10 Διαχείριση των Συνόδων Επικοινωνίας των Χρηστών
203
11 Χρήση και Διαχείριση Αρχείων και Καταλόγων
213
12
Δουλεύοντας με το Περιβάλλον του
Server
13 Δουλεύοντας με Ε ικόνες Μέρος
153
237 245
IV: Ενοποίηση των ΡΗΡ και MySQL
ΚΕΦΑΛΑΙΟ
14 Σχεδίαση Βάσεων Δεδο μένων
261
15 Βασικές Εντολές της SQL
273
16 Επικο ινωνία με Βάσεις Δεδομένων MySQL μέσω της ΡΗΡ
321
νί Συνοπτικός Πίνοκος Περιεχομένων
Μέ ρος ν: Πορουσία ση Απλών Έργων Κ ΕΦΜΑΙΟ
17
Διαχείριση μιας Απλής Ταχυδρομικής Λίστας
335
18
Δη μιουργία ενός Ο πlί Π θ Β ιβλίου Διευ θύ νσεων
347
19
Δη μιου ργ ία Ενός Απλο ύ Φόρουμ Συζητήσεων
371
20
Δημιο υ ργία ενό ς Εικ ονικο ύ Καταστή ματος
387
21
Δη μιου ργ ία ενός Μηχανισμού Καλαθιού Αγορ ών
399
22
Δημιουργία Ενό ς Απλού Ημ ερ ολογίο υ
.413
23
Ελεγχος της Π ρόσβαση ς στις Εφα ρ μογές σας
.427
24
Π αρακολούθηση και Καταγραφή της Δραστη ριότητας του Se rνer
25
.449
Π ροσαρμογή των Εφαρμογών για Χρήση σε Συγκεκριμένες Χώρες
467
Μέρος νι : Θέματα Εποmείας κα ι Βελτιστοποίησης ΚΕΦΜΑΙΟ
26
Βελτιστοπ οίη ση της Απόδοσης το υ
27
Δη μιου ργία ενός Ασφαλούς
28
Βελτιστοπ οίη ση τη ς
29
Ανα βαθμίσεις του Λογισμικού
Web
Apache
Se rνer
.481 499 515
MySQL
533
Μέρος νll : Κοιτάζοντας προς το Μέλλον Κ ΕΦΜΑΙΟ
30
Χαρακτη ριστικά και Π ρος τα Π ίσω Συμβατότητα τη ς Ρ Η Ρ
31
5.0
541
Χαρακτη ριστικά και Προς τα Π ίσω Συμβατότητα της
MySQL 4.1
547
Μέρος νlll : Π α ρ ά ρτη μ α Α
Εγκατάσταση των το Συνοδε υτικό
Ευ ρετήριο
MySQL, Apache CD-ROM
και ΡΗΡ από
557 569
Πίνακας Περιεχομένων Εισαγωγή
1
Σε Πο ιους Απευθύνετα ι Αυ τό το Β ιβλίο ;
1
Η Οργάνωση του Β ι βλ ίου
2
Συμβάσεις πο υ Χρησιμοπο ιούνται σ' Αυ τ ό το Βιβλίο
Μέρος Ι: Εγκατάσταση και Δι α μ όρφ ω ση των ΚΕΦΑΛΑΙΟ
1:
MySQL, Apache και ΡΗΡ
Εγκατάσταση και Διαμόρφωση της
Η Τ ρέχου σα και ο ι Μελλοντικές Εκδόσει ς τ ης Π ώς θα Αποκτήσε τε τη ν
.3
MySQL
MySQL
7 7
MySQ L
8
Εγκατάσταση της
MySQ L σε
Εγκατάσταση της
MySQ L στα Window s
Συστήματα Lίπυ Χ/υπ ίχ
8 9
Αντιμετώπ ιση Προβλ ημ άτων κατά την Εγ κατάσταση
16
Βασικές Οδηγίες Ασφάλει ας
16
Εκκίνηση της
MySQL
Ασφάλε ι α της Σύνδεσης στην
17 MySQL
Παρουσίαση του Σ υ στ ή μ α το ς Δι καιωμ άτω ν τ ης
18 MySQL
Η Δ ι αδ ι κασία Π ιστοπο ίησης
18
:
Δ ι αχ ε ίρι σ η των Δικαιωμάτων των Χρ ηστών
19
20
Προσθήκη Χρ η στ ών
21
Ανάκληση Δικαιωμάτων
23
Ανασκόπ ηση
23
Ε&Α
25
Πρακτική Εξάσκηση
25
Ερωτήσε ις
25
Απαντ ήσε ις
25
Δραστ ηριότητες
26
ΚΕΦΑΛΑίΟ
2: Εγκατάσταση και Διαμόρφωση ταυ Apache
27
Η Τρέχουσα και ΟΙ Μ ελλοντικές Εκδόσει ς του Apache
27
Επιλογή της Μ εθόδο υ Εγκατάστασης
28
Μεταγλώττιση του Πηγαίου Κώδικα
28
Εγκ ατάσταση του
28
Εγκατάσταση του
Apache από Δυαδ ι κά Αρχε ία
Apache σε Linux/Unix
29
Μεταφορά του Πηγαίου Κώδικα του Apache
29
Αποσυμπίεση του Πηγαίου Κώδ ικα
29
νίίί Π ινακας Π ερ ιεχομένων
Προετοιμασία γ ι α τη ν Δημιουργία των Εκτελέσιμων Αρχε ίων
το υ
Apache
.30
Μεταγλώττιση και Εγκατάσταση του Apache Εγκατάσταση του
Apache
στα
Windows
Η Δο μ ή του Αρχείου Δια μόρφ ωση ς του
32 Apache
Ντι ρε κτ ίβες Περιέκτες
31 .35 35
(Containers)
37
Ε κτέλεση υπό Όρους
38
ServerRoot
39
Αρχεία Δι αμόρφωσ ης ανά Κατάλογο Τα Α ρχε ία Καταγραφή ς του
Apache
.40 .41
Το Αρχείο
access_log
.41
Το Αρχείο
error_log
..41
Επιπλέον Αρχε ία Σχετι ζόμ ενες με το
.42
Apache Εντολές
Το Δυαδ ικό Αρχε ίο για τον Το
.42
Apache Server
Script Ελέγχου του Apache
Ε κ κ ίνη ση του
.42 .43
Apache για Πρώτη Φορά
.44
Έλεγχος του Αρχε ίου Διαμόρφωσης
.44
Εκκίνηση του
.45
Apache
Αντιμετώπιση Π ροβλημάτων Υπάρχει Ήδη ένας
46
Web Server στο Σύστημα
Δεν Υπάρχουν τα Κατάλληλα Δι καιώμ ατα για τη ν Σύνδεση στην Θύρ α Απαγορε ύε ται η Πρόσβαση
.46 .46 46
Λανθασμ ένες Ρυθμίσεις Ομάδ ας
.47
Ανασ κ όπ η ση
.47
Ε &Α
.48
πρακτική Εξάσκησ η
.48
Ερωτήσει ς
.48
Απαντή σει ς
.49
Δρ αστηριότητες
ΚΕΦΑΛΑΙΟ
3:
..49
Εγκατάσταση κα ι Δια μόρφωση της ΡΗ Ρ
51
Η Τρέχουσα και ΟΙ Μελλοντι κές Εκδόσεις της ΡΗΡ
51
Εγκατάcrrαση της ΡΗΡ με το
52
Apache σε Συστήμ ατα Lίου χ/υο;χ
Επιπλέον Επιλογές Δ ια μ όρφω ση ς
53
Ενοποίη ση της ΡΗΡ μ ε το
54
Apache σε Συστήματα Linuχ/Uni x
Εγκατάσταση των Αρχείων της ΡΗΡ Συν εργα σία τη ς ΡΗΡ με το Το Αρχείο
php. ini
crra W indow s
Apache στα W indow s
55 55 56
Μάθετε ΡΗΡ, MySQL και Apache Όλα σε Ένα ίχ
ΈλεΥχος τ η ς Εγκα τάστασης
57
Βοήθε ια για την Εγκατάσταση
58
ΡΗ Ρ
Η Αρχή και το Τ έλος μι ας Ενότητας Εντολών ΡΗΡ
59 60
Η Εντολή
62
Scripts - τ α
Βασικά
ec ho
και η Συνάρτηση ΡΓίπω
Συνδυασμένη Χρήση της ΗΤΜΙ και τη ς ΡΗΡ Π ρ οσθή κ η Σχολίων σε Κώδ ικα της ΡΗΡ
63 64
Ανασκόπ ησ η
65
Ε&Α
66
Πρακτική Ε ξάσκηση Ερωτ ήσεις
66 66
Απαντήσε ι ς
67
Δραστηριότητες
67
Μέρος 11: Βασικά Στοιχεία της Γλώσσας ΚΕΦΑΜΙΟ
4:
Τα Δομικά Στοιχεία της ΡΗΡ
Μ εταβλητές
71
Γενικό; και Υπερ-Γενι κές Μεταβλητές
73 74
Τύποι Δεδομένων Αλλαγή του Τύπου Δεδομένων με την
71
settype O
Αλλαγή του Τύπου Δεδομ ένων μ ιας Μεταβλητής με Ρ ητή Δ ήλωσ η Τύπου Γιατί Πρέπει να Ελέγχουμε τον Τύπο Δε δο μένων; Τ ελεστές και Εκφράσε ις
76 ?? .79
79
Ο Τελεστής Εκχώρησης Τιμή ς
80
Αριθμ ητικοίΤελ εστές
81
Ο Τελεστή ς Συν ένωση;
81
Σύνθετοι Τελεστές Εκχώρησ ης Τι μ ή ς Αυτόματη Αύξηση /Μείωση της Τιμή ς μ ιας Ακέρ α ι ας Μεταβλ ητής
82 83
Τελεστές Σύγκριση ;
84
Δη μ ι ουργία Πολύπλοκων Εκφράσεων ΕλέΥχου με Λ ογι κού; Τελεστό;
8S 86
Προτεραιότητα των τελ εστώ ν Σταθερέ ς Π ροκαθορισμ ένε ς Σταθερ ές
87
Ανα σκόπ ησ η
89 89
Ε &Α
90
Πρακτική Ε ξάσκηση Ερωτήσε ι ς
90 90
Αηαντ ή οε κ;
91
Δ ραστ ηρ ιότ ητες
92
Χ
Π ίνακας Πε ριεχομένων
ΚΕΦΑΛΑΙΟ 5: Οι Εντολές Ελέvxου της Ροής Εκτέλεσης Έλεγχος της Ροής Ε κτέλ εσης Η Εντολή
93 93
if
94
Χρ ήση της Π ρότα αης
else ατην Εντολή if. Χρ ήση της Πρότασης elseif στην Εντολή if Η Εντολή switch
95 96 97
Ο Τελεστής Ι
99
Βρόχοι
100
Η Εντολή
while
100
Η Εντολή
do while
101
Η Εντολή
for
102
Έξοδος από έναν Βρόχο με την Εντολή
break
Π αράκαμ ψη μιας Επανάληψης με την Εντολ ή
104 co ntinue
' Ε νθεσ η Βρόχων
Τμ ήμ ατα Κώδικα και Έξοδος στην Εφαρμογή
Browser
106 107
Ανασκόπησ η
109 11 Ο
Ε &Α
112
Π ρακτι κή Εξάσκησ η
112
Ερωτ ήσε ις
11 2
Απαντήσ εις
113
Δραστ η ρ ιό τ η τε ς
113
ΚΕΦΑΛΑΙΟ
6:
Συναρτή σεις
Κλήση Συνα ρτήσεων
11 5 115 116
Ο ρ ισμ ός μι α ς Συνάρτ ησης
11 7
Επ ιστ ροφή Τιμών από τις Καθοριζόμ ενες από τον Χρήστ η Συ ναρτήσει ς
120
Τι Είνα ι μ ία Σ υνάρτη σ η :
Το Εύρος ( Πεδίο Δράσης) των Μεταβλητών Π ροσπέλαση Μεταβλητών με την Εντολή
121 global.
122
Αποθήκευση Πληροφοριών Κατάστασης Μ εταξύ Διαδοχι κών Κλ ή σεων μι ας Συνάρτηση ς μ ε την Εντολή
sta tic
Π ερι σ σό τ ερα γι α τα Ο ρίσματα
124 12 6
Ορισ μός Π ροεπι λεγμ ένων Τιμών για τα Ορίσματα
127
Π έρασμα Αναφορών Μεταβλητών σε Συνα ρτ ή σεις Έλεγχος της Ύπαρξης μιας Συνάρτηση ;
128 130
Ανασ κόπ ηση
132
Ε &Α
133 133
Πρα κτι κή Εξάσκησ η Ερω τήσε ι ς
133
Απαντ ή σε ις
134 134
Δραστ ηρ ιότ ητα
Μάθετε Ρ ΗΡ , MySQL και Apache Όλα αε Ένα χί
ΚΕΦΑΛΑ ΙΟ
7:
Δι ατάξεις κα ι Αντικείμ ενα
135
Τ ι Ε ίναι μ ία Δ ιάταξ η ;
135
Δ η μ ιουργία Διατάξεων
135
Δη μ ι ουργία Σχεσ ιακών Δια τάξεων
137
Δη μ ιου ργία Π ολυδιάστατων Διατάξεων
137
Σχετιζόμενες μ ε τι ς Δ ιατάξεις Συναρ τήσεις
139
Δ η μ ιουργ ία ενός Αντι κε ιμένο υ
140
Ιδιότ η τε ς των Αντ ικε ι μένων
142
Οι Μέθοδο ι τ ων Αντι κε ιμένων
143
Σ υναρ τή σε ις
145
Construeto r
Κληρονομ ικότητα των Αντι κειμένων
145
Ανασ κόπ η σ η
147
Ε &Α
148
Π ρα κ τι κ ή Ε ξάσκηση
148
Ε ρωτ ήσ ει ς
148
Απαντ ήσε ις
148
Δραστ ηρ ιότ η τες
149
Μ έρος
111: Συγγραφή
ΚΕΦΑΛΑΙΟ
8:
Κώδικα
Διαχείριση Αλφαριθμητικών και Τιμών Ημερομηνίας/Ωρας
Μορφοποίηση Αλφαριθμ η τικών μ ε τη ν ΡΗ Ρ
153 154
Η Συνά ρτηση printί O
154
Καθορ ισ μός Π λάτους Π εδίο υ
157
Εναλλαγή Ορ ι σμάτω ν
161
Αποθή κευση ενός Μορφοπ οιη μένο υ Αλφα ρ ι θμ ητι κού
162
Εξερεύν ηση των Αλφαριθμ ητικών στην Ρ Η Ρ
162
Μία Σ η μείωση για τους Δείκτες που Καθ ορ ίζο υ ν την Θέση των Χαρακτ ήρων μ έσα σ' ένα Αλφαρ ιθ μ η τι κό
162
Εύρεσ η το υ Μεγέθους ενός Αλφαρ ι θ μ η τικού με τ η ν Συνάρτηση
st rleno
163
Ε ύρεση ενός Υπο-Αλφαρι θ μ ητικού μέσα σε ένα Αλφαρ ιθ μη τικό μ ε τ ην Σ υνά ρτη ση
strstr o
163
Εύ ρ εση τ η ς Θέσης ενός Υπο-Αλφαρ ιθμη τικού με τ η ν Συνάρτηση
strpos o
163
Εξαγωγή ενός Τμ ή ματος από ένα Αλφαρ ιθμητικό με την Συνάρτηση
substr O Ανάλυση εν ός Αλφαριθ μ η τικού με την Συνάρτηση
164 strtokO
Διαχε ίρ ιση Αλφαριθμ ητι κών με την ΡΗΡ Ε κκαθάριση ενός Αλφαριθμητικού μ ε τις Σ υναρτή σε κ; και
strip_tagso
165 166
tri m o, Itrimo 166
Χίί Πίνακας Περιεχο μένων
Αντικατάσταση ενός Τμήματος ενός Αλφαριθρηηκοϋ με την Συνάρτηση
5Qb51r_replaceO
168
Αντι κατάσταση Τμ η μάτων ενός Αλφαριθμητικού με την Σ υνάρτ ηση
51r_repla ce
168
Μετατροπή της Αναγραφής Κεφαλαίων/Πεζών Χαρακτή ρων Αναδίπλωση Κειμένο υ μ ε τις Συ ναρτήσεις
wo rdwrap O κα ι nl2brO
169 170
Μετατροπή Αλφαριθ μ ητι κών σε Δ ιατάξεις Χαρα κτ ήρων μ ε την Συνάρτ ηση eχ p lodeO
172
Χρ ή ση των Συναρτ ήσεων Ημ ερ ομη νίας/Ω ρας στ η ν ΡΗΡ Εύρ εσ η τη ς Ημ ερ ο μη ν ία ς μ ε τ ην Συνάρτ ησ η
172
lime O
Μετατροπή μ ιας Χ ρονι κή; Τ ιμής μ ε τ ην Συνά ρτηση
172 geld ate O
Μετατροπή μ ιας Χρον ικής Τιμή ς με τη ν Συνάρτηση Δημιουργία Χρον ι κών Τιμών μ ε τ η ν Συνάρτηση
daleO mklimeO :
ΕλεΥχος μ ι ας Τιμής Ημερομηνία ς μ ε την Σ υνά ρ τηση
chec kdaleO
Ανασκόπηση
173 174 176 178 1 78
Π ρακτι κή Εξάσκη ση
179
Ε &Α
179
Ερωτ ήσε ι ς Απαντήσε ις
179 180
Δ ρα στη ρ ι ότη τε ς
180
ΚΕΦΑΛΑΙΟ
9: Χρήση και Διαχείριση Φορμών
181 181
Δη μ ιουργία μι ας Απλή ς Φόρ μας Εισαγωγής Δεδο μένων Προσπέλαση των Δεδο μένων τη ς Φόρμ ας με Καθοριζόμενες από τον Χ ρ ή στη Διατάξεις Συνδυασμ ός ΗΤΜ Ι κα ι Ρ ΗΡ Κώδικα στην Ί δι α Σ ελίδα
183 186
Χρή ση Κρ υφών Π εδίων γι α την Απο θή κευση Πληροφοριών Κατάστασης
189
Ανα κα τεύθυνση του Χρ ή στη σ ε μ ία Διαφορετι κ ή Θ έση
190
Αποστολή Μ ηνύματος Ηλε κτρονι κο ύ Ταχυδρομείο υ κατά τ η ν Υποβολή τη ς Φόρμ ας
191
Δι αμόρφωση του Συστήματος για Χρ ήση τη ς Συνάρτησης Δ ημ ιο υργία τη ς Φό ρμας
Δημιουργία του
Script για
την Αποστολή του Μ ηνύ μ ατος
Μ οφροποίηση του Μ ηνύματό ς σας με την ΗΤΜι Μετα φορά Αρχ είων
mailO
192 193 194 196 197
Δη μιο υ ργία τ ης Φ όρμ ας Αποσ τολής Αρχε ίων
198
Δη μ ιο υργία του Ανασκόπηση
199 201
Πρακτι κή Ε ξάσκηση
202
Script Αποστολής
Ε ρ ωτή σει ς
Αρχε ίων
Απαντήσει ς
202 202
Δρα στ η ριότ ητες
202
Μάθετε ΡΗ Ρ, MySQL και Apache Όλα σε Ένα χiiί
ΚΕΦΑΛΑΙΟ
10:
Διαχείριση των Συνόδων Επι κοινωνίας των Χρηστών
203
Ο ι Συναρτή οτκ πο υ Χρ ησ ιμοπο ιούνται γ ια τ ην Δ ιαχείρ ιση Συνόδων Επ ικοινωνίας
203
Έναρξη μ ι ας Συνόδου Επικο ινωνίας
204
Δι αχείρι ση των Μεταβλητών Συνόδου
205
Πέρασμα του Κωδικού μ ιας Συνό δου στο Αλφαρ ιθμ ητικό Ερωτήματ ο ς
209
τερματισμός Συνόδων και Ακύρωση των Μεταβλητών
21Ο
Ανα σ κ ό π η ση
211
Ε& Α
212
Πρακτική Εξάσκηση
::
212
Ερωτήσεις
212
Απαν τ ήσε ις
212
Δραστηρ ιότ ητα
212
ΚΕΦΑΛΑΙΟ
11:
Χρήση και Διαχε ίριση Αρχείων και Καταλόγων
Ενσωμάτωση Αρχε ίω ν με την
includeO
213
Επιστροφή μιας Τιμ ή ς από ένα Ενσω μ α τωμένο Εγγρ αφ ο
Χρή ση της
213 215
include O σε Δομές Ελέγχου της Ροή; Ε κτελ εση ο
216
include_onceO
217
Η Ν τιρε κτ ίβα
.217
include_path
Ελεγχος Αρχείων
218
Ελεγχος της Υπαρξη ς ενός Αρχείου με την Συνάρτηση fil e_existsO
218
Είναι Αρχε ίο ή Κατάλογος;
218
Ελεγχος τ η ς Κατάστα ση ς ενός Αρχε ίου
219
Εύρ εση του Μ εγέθους του Αρχε ίου μ ε την Συνάρτηση
filesize()
Εύρεση Πληροφ ορι ών Ημ ερομ ηνίας για ένα Α ρχείο
219 220
Δη μ ι ου ργία μ ιας Συ νάρτησης η οποία Εκτελ εί Πο λλαπλο ύ ς Ε λέγχ ου ς σε Αρχεία
220
Δ η μ ιο υ ργ ία και Δ ιαγρα φ ή Αρχε ίων
.222
Ανοιγμα ενός Αρχ ε ίου για Εγγραφή , Ανάγνω σ η ή Π ροσθή κη Δ εδ ο μένων
222
Ανάγνωση Δεδομένων από Αρχε ία
223
Ανάγνωση Γραμμών από ένα Αρχε ίο μ ε τις Συνα ρτή σεις και
fgetsO
feof ()
224
Ανάγνωση Τυχαίου Ποσού Δεδο μένων από ένα Αρχε ίο μ ε την
Συνάρτηση fread()
225
Ανάγνωση Χα ρακτ ήρ ων από ένα Αρχε ίο μ ε την Συνά ρτη ση
fgetcO
Εγγραφ ή ή Π ροσθή κη Δεδομένων σε ένα Αρχε ίο Εγγραφ ή Δεδομένων σε ένα Αρχείο μ ε τι ς Συναρ τήσει ς ή
fputsO
Κλε ίδ ω μα Αρχε ίων μ ε την Συνάρτηση
227 228
fw riteO 229
flockO
230
χίν Π ίνακας Περιεχομένων
Δουλε ύοντας μ ε Καταλόγους
231
Δημ ιου ργία Καταλόγων με την Σ υνάρτηση
mkdirO
231
Δ ιαγραφή ενός Καταλόγου μ ε την Συνάρτηση rmdirO Ανο ι γμ α ενός Καταλόγου γι α Ανάγνωσ η με την Συνάρτηση
231 opendirO
232
Ανάγνωση των π ερ ιεχομένων ενός Καταλόγου μ ε τ ην Συνάρτ η ση
readdir O
232
Ανασκό πησ η
234
Ε &Α
235
Π ρα κτι κ ή Εξάσ κησ η
235
Ε ρωτήσε ι ς
235
Απαντ ήσε ις
236
Δρ α στηρ ιότητε ς
236
ΚΕΦΑΛΑΙΟ
12:
Δουλεύοντας με το περιβάλλον του
Server
237
Ανο ιγμα Αγωγών Επι κοι νωνίας μ ε Δ ιεργα σ ίες, Χρ η σιμ ο πο ι ώντας τ ην Συνάρτηση
popenO
Ε κτ έλεση Εντολών με την Σ υνάρτ η ση
237 execO
Π έ ρασμ α Εντολών με τις Συναρ τήσει ς
systemO ή passthruO
239 241
Ανασκόπ ηση
242
Ε &Α
243
Πρα κτι κ ή Εξάσκηση
243
Ε ρ ωτή σ εις
243
Απ αντή σ ει ς
243
Κ ΕΦΑΛΑΙΟ
13:
Δουλεύοντας με Εικόνες
Κατανόηση της Διαδικασίας Δημ ι ουργίας Ει κόνων Λίγα λόγια για το Χρώμα Απαρα ίτ ητες Προσ αρμογές στην Ρ ΗΡ Απόκτ η ση Επιπλέον Βι βλιο θη κών Σχεδίαση μι ας Νέας Ε ικόνας
245 245 245 246 247 247
Σχεδίαση Σχ ημάτων και Γραμμ ών
248
Χρ ή σ η Χρω μάτων γ ια το Γέμ ι σμ α Αντι κε ιμ ένων
250
Κυκλι κά Γραφήματα
251
Τροποπο ίη ση Υπαρχουσών Εικόνων
254
Ανασκ όπηση
257
Ε &Α
258
Π ρακτι κ ή Εξάσκη ση
258
Ερωτ ήσει ς
258
Απαντή σεις
258
Δ ρ α στ η ρ ι ότ ητα
258
Μάθετε ΡΗΡ.
MySQL και Apache Όλα
αε Ένα
ΧV
Μ έρος IV: Ενοπο ίη ση των ΡΗΡ κοι MySQL ΚΕΦΑΛΑΙΟ
14:
Σχεδ ίο ση Βάσεων Δεδομένων
261
Η Σπουδαιότ ητα της Καλής Σχεδίασης Βάσων Δεδο μένων
261
Βα σικοί Τύποι Σχέσ εων μετα ξύ των Πινάκων
262
Σχέσει ς Ενα προς Ενα
263
Σχέσε ι ς Ενα π ρος Πολ/ ά
264
Σχέσε ι ς Πολλά προς Πολ/ά
265
Κανονικοηωη ση Βάσεων Δεδ ομένων . Ε ισαγωγ ή
266
Τα Π ρο βλή ματα των Βάσεων Δεδομ ένων μ ε Επίπεδη Δο μ ή
267
Πρώτη Κανονική Μο ρφ ή
268
Δεύτερη Κανονικ ή Μορφή
268
Τρίτ η Κανον ική Μορφή
269
Η Διαδικασία Σχε δ ίαση ς
270
Ανασκόπηση
271
Ε&Α
272
Πρακτική Εξάσκηση
272
Ερ ωτ ή σε ις
272
Απαντή σε ις
272
Δραστη ρι ότητα
272
Κ ΕΦΑΛΑΙΟ
15:
Βασικές Εντσλές της
Οι Τύ ποι Δεδομένων της
SQL
273
MySQl
273
Οι Αριθμ ητικσί Τύπο l Δεδομένων
274
Τύποι Δεδομένων για Τιμές Ημ ερσμ ηνίας/Ωρας
275
Τύποι Αλφαρι θμητικών
276
Η Εντολή για την Δ ημ ιουργία Πινά κων
Χρ ή ση της Εντολής
INSERT
278
Αναλυτι κ ή Παρουσίαση της Εντολής Χρήση τη ς Εντολή ς
277
INSERT
278
SElECT
280
Ταξινόμηση των Απστελ εσμάτων που Επ ιστρέφε ι η Εντολή
281
Π ερι ορ ίζοντ ας τα Αποτελέσματα πο υ Π αίρνετε με την
282
Χ ρ ή σ η τη ς Πρ ότ α ση ς
WHERE στα
SEl ECT SElECT
Ερωτή μ α τά σας
Χρ ήση Τελεστών σε Προτάσε ι ς WHERE
283
.
Συγκρ ίσε ις Αλφαρ.θ ρ η ηκών μ ε τον Τελεστή lI KE
283 284
Ε πιλογή Δεδομ ένων από Π ολ/απλούς Πίνακες
285
Χ ρ ή ση της
287
JO IN
Χρήση της Εντολής
UPDATE για την Τροποποίηση Εγγραφών
Ενημέρωση Υπό Συνθήκετ; Χρήση Υπαρχουσών Τιμών Στηλών στην
289 291
UPDATE
292
χvί Π ίνακας Περιεχομένων
Χρήση της Εντολή ς
RE PLACE
292
Χρήση της Εντολής Ο Ε ΙΕΤΕ
29 3
Δι αγραφή Υπό Συνθήκε ς
..294
Συχνά Χρ η σηιοηο ιούμ ενετ; ΣυναρτήσειςΑλφαριθμητικών τ ης
MySQL
.296
Συναρτήσει ς γι α την Εύρεση του Μεγέθους και την Σ υνένωση Αλφαριθμητικών
296
προσθήκη κα ι Αφαίρεση Χαρακτήρων από Αλφσριθρητικά
298
Συναρτήσεις ο ι Οπο ίες Χρη σ ιμοποι ο ύνται για την Ε ύρεση της Θ έσης
Αλφαριθμητικών
.300
Σ υ να ρτή σ ει ς Χε ι ρ ι σ μ ο ύ Υπο -Αλφαρ ιθ ρ ηηκων
.3 0 Ο
Συναρτήσε ι ς Τροποπο ίη σης Αλφαρι θ μ η τικών
.301
Χ ρή ση Συναρτήσεων Ημερο ρηνκκ/Ωρ ω; στην
MySQL
.303
Δουλεϋονταο με Ημέρες
.303
ΔoυλΕUoντας με Μ ή νες και Ετ η
.306
Δουλεύοντας με Εβδομάδες
.307
Δουλεύοντας μ ε Ωρες, Π ρώτα Λε πτά και Δευ τερόλεπτα
.308
Μορφοποίηση των Τιμώ ν Η μερομηνίας και Ωρας στ η ν
.309
Ε κτέλεση Υπολογισμών με Η μερομηνίες στην
MySQ L
MySQL
Ει δικές Συναρτήσεις κα ι Λειτουργίες Μ ετατροπή ς Ανασκ ό π η σ η
.311 .313 31S
Ε&Α
.31 7
Πρακτική Ε ξάσκη ση
.318
Ε ρωτ ή σ ει ς
318
Απαντήσει ς
318
Δ ρ ασ τ ηρ ι ότη τΑ •................................................................................................... .319
ΚΕΦΑΛΑΙΟ 16: Επικοινωνία με Βάσε ις Δεδομ ένων MySQL μέσω Ρ Η Ρ Σύ νδεση στην
MySQL μ ε
την ΡΗΡ
Χρήση της Συ νάρτηση ς
.321
mysql_co nnectO
Εκτ έλεση Ερω τη μάτων
Ανάκτηση Μηνυμά των Σφάλματος
.324
MySQL
.325
Ε ισ αγωγή Δεδομένων σε έναν Π ίνακα μ έσω ΡΗΡ
Ανάκτηση Δεδομένων με την ΡΗΡ
Ανα σ κό π η σ η
π ρακτι κ ή Εξάσκηση
.32 2 323
ΔoυλΕUoντας μ ε Δεδομένα της
Επιπλ έον Συναρτήσει ς
32 1
MySQL στην
325 .329
ΡΗΡ
.33 1 .33 1 332
Ε ρωτ ή σει ς
.33 2
Απαντήσεις
.33 2
Μάθετε ΡΗΡ, MySQL και Apache Όλα σε Ένα χνίί
Μέρος V: Παρουσίαση Απλών Έργων ΚΕΦΑΛΑ ΙΟ
Διαχείριση μιας Απλής Ταχυδρομικής Λίστας
17:
Υλοποίηση του Μηχαν ισμού Εγγραφή ς/Δ ιαγραφή ς των χρηστών Δ ημ ιουργ ία του Πίνακα Σ υ νδ ρ ο μ ητ ών,
subscribers
335 .335 ..336
Δημιουργία τ ης Φόρμας Εγγραφή ς/Διαγραφής Συνδρομητώ ν στ ην Λίστα
336
Υλοπο ίηση του Μηχαν ισμού Αποστολή ς Μηνυμάτων
342
Ανασκόπηση
.345
Ε&Α
346
Πρακτική Εξάσκηση
.346
Ερωτήσε ις
346
Απαντ ή σει ς
ΚΕΦΑΛΑ Ι Ο
Online Βιβλίο υ Διευ θ ύνσεων
347
Σχεδιασ μός κα ι Δ η μ ι ο υργία των Πινάκων της Βάσης Δεδο μένων
347
Δημιουργία ενός Μ ενού
350
Δημιουργία του Μη χανισμού Προσθήκης Εγγραφών
351
Ε μ φ άν ι σ η των Εγγραφών
355
18:
Δημ ιουργία ενός
.346
Δη μ ιο υ ργία του Μηχανισμ ού Διαγρ αφής Εγγραφών
361
Προσθήκη Επιμέρους Καταχωρ ίσεων σε μία Εγγραφ ή
.362
Ανασκόπηση
.368
Πρακτική Ε ξάσκησ η
369
Ερωτήσεις
369
Απαντή σεις
.369
Δραστ η ρ ιό τ η τες
ΚΕΦΑΛΑΙ Ο
19:
369
Δημ ιουργία Ενός Απλο ύ Φόρου μ Συζητήσεων
Σχεδίαση των Πινάκων τη ς Βάσης Δεδ ομ έν ων Δημιου ργία των Φορμών Ε ισαγωγή ς Δεδ ομένων και των
371 371
Scripts
Εμφάνιση της Λίστ ας Θ εμά των
372 375
Εμφ άνι ση των Άρθρων ενό ς Θέμ ατος
379
Προσθήκη Άρ θρων σε ένα Θέμα
382
Ανασκόπ η ση
385
ΚΕΦΑΛΑΙΟ
20:
Δημιουργία ενό ς Ε ι κονι κού Καταστήματος
Σχεδι ασμός κα ι Δη μ ιου ργία τω ν Πι νάκω ν τη ς Βάσης Δεδο μένων
387 387
Ει σαγωγή Εγγραφών στον Π ίνακα
sto re_categories
.389
Ει σαγωγή Ε γγραφών στον Πίνακα
store_items
390
Εισαγωγή Ε ν/ρα φών στον Π ίνακ α
store_item_size
Ειοαγωγή Εγγραφ ών στον Πίνακα store_item_color
.391 391
χν ίii Π ίνακας Περιεχομένων
Εμ φάνι ση των Κατηγορ ιών των Π ρ οϊόντω ν
.391
Εμ φάν ιση των Π ροϊόντων
.395
Ανασκόπ ησ η
397
Π ρακτι κή Ε ξάσκ ηση
.398
Ερωτ ήσει ς
398
Απαντήσει ς
398
ΚΕΦΑΛΑΙΟ 21: Δημιουργίο ενός Μ ηχανισμού Καλαθιού Αγορών
399
Σχε δι ασμ ός κα ι Δη μ ιουργία τ ων Π ινάκων τη ς Β άσ η ς Δ εδομ ένων
399
Ενσω μάτωση του Καλαθι ού Αγορών στο
401
Onl ine Κατάστημ α
Π ρο σθ ή κ η Π ροϊόντων στο Καλά θ ι Αγορών
Εμφάνι ση των π εριεχομ ένων του Καλαθ ιού Αγορών Δι αγραφή Π ροϊόντων από το Καλάθι Αγορών Μέθοδοι Πλη ρωμ ή ς και η Διαδικασία Ολοκλήρωσης μ ι ας Αγορά ς
..404 405 .408 409
Δημιο υργία της Φό ρμα ς Πλη ρ ωμ ής
409
Ολοκλή ρωση της Σ υναλ/αγής
.410
Ανασ κόπησ η
.411
Πρα κτι κή Εξάσκ ηση
.412
Ερωτ ή σει ς
.412
Απαντήσει ς
412
ΚΕΦΑΛΑΙΟ 22 : Δημιουργία Ενός Απλού Ημερολογίου Δη μ ιο υ ργία ενός Απλού Ημ ερολογίου
413 .413
Ελεγχος της Ε ισόδου του Χρ ήστη
.413
Κατασκευή τ η ς Η ΤΜ L Φό ρ μας
.414
Δημιου ργία του Π ίνα κ α Η μερολογίου Δη μιουργία μ ιας Βιβλιοθήκης Κλάσεων για Εφαρμογές Ημ ερ ολογίων Ανασκόπηση
416 .420 425
Ε&Α
.426
Π ρακτι κή Ε ξάσ κη ση
.426
Ερωτή σει ς
426
Απαντήσεις
.426
Δραστ ηρ ι ό τητ α
.426
ΚΕΦΑΛΑΙΟ 23: Ελεγχος τη ς Π ρό σβα ση ς στις Εφαρ μογές σα ς Π ιστοπο ίη σ η
-
Ει ο αγωγή
Π ιστοπο ίη σ η του CΙ ie nt Συ στ ήμ ατος
Οι Λει τουργίες Π ιστοποίησης το υ
427 .427
Apache
.428 .429
Π ιστοπο ίη ση μ ε Βάση τις Πλη ροφορ ίες που Αποθ ηκεύονται σε ένα Αρχείο Χρ ήση μ ι ας Βάσης Δεδομένων για τον Ελεγχο Π ρόσ βαση ς
.430 432
Μ άθετε ΡΗΡ, MySQL και Apache Όλα σε Ένα χίχ
Χρήσ η του
Apac he για
Ελεγχο Πρόσβασης
.."
""" " " " " " " " """ "
Υλο πο ίηση των Κανόνων Πρόσβασης ..""". "
"" "" .433 """ " .434
""
Αποτίμηση των Κανόνων Ελέγχου Π ρόσβαση ς " " " "" "" " " " " " " " " "" " " " "" " " " .435 Συνδυασμένη Χρή ση των Μεθόδων Ελέγχου Πρόσβασης στο Apache "" " " " "" " " ..436
Ελεγχος Πρόσβασης με Βάση τις Μεθόδους του ΗΠΡ """ """ " """""" " " " " "" " " ,,437 Εισαγωγή στα
Cookies " Cookie
Η Ανατομία ε νός
"" ""
"
""" " .."
"" " ."
"" ""
" "." "."
" ...438 .438
Ορισμός ενός Cookie με την ΡΗΡ """ """ """" " " """""" """ """" " " """" """" """ ".43 9 Διαγραφή ενός
Cookie ."
"""
"."
""."
""
"
""
"." .441
Ελεγχος Προσβαση ο με Βάση τι ς Τιμές των Cookies """ " " "" """"""""""""" " """.441 Δη μ ιου ργία του Πίνακα μ ε τους Εξουσιοδοτημένους Χρήστες""" """" """"" " ..441 Δη μιου ργία της Φόρμας και του
Script για
την Σύνδεση των Χρ ηστών """" "",,443
Ελεγχος τη ς Υπαρξης του Cookie auth "" " " " """""""" """""""""" """ " " "" " ".445 Ανασκόπηση Ε &Α
""
"
""
Πρ ακτι κή
"""
""
"" Ε ξάσκηση .."" "
""
""
" ""
"" ""
""
""
"" "
"" " ""
" " ."
""
""
" .446
"" ""
"" "."
"" " " ."
" " ..447 .447
Ερωτήσεις""""" " " " """" " """"" " "" " "" """ " """""" """""""" " " "" " " " "" " "" ..44 7 .., " ." " " "" "" ." " "" "" "" .448
Αηαντήσεκ
Δραστ η ρ ι ότ ητα " ""
Κ ΕΦΑΛΑΙΟ
24:
"."
". " " ". ""
""
"
""
""
"
.448
Π α ρα κολού θη ση και Καταγρα φ ή της Δραστηρ ι ότητας του Serνe r
449
Οι Στάνταρ Λειτου ργίες Καταγραφής του Επι λογή των Στοι χείων που Θέλ ετ ε
Apache """"" " " """ " " " "" " " """" " "" ..449 να Καταγράφοντα ι .450
Καταγραφή σε Αρχε ία
"". "
."
"""
Κατ αγραφή σε ένα Πρ όγρ αμμα
Καταγρ αφή Σφαλμάτω ν στο
"" ""
Apache
""
"
""" ""
"" ""
",,
"
"" ""
"
"
.454
"
" .455 ".4 55
"
Καταγραφή των Σφαλμάτων σε ένα Αρχε ίο "" " " " " "" " " "" " " " " " " " " " """ " "" ..456 Καταγραφή Σφαλμ άτων σε ένα Πρόγραμμ α"" """"""""" " " """ " " " " " " " """ " .4 56 Ο Δαίμ ονας
syslog
Η Ντι ρεκτ ίβα
"
"" "
LogLevel
"
" ""
""
" " ."
" .."
"""
" ""
"
""
" .456
"."
""
" "
" ..456
Διαχείρ ιση των Αρχε ίων Καταγραφή ς του Apache """ " " " " " " " " " " " " " " """ " """,,457 Αντι στοίχι σ η Δ ΙΕ υθύνσεων Ι Ρ σ ε Ο νόματα Ανανέωσ η τ ων Αρχε ίων Κα ταγραφ ή ς ..""
Host
.457
"""
""
""
"
" .458
Συγχώνευση και Διαχωρ ισμός τω ν Π ε ρι εχομένων των Αρχε ίων
Καταγραφ ής " " "" """ "" " """"" """""""""""" " " """" " " " " " " " " "" " " " "" " " " .4 5 9 Ανάλυση των Δεδο μένων των Αρχείων Καταγραφ ής " " """ " " " " " " " " " " " " "" " ,,459 Παρα κολού θ ηση των Αρχείων Καταγραφής Σφαλμ άτων""""" " """" " " "" " " ".45 9 Καταγραφή Ε ξειδι κευμένων Πληροφοριών σε μία Βάση Δεδο μένων Δ ημ ιου ργ ία το υ Πίνα κα
"
" ."
""
"""
""
"""""" """ " " .460 " ." .."."" " 460
ΧΧ
Π ίνα κας Περιεχαμένων
Δημιου ργία του Απαιτού με νου ΡΗ Ρ Κώδι κ α
.460
Δ η μιο υ ργία Αναφορών
.461
Ανασκόπ η σ η
.464
Ε &Α
.465
Π ρακτική Εξάσκηση
.465
Ερωτήσει ς
.465
Απαντήσει ς
.465
ΚΕΦΑΛΑΙΟ 25 : Προσορμογή των Εφαρμογών για Χρήση σε Συγκεκριμένες Χώρες
467
Διεθνοποίηση και Π ροσαρμ ογή σε τοπι κές Ρυ θ μίσει ς
.467
Λίγα Λόγια γ ια τα Σετ Χαρα κτ ή ρων
.468
Αλ/αγές στο π ερ ι βάλλον
.469
Αλ/αγές Δι αμ όρ φωσης στο
Apache
.470
Αλ/αγές Δι αμ όρ φωσης στην ΡΗ Ρ
.470
Αλ/αγές Δι α μόρφωσης στην
.471
MySQ L
Δη μ ιουργία μι ας Δομ ή ς Σελίδων γι α Π ολλαπλές Γλώσσες
.471
Ανασκόπηση
.476
Ε &Α
.477
Π ρακτική Εξάσκη ση
.477
Ερωτήσει ς
.477
Απαντή σ ει ς
.477
Μέρος νι: Θέματα Εποπτείας και Βελτισταποίησης ΚΕΦΑΛΑΙΟ 26:
Βελτιστοπο ίηση της Απόδοσης του Apache
481
Θέματα τα Οποία Σχετι'ζονται με την Επέκταση το υ Serνe r σε Ευρ ύτερη Κλίμακα
.481
Ορια τα Οποία Τϊθενται από το Λε ιτουργικό Σ ύ στημ α
.482
Ρυ θμίσεις του
.483
Apache που Σχετ ίζονται μ ε την Απόδοση
Ελεγχος Φόρτου μ ε το ApacheBench
.485
Ενεργητι κή Βελτι στοπο ίηση
.487
ΑνTlστοίχισ η Αρχε ίων στη ν Μνή μη
.487
Κατανομή του Φόρτο υ προσωρι νή ΑΠΟθ ήκευση σε Μνή μη
487 Cache
.488
Με ίωση των Δεδο μένων που Μεταδίδονται
.488
Ρυ θμίσε ι ς Δ ι κτ ύ ου
.489
Απ οτρ οπή τη ς Κατάχρ ησ ης
.489
Ρομπότ και Αράχνες
.489
Μάθετε ΡΗΡ , MySQL και Apache Όλα σε Ένα ΧΧ ί
Φιλοξενία Πολλαπ λών
Sites
σε Εικονικούς
Host .."
"
"
.490
Ε ικονικοί Ho st Βασ ιζόμενοι σε Δι ευθύνσε ι ς ΙΡ
.491
Εικονι κο ί Ho st Βασ ιζόμενο ι σε Ονόματα
.491
Εικονικοί H ost σε Μαζικό Επίπεδο
.493
Ανασ κόπη σ η
.495
Ε &Α
.496
Πρα κτι κ ή Ε ξάσκ ηση
497
Ε ρ ωτήσει ς
.497
Απαντ ήσεις
.497
ΚΕΦΑΜ ΙΟ
27: Δ η μ ιουργία ενός Ασφαλο ύς Web Server
Η Ανάγκη για Ασφάλεια
499 .499
Εμπιστευτικότητα
.499
Ακερα ι ότ ητα
.499
Π ιστοπ οίηση
500
Το πρωτόκολλο
SSL
.500
Η Ανάγκ η για Ε μ π ιστευτικότητα
500
Η Ανάγκ η για Ακεραιότητα
502
Η Ανάγκ η για Πι στοποίηση
503
Εγκατάστασ η το υ
SSL
505
OpenSSL
505
mod_ssl
506
Δ ι αχείρ ι σ η Π ι στοποιη τι κών
50 8
Δημι ο υργία ενός Ζεύγους Κλειδ ιών
508
Δημιου ργία μι ας Αίτ ησης Π ι στοπο ιη τι κο ύ
509
Δ η μ ιου ργία ενός Αυτο -Υπογραφόμ ενου Πι στοτιωηηκο ύ
51Ο
SSL
511
5erver
511
Δ ι αμ όρφ ωση το υ Εκ κ ίνη ση το υ
Ανασκόπ ησ η
.512
Ε &Α
513
Πρακτικ ή Εξάσ κηση
513
Ε ρω τ ή σει ς
513
Απαντή σει ς
513
ΚΕΦΑΜΙΟ
28:
Βελτιστοποίηση της
MySQL
Δη μ ι ουργία μ ι ας Βεληοτοηοηρ έν η ο Π λατφό ρ μ ας
Η Συνάρτη ση
benchmarkO
Επ ιλογές Ε κκ ίνη ση ς τ ης
MySQL
Βασ ικές Π αράμ ετ ρ οι Ε κκ ίνη ση ς
515 515 516 517 .518
ΧΧί ί Π ίνακας Περιεχαμένων
Βελτιστοπο ίηση τ ης Δομ ής των Πι νάκων
519
Β ελτιστοπο ίησ η των Ερω τη μ άτων
520
Χρ ή σ η τ η ς Εντολή ς
FLUSH
521
Χρήση τη ς Εντολής
SHOW
522
Εύρεσ η Πληροφορι ών για τις Βάσει ς Δεδομ ένων και το ικ Πίνα κες
523
Εύρεσ η Πλη ροφοριών για την Δομ ή των Πι νά κων
524
Ε ύ ρ εση Πληροφορι ών για τη ν Κατάσταση του Σ υστή ματο ς
527
Ανασ κ όπ ησ η
528
Ε &Α
530
Πρακτι κ ή Εξάσκησ η
.530
Ερωτήσει ς
530
Απαντή σει ς
530
Δ ραστηρ ι ότητες
53 1
ΚΕΦΑΛΑ ΙΟ
29:
Ανα βα θ μίσεις του Λογι σμ ικού
533
Τα Πλεονε κτή μ ατα τη ς Ενη μέρωση ς
.533
Πότε Π ρέπ ει να Αναβαθ μ ιστείτε;
534
Αναβάθμ ιση της
M ySQL
535
Αναβάθμ ιση τ ου
Apache
535
Τροπ οποίη ση του
Apache
Χωρίς Ανα βάθ μ ισ η
Ανα β άθμ ι ση τ ης ΡΗ Ρ
53 6 53 6
Ανασ κόπησ η
537
Π ρακτική Εξάσκηση
.538
Ε ρ ωτ ή σει ς
538
Απαντήσει ς
538
Μ έρ ο ς ν ll: Κοιτά ζοντα ς προς το Μέλλον Κ ΕΦΑΛΑΙΟ
30:
Χαρακτηρι στι κά και Π ρ ος τα Π ίσω Συ μβατότητα τη ς ΡΗΡ
5. 0
Τι Πρόβλημ α Υπάρχε ι στ η ν ΡΗΡ
541 4;
541
Το Νέο Μοντέλο Αντικειμ ένων
542
Άλλες Ν έες Δυνατότητε ς Το
.544
SQLite
54 4
Υποστή ρ ι ξη γι α ΧΜ L Πότε Πρέπει να Αναβαθμ ι στείτε στην ΡΗΡ Π ρος τα Π ίσω Συμβ ατότητα
544 5;
545 545
Ανασ κόπ η σ η
545
Ε &Α
546
Μάθετε ΡΗ Ρ, MySQL και Apache Όλα σε Ένα χχίίί
ΚΕΦΑΛΑ Ι Ο
31:
Χα ρακτηριστικά και Πρας τα Πίαω Συμβατότητα της
MySQL 4,1
547
Χρή ση Υπο- Ε ρ ωτ η μάτων
547
π α ράδ ει γμ α Υπο -Ε ρωτ ή μα τος για Π αρ ακολο ύ θηση Χ ρόνου Βελτιωσεκ; στον Τομ έα της Διεθνοποίησης Άλλες Ν έες Δuνα τότητε ς Κοι τάζοντας προς το Μέλλον:
548 551 .551
MySQL5.0
552
Ανασκόπηση
552
Ε &Α
553
Πρα κτ ι κή Εξάσ κηση
553
Ε ρ ωτήσει ς
553
Απ αντήσε ις
553
Μέρος νlll: Παράρτημα ΠΑΡΑΡΤΗΜΑ Α : Εγκατάσταση των
MySQL, Apache και ΡΗΡ
από το Συνοδευτικό CD·ROM Εγκατάσταση στο Lίπυx!υ π ίx
557 55 7
Εγκ ατάστασ η τ η ς
My5Q L
.557
Εγκατάσταση του
Apache
559
Εγκ ατάσταση τ ης ΡΗΡ
Ε γκατ ά σταση στα
Windows
559 56 1
Εγκ ατάστα ση τ η ς
MySQ L
562
Εγκατάσταση του
Apache
564
Εγκατάσταση τη ς ΡΗ Ρ
565
Αντιμ ετώπιση Προ βλημάτων
568
Ευρετήριο
569
Εισαγωγή Το βιβλ ίο που κρατάτε στα χέρια σας έχε ι σαν στόχο να σας παρουσι άσει μ ε απλό αλλά απο τελεσ ματικό τρόπο την ανάπτυ ξ η βασι ζόμ ενων στο Web εφαρμ ογών χρη σιμ οπο ιώ ντας τρε ι ς τεχνολογίες : την γλώσσα ΡΗΡ, την MySQL και τ ον Apache server. Δι αβ άζοντας αυτό το βιβλίο θα μάθετε όλα όσα απαι τούνται για τ ην διαμόρφωση κα ι δ ισχείρισ η του
Apache, θα γνωρ ίσε τε τα βασι κά του προγραμ μ α τι σμ ο ύ με την ΡΗΡ, τις με MySQL. Ο στόχος
θόδους χρήσ ης και δισχείρισης σχεσ ιακών βάσεων δεδ ομ ένων με την
το υ β ιβλίου ε ίνα ι να σα ς δ είξει πόσο ο μαλά συνεργάζοντα ι μ ε ταξύ τ ου ς αυτές ο ι τεχνολο
γίες και να σα ς πα ρέχε ι τις γνώσεις που θα χρειαστείτε για να τις χρησιμοποιήσετε σε δι κ ές σας εφ α ρ μογέ ς .
Σε Ποιους Απευθύνεται Αυτό το Βιβλίο; Το βιβλίο αυτό απευθύνεται σ ε αναγνώστε ς ΟΙ οποίοι γνωρίζουν το υλάχιστον σε βασ ικό επίπεδο ένα περιβάλλον ανάπτυ ξη ς βασιζόμ ενων στο
Web
εφαρμογών
-
είτε σε
lί n υxIυ πίx, είτε στα W indows. Τα κεφάλαια που ασχολούνται με θέματα εγκατάστασ ης
και διαμόρφωσης υποθέτουν ότι γνωρίζετε καλά το λειτουργι κό σας σύστη μα και τι ς βα μεθόδου ς με ταγλώττι σης (σε συστή μ ατα Linux/Unix) ή εγκατάστασης (στα Windows) λογισμ ικού. σικές
Τα κεφάλα ια που ασχολούνται μ ε τον προγραμματισμό σ ε ΡΗΡ δεν απα ι τούν να έχε τε ήδη γνώσε ις π άνω σ την Ρ ΗΡ, αλλά εάν γνω ρ ίζετε άλλ ες γλώσσες προγραμμ ατι σμ ο ύ ,
όπως η C ή η PerI, τα πράγματα θα ε ίναι πιο εύκολα για εσάς. Π αρόμοι α, εάν έχετε δουλέ ψε ι με βάσε ι ς δεδο μένων cιτo παρελθόν, όπως η Oracle ή τ ο Microsoft SQLServer, θα έχε τε ή δ η ένα καλό προβάδισμα για τα κεφάλα ια που ασχολούνται μ ε τ ην MySQL. Η μ οναδι κή προϋπόθ εση που θέτει αυ τό τ ο β ιβλίο είναι η γνώσ η των με θόδων δημ ιου ρ γίας στατι κού περ ι εχομ ένου γ ια το
Web, με την Η ΤΜι. Εάν ξε κ ινάτε τώρα την ενασχόλη Web, θα μπορ έσετε να διαβάσετε αυτό το βιβλίο,
σή σας με την ανάπτυξη εφαρ μογών
αλλά θα σας σ υνι στούσα να ξεκ ι ν ή σ ε τε δ ι α βά ζοντας ένα καλό εγχειρίδ ιο γ ια τη ν ΗΤΜι.
Εάν μπορείτε να δη μ ιουργείτε απλά ΗΤΜ L έγγραφα μ ε π ίνα κ ες, θα είστε απόλυτα εντά ξεΙ.
2 · Εισαγωγή Η Οργάνωση του Βιβλίου Το β ιβλίο αυ τό χωρ ίζετα ι σε επτά μ έρη , τα οπο ία αντιστοιχού ν σε ισάρι θμ ες λογ ικές ενό τη τες. Τα κ εφάλα ια που περ ιλα μβάνοντ αι σε κάθε μ έρ ος πρέπε ι να δ ιαβάζοντα ι μ ε τ ην σειρά , δεδομένο υ ότι κάθ ε ένα από αυτά βασίζε ται στι ς γνωοεκ που σπ οκτήσατε στα προηγο ύμ ε να . Ακολο υθε ί μ ία συνοπτι κή παρου σίαση των μ ερών αυ τού τ ου β ιβλίου. ~
Μέρος Ι: Εγκατάσταση και Διαμόρφωση των
MySQL, Apache και ΡΗΡ
Αυτό το μ έρος παρουσιάζει τις διαδικασίες εγκατά σταση ς και διαμόρφωσης των
ΡΗ Ρ, MySQ L και
Apache . Θα πρέπει
να διαβάσετε τα κεφάλαια αυτού του μέρους
του β ιβλίου πρ ιν μ πορέσετε να προχωρ ήσετε στα ε πό μ ενα μ έ ρη, εκτός κ ι αν έχετ ε ήδη πρόσβαση σ ε ένα πλήρες περ ι βάλλον ανάπτυξης, στο οποίο έχο υν εγκατα σταθε ί ήδη κα ι οι τρει ς τεχνολογίες . Αλλά ακόμη κι αν δεν χρειάζεται να εγκαταστή σετε και να δ ι αμ ορ φ ώσετε μ όνο ι σας τη ν ΡΗΡ, τη ν
MYSQL
και το
Apac he,
σας
προτείνω να ξεφυλλίσετε τουλάχι στον αυτά τα κεφάλα ι α γ ι α να κατανοή σετε τα βασικά . ~
Μ έρος
11:
Βασικά Στοιχεία της Γλώσσας
Αυτό το μ έρος του β ι βλίου έχε ι σαν στόχο να σας διδάξε ι τα βασ ικά της γλώσσας ΡΗ Ρ, συμ περιλαμβανο μένων Τα/ν δομ ι κών τη ς στοιχείων όπως ΟΙ δ ιατάξε ις κα ι τα
αντι κείμενα. Τα παραδείγματα που περιέχουν αυτά τα κεφάλαια θα σας εξΟΙΚΕ ιώ σουν με την διαδικασία συγγραφής κώδικα, αποστολής αρχε ίων στον serνer και Ε λέγχου των αποτελεσμάτων. ~
Μ έρος
111:
Συγγραφή Κώδικα
Αυτό το μέρος του βιβλίου περ ιλαμ βάνει μαθή μ ατ α τα οπο ία καλύ πτο υν δι άφορα μ εσ αίου επιπέδου θ έ μα τα ανάπ τυ ξη ς εφαρ μογών, όπ ως η χρήσ η/δ ι αχε ίρ ι ση φο ρ μ ών κα ι αρχε ίων, ο έλε γχος πρόσβασης, κ.α , ~
Μέρος ιν: Ενοποίη ση των ΡΗΡ και
MySQL
Αυτό το μ έρος τ ου βι βλίου περ ιλαμ βάνε ι μα θ ήματα τα οποία ααχολούνται μ ε γενι κότερ α θέματα Τα/ν βάσεων δεδομένων όπως η κανον. κοηο ηο η , καθώς κα ι μ ε την χρήση τ ης ΡΗΡ για την επι κοινωνία και χρή ση βάσεων δεδομένων ~
MySQL.
Μέρος ν: Π α ρουσία ση Απλών ΕΡΥων Κάθ ε ένα από τα κεφάλαια που περιλα μβάνονται σ' αυτό το μ έρος το υ βιβλίου παρουσιάζε ι την διαδ ικασία ανάπτυξης μιας απλή ς αλλά χρ ήσιμης εφα ρμογής, μ ε β άσ η τι ς γνώσει ς που αποκτή σατε στα π ροη γο ύμ ενα κε φάλα ι α .
~
Μ έρος νι : Θέματα Εποπτε ίας και Βελτιστοποίησης Τα κεφάλαια αυτού το υ μέρο υς ε ίνα ι αποκλε ιστικά αφ ιε ρωμ ένα σ ε θέ ματ α δ ιαχεί ριση ς, ε ποπτείας κ αι βελτιστοποίηση ς των ση ς πληροφορ ίες για τ ην χρ ή ση ε ι κονι κών
Web ~
Apache κα ι MySQL. Εδώ θα βρε ίτε ε πί host και την υλοποίη ση ενός ασφαλο ύς
se rνe r .
Μέρος νll : Κοιτάζοντας προς το Μ ε'λλον
Αυτό το μ έρος περιλαμβάνει πληροφορίες γι α τις επερχόμενες εκδόσεις ΡΗΡ και
MySQ L 4.1.
5.0
Μάθετε ΡΗΡ, MySQL και Apache Όλα σε Ένα
3
Ερωτήσεις κοι Ασκήσεις Στο τέλος κάθε κεφαλαίου θα βρίσκετε μ ία ενότητα ερωτήσεων και απαν τήσεων, ΟΙ ο ποίες σχετίζοντα ι με το υλικό που παρουσιάστηκε σ' αυτό το κεφάλαιο. Η ενότητα αυτή έχει σαν στόχο να σας βοηθήσει να εμπεδώσετε ακόμη περισσότερο τις γνώσεις που α ποκτήσατε . Μετά από ης ερωτήσε ις κα ι τις αοκήοτκ; ακολουθούν ορισμένες δραστηριότ ητες τις ο ποίες σας προτε ίνω να κάνετε. Αν κα ι δεν θα μπορούσα να τις χαρακτηρίσω κατά κανένα
τρόπο σαν μεγαλεπήβολες εργασίες, σας βοηθούν να εφαρμόσετε στην πράξη τ κ; γνώ σε ις σας. Δεν υπάρχει καλύτερος τρόπος για να μάθετε από την πρακτική εξάσκηση και την επανάλ ηψη.
Συμβάσεις που Χρησιμοποιούντοι σ' Αυτό το Βιβλίο Το β ιβλίο αυτό ακολουθεί ορισμένες κο ινές συμβάσεις ο ι οποίες έχουν σαν στόχο να διευ κολύνουν την ανάγνωση και την αφομοϊωσ η των γνώσεων που παρουσιάζει Ο ι συμβά σεκ αυτές ε ίναι:
~
Ολος ο κώδι κας των παραδειγμάτων παρουσιάζετα ι μ ε ειδική, μη -αναλογική γραμ ματοσειρά.
Ι.
Για τον χαρακτηρισμό συγκεκριμένων πλ ηροφοριών. χρησιμοποιούντα ι τα ακό
λουθα γραφικά στοιχε ία ΧΡΗΣ/ΜΕΣ ΠΛΗΡΟΦΟΡΙΕΣ
Αιπές οι ενότητες περιλαμβάνουν πρόσθετες πληροφορίες , σχετιζόμενες με το τρέχον θέμα που εξετάζεται
ΣΥΜΒΟΥΛΕΣ
Αιπές οι ενότητετ παρουσιάζουν συνήθως συμβουλές, ή ευκολότερες με
ΥΠΟΔΕΙ=ΕΙΣ
θόδους για την εκτέλεση διάφορων εργασιών.
ΣΗΜΕ/Ο
Αιπές οι ενότητα; σας βοηθούν να αποφεύγετε κοινά λάθη. Διαβάζοντάς
ΠΡΟΣΟΧΗΣ
τες εξοικονομείτε χρόνο και μειώνετε την τιιθανότητα αντιμετώπισης προ βλημάτων.
ΜΕΡΟΣΙ
Εγκατάσταση και Διαμόρφωση των
MySQL, Apache
και ΡΗΡ
Κεφάλαι α
1
Εγκατάσταση και Διαμόρφωση τη ς
MySQL
2
Εγκατά σταση και Διαμ ό ρφ ω ση του
Apach e
3
Εγκατάσταση και Διαμόρφωση τη ς ΡΗΡ
ΚΕΦΑΛΑΙΟ
1
Εγκατάσταση και Διαμόρφωση της MySQL Αυτό είναι το πρώτο από τ α τρία κεφάλαια του βιβλίου που ασχολο ύ ντα ι μ ε θέματα ε· γκατάστασης. Στ α κεφάλα ια α υ τά θα μάθετε όλα όσα χρειάζεστε για να εγκαταστήσετε και να διαμ ορφώσετε τ ο δι κ ό σας περιβάλλον ανάπτυξης. Θα ασχοληθούμε πρώ τα με την εγκατάσταση τη ς
MySQ L, ε πε ι δ ή η εγ κατά στα ση MySQL στ ο σύστημά σας.
τη ς ΡΗΡ ε ίνα ι π ο λύ π ι ο απλή εάν
έχε ι εγκατασταθε ί ήδη η
Σ υγκεκριμ ένα, σ' αυτό το κεφάλαιο θα ασχολ ηθούμ ε με τα α κόλο υθα: ~
Εγκατάστασ η τη ς
~
Βασικές οδηγίες ασφάλειας για την χρήση της
~
Το σύστημα δικα ιωμάτων για τους χρήστες
MySQL MySQL τ ης MySQL
Η Τρ έχουσα και οι MελλOVΤΙKές Ε κδόσε ι ς της
MySQL Οι οδ ηγίες εγκατάστασης πο υ παρου σι ά ζονται σ ' αυ τό τ ο κεφάλαιο αντιστοιχο ύν στ ην έκδοση
4.0.15 της MySQ L, η οποία είναι η τρέχουσα έκδοση "παρ αγωγή ς" α υτού του λογι MySQL ΑΒ, η ετα ιρε ία πο υ ε ίνα ι υπεύθυνη για τ η ν ανάπτυ ξη και διανομή τη ς MySQL, χρησ ιμοπο ιεί αρ ι θ μούς "δευ τ ερε ύ ο υ σας έκδοσης" (το Ί 5" στην περίπτωσή μ ας) για να χαρακτ ηρίσε ι τι ς ε νη μ ερώσε ι ς τη ς κύριας έκδοση ς του λογισμικ Ού (τ ο "4.0" στη ν π ε σ μι κο ύ. Η
ρίπτωσή μας) που περι έχουν σχετιζόμενες με την ασφάλεια βελτιώσεις ή διορθώσεις σφαλμάτων. Οι δευτερεύουσες εκδόσεις δεν κυ κλοφορο ύν βάσει καθορισμένου χρονοδια γράμματος όταν προστ ίθ εντα ι βελτιώσει ς ή δι ορθώσεις στον κώδικα χθο ύν σχολαστικ ά
- η MySQL ΑΒ
-
και αφού ελεγ
κυ κλ οφορεί μία νέα έκδοση του λογισμι κ Ο ύ μ ε ν έο αρ ιθμό
δευ τερεύουσας έ κδοσ ης . Τη στιγμή που θα διαβ άζετε εσε ίς αυτ ό το β ι βλίο είνα ι π ο λύ πι θ ανό ν α έχει αλλάξει ο α ρ ιθ μός δευ τερε ύ ουσας εκδοοη ξ, σε 4.0.16 ή ακό μ η περιοσότ ερ ο. Σ ' αυτ ή τ η ν περ ίπτωση , θα πρέπει να δια βάσετε την λίστα των αλλαγών που έχουν γίνε ι στ ην δική σας έκδοση, την ο ποία θα βρείτε στην διεύθυνση h ttp :ΙΙwww. mysql.com/d ode n/Ne\v s- 4.0 .x. h tm I . για να ενη μερω θείτ ε για οποιεσδήποτε αλλαγές αηαιτούντα ι στην διαδι κασία εγκατά σταση ς ή διαμόρφωσης, η οποία αποτελε ί και το κύριο θέμα αυτού του κεφαλαίου . Αν και είνα ι μάλλον απίθανο να αλλάξουν οπο ιεσδή ποτε οδηγίες εγκατάσταση; μ εταξύ δύ ο δευτερευ ο υσών εκδόσεων, καλό θα είναι να αποκτή σετε τη συνή θε ια να ελέγ:χετε πά ντα τ ην λ ίστα αλλαγών κάθε λογισμικ ού που εγκα θ ιστάτε και δ ι ατη ρ είτε στο σύ στημ ά σας. Εάν έχε ι παρουσι αστεί όντως μία νέα δε υ τε ρεύου σα έ κδοση μ έχ ρ ι τ ην στι γμ ή που δια βάζετε εσε κ το β ιβλίο, αλλά δ εν αναφέρονται αλλαγές στ ην δ ιαδ ι κα σία εγκατ άστα
σης, κρατ ήστε απλώς στο μ υαλό σας ότι θα πρέπε ι να σκέφτεστε τον αρ ι θμό τη ς δ ι κής σας έκδ ο σ η ς σ τις ακ όλ ο υ θ ε ς οδηγ ίε ς κ αι εικόνε ς . ι\friOl.H ΡΓιΡ, ,\ lySQ L ΚΟΙ ,ψ.1chc Ό,' ι ι ιη '[να
.
8
Εγκατάσταση και Διαμάρφωση τη ς MySaL
Πώς θα Αποκτήσετε την
MySQL
Η MySQ L ΑΒ, η εταιρεία πο υ αναπτύσσει το λογι σμ ικό server βάσεων δεδομένων MySQL, δ ιανέμε ι την M ySQL μέσω του W eb site τ ης, στη ν δι εύθ υ νση http ://W\V\v.mysql.com /. Σ' αυτό τ ο ~Ve b site θα βρε ίτε επίσ ης δ ιανο μές της M ySQL σε δυαδική μ ορφή για όλες τι ς πλ ατφόρ μ ες, RPM αρχεία και αρχεία πηγαίου κώδ ικα για τι ς πλατφό ρ μες Linux/Unix. Επι πλέον, μπορ ε ίτε να αγορά σετε το λογισμ ι κό σε μία από τις εμ πορικά δ ιαθέσ ιμες ε κδόσεις του
- δηλαδή ,
σε σ υσκε υα σία και με ε κτενές, έντ υπο εγχε ι ρίδι ο της
MySQL- από τ ο online
κατάστ η μα της M ySQ L ΑΒ, μ ε πολύ λογική τι μ ή . Ο ι οδηγίες εγκατ άστασης που θ α π αρουσι ά σουμε σ ' αυτό το κεφάλα ι ο βασίζο νται στ ην "ε π ίση μ η" έκ δοση τη ς M ySQL 4. 0.χ. από την M ySQL Α Β . Μπορ είτ ε να μ ετ α φερ ετ ε όλα τα
αρχεία από την διεύθυνση htt p: //W\V\V.mysql. com /d ownl oads/m ysq l.4 .0.html . ενώ οι τρέ χουσες εκδόσει ς τη στιγμή πο υ γράφονται αυ τές οι γρα μ μές π εριλα μβάνονται επίσης στο συνοδευτι κό
CD το υ
ΧΡΗΣΙΜΕΣ ΠΛΗΡΟΦΟΡΙΕΣ
β ιβλίου.
Γι α οδηγίες οχετικά με την εγκατάσταση της MySOL από τ ο σψνοδ εψτι κό CD, ανατ ρ έξτε ατο Π α ρά ρτη μα Α , "Εγ κατά σταση των MySOL, Apache κ αι Ρ ΗΡ από το Σ υν οδευτι κ ό CD-ROM'.
Εγκατάσταση της
MySQL σε
Συστή μ ατα Ιί πυχ/υ π ίχ
Η διαδ ι κασία εγκατά στασης της M ySQ L σε συστή ματα Lin uxlUnix ε ίνα ι απλή, ανε ξάρτη τα από το εάν θα χρ η σιμοπο ιήσετε τα
RPM αρχε ία ή εάν RPM αρχεία ,
αρχε ία. Εάν επιλέξετε εγκατάσταση από τα
θα εγκατα στή σετε τ α δ υαδ ι κά θα χρε ιαστείτ ε κατ ' ελάχ ι στον
τα ακόλο υθα δύο αρχε ία : ~
MySQL-server-VERSlO N.i38 6.rp m - Ο MySQ L server
~
MySQ L-client -VERSION .i386.rpm - Ο , στάνταρ β ιβλ ι Ο θή κες clie nt προγραμμάτων M ySQL
Γι α να ε κτελέσετε τη ν "ελάχ ι στη" δυνατή εγκατάσταση από τα
RPM
αρχεία, ε ι σάγετε την
α κόλου θ η ε ντολή στ ην προτρο πή : Ι>
rprn -i My SQL- s e r v er- VERSION. i3 8 6. rprn MySQL-clie n t-VERSION. i386 . r pm
ΧΡΗΣΙΜΕΣ
Αντικαταστή στε το
VERSION στ ο όνο μα αρχείο υ με την πραγ μ ατική έκδοση
ΠΛΗΡΟΦΟΡΙΕΣ
της MySOL nou μεταφέρατε στο σύ στημά σας . Για παράδειγμα , το RPM αρ χείο για την τρέχουσα έκδοση MySOL 4.0 ονομάζεται MySOL-server-4.0.15-
0.i386.rpm, ενώ .15-0.i386.rpm.
RPM
το
αρχείο με τις βιβλιο θή κες
client
κώδικα ονο μάζεται MySO L-clίe n t-4 .0
Μάθετε ΡΗ Ρ , MySQL και Apache Όλα σε Ένα
9
Μ ία άλλη εύκολη μ έθοδος εγκατάστασης τη ς MySQL ε ίναι από τσ αρχε ίσ δυαδ ικής μ ορ φής . Η μ έθοδος αυτ ή απαιτεί την χρήση των βο ηθημάτων gunzip και ta r γι α την αποσυ μη ίεση τ ων δυα δικών αρχε ίων. Χρε ιάζε ται επ[σ ης να έχετε την δυνατότητα να δ ημιουργείτε ο μάδες κα ι χρήστες στο σύστημα. Στην πρώτη σε ιρά εντολών που απα ιτεί ται γ ια τ ην εγκατάστα ση της MySQL από δυαδ ι κά αρχεία, θα πρέπε ι να προσθέσετε μία ομάδα κα ι έναν χρήστη και να αηο -συμη ιέσετε τα αρχεία, ως εξής : ΧΡΗΣΙΜΕΣ ΠΛΗ ΡΟΦΟΡ ΙΕΣ ονομάζεται
#> #> #> #>
Αντικαταστήστε το
VERSION-OS στο όνομα αρχείου με τον αριθμό της έκ-
δοσης π ου έχετε μεταφέρει στον υπολογ ιστή σας. Για παρόδειγμα , η τρέ χουσα έκδοση του δυαδ ικού αρχείου της MySQL 4.0 γ ια Linux/i386
mysql-max-4.0.15-pclinux-i686.tar.gz.
groupa dd my sql u s e radd -g mysql mysql cd /u sr/local gunzip < /path/to!mysql-vERSION-OS. ta r . gz
Ι
tar xvf -
Στην συνέχεια οι οδηγίες σας ζητούν να δ η μ ιουργήσετε μία σύνδεση
(Iink) με
μ ικρότερο ό
νομα :
#> ln - $ mysql-VERSION-OS my s ql #> cd rnys ql Αφού α ποσυμπιεστούν τα α ρχεία
README και INSTALL θα σας κα θο δ η γή σο υ ν στα υ πό
λο ιπα βήματα της διαδικασίας εγκατάσταση; για την έκδοση τ ης M ySQL που έχετε επιλέ ξει. Γενι κά, χρ η σιμ οπο ιε ίτα ι η ακόλουθ η σειρά εντολών:
#> t> t> t> t>
sc r i p t c hown chown chgrp c h own
s / mysq l _i nsta l l _db -R root /u sr/local/my sql - R my sql /u sr/lo ca l/my s ql/ d a t a -R my sql / u s r/l o c a l/my sql -R r o ot / u sr/ lo c al/ mysql/bin
Σ το ση μείο α υ τό είστε έτοιμοι να εκκινήσετε τον
MySQL serνe r,
ο πότε μ ηο ρ ε ή τ να μ ε τ α
βεήτ στην ενότητα με τ(τλο " Βασι κές Οδηγία; Ασφάλειας" . Εάν αντιμετωπίσετε οποιαδή
ποτε προβλήματα κατά την εγκατάσταση, ανατρέξτε στην ενότητα ''Αντι μ ετώπι ση προ βλημ άτ ω ν" .
Εγκατάσταση της
MySQL στα Windows
Η δ ιαδι κασία εγκατάστασης τ ης MySQLστα Windows είνα ι επ ίσης αρκετά απλή - τα στε λέχη τη ς MySQL Α Β έχουν "πακετάρει" οτιδ ήποτε θα χρειαστείτε, μαζί με ένα πρόγραμ μα εγκατάστασης, σε ένα συ μπιεσμένο (εί ρ) αρχείο. Αφού μ εταφέρ ετ ε το είρ αρχείο στο σύ στη μά σας, αποσυμπιέστε το σε έναν προ σωρινό κ ατάλογο κα ι τρέξτε το πρόγραμμα ε γκατάσταση ς, setu p.exe. Αφού το πρόγρα μ μα setup .exe εγκαταστήσει τον MySQL server και τα cJient προγράμμ ατα, ε ίστε έτοιμο ι να εκ κινήσετε τον MySQL server. Τα ακόλουθα β ήματα παρουσι άζουν αναλυ τικά την εγκατάσταση της MySQL 4 .0 .χ τα όταν η ροουνα εγκατάστασης (insta ller) μεταφέρεται από το Web site της
Windows,
MySQLAB.
1Ο
Εγκατάσταση και Διαμάρφωση της MySQL
Η δ ιαδ ι κασία εγκατάσταση ς ε ίναι παρόμοια ανεξάρτ η τα από το εάν έχε τε ένα τιε ρι βάλ λον μ ε τα
Windows 98,
ΝΤ,
2000
Π ολλ ο ί χ ρ ήστες εγκαθι στούν τ ην
ή Χ Ρ για σκο πούς δ οκιμώ ν και αν άπτυξ η ς ε φαρ μογών.
MySQL σε
αυτόνο μ ο υ ς υπολογ ι στές μ ε τα
Windows για
να π άρου ν μία π ρώ τ η α ίσθ η ση των δυνατοτ ήτων τ η ς , πρ ιν την ε νσω μ α τώσο υ ν σε ένα
περι βάλλ ον παρ αγωγή ς. ΧΡΗΣΙΜΕΣ
ΠΛΗ Ρ ΟΦ Ο ΡΙ ΕΣ
Εάν έχετε τα εργαλεία και τις γνώσεις πο υ απαιτο ύνται γ ια την μεταγλώπι ση αρχείων σrα Windows, επιλέξτε την έκδοση οδηγίες π ου περιλαμβάνε ι α υτή η έκδοση.
Cygwin και ακολο υ θ ή στε τις
Για να ξε κι νήσετε τη διαδ ι κασία εγκατάστασης, υ ποθέτοντας ότι έχετε μ εταφέρει την ρου τ ίνα εγκα τάστ α σ ης σε περ ι β άλλοντα
Windows απ ό τ ο Web site τη ς MySQL ΑΒ ,
α κο
λουθήστε τα παρακάτω βή ματα:
1.
Απο σ υ μ π ιέστε το Ζ ί ρ αρχείο σε έναν π ρ ο σω ρ ι ν ό κατάλογο, εν τ οπ ίστε το α ρχ ε ίο
se tup.exe
και κ άντ ε δι πλό κλ ι κ πάνω τ ο υ γι α να εκ κι ν ήσετε τ η ν εγκα τ ά στ α ση. Θα
δε ίτε το πρώτο παράθ υρο το υ οδηγού εγκατάστασης, το οποίο παρουσ ιάζεται στ η ν Ε ι κ όνα Ε Ι ΚΟ Ν Α
1.1.
Κάντε κλικ στο
Next γι α
να σ υνεχ ίσε τε .
1.1
Το ορώτο βήμο του οδηγού εγκα
Welcαne tothe M.ySOL 5eιvef:: and Cients 4.0.1 5 S etuρ program. Thi: program wiII irntδl MySOL Server: andαenι: 4.0.15 onyour compU:er.
τάστοοης της
MySQL στο Windows. ΙΙ ί:
:uonglyrecommended tha!youexit
δΠ Windows proςιr am :
belOfe running t.his Setup proςιrarn. Cδck Cancel ιο quiI5 etup andthen close anyρzogram: you haνe fUΓ'II'Iίno. C6ck N eχt 10conIinue with ιhe S etιιp pιogιδΠι
W'ARNING: ηi: pιogram i: proteded by coρyfigti Iδw cYId ~ιreδlie ι.
Unauthorized r epιoducιion οι disιri:ιutί:ln 01· tIi: program, DI' δΠΥ portion οι Ι may result inseveιe άνi δΠd cRnnaI penaIOe:. δnd Μι be proseω: ed 10the maι«num eχtenl: pof$ίbl e
under Iaw..
Cancel
2.
Το δεύτερο παράθυρσ του οδηγού εγκατάστασης περ ιέχει χρήσιμες πλη ροφορίες σχετι κές με τ ην θέση εγκατάσταση ς (δε ίτε την Ε ι κόνα 1.2). Η προεπιλεγμ έν η θέση εγκα τάστασης ε ίναι ο κατάλογος C:\mysql. Εάν σκοπεύετε να εγκαταστήσετε τ ην MySQLσε μ ία διαφορετική θέση, το παράθ υρ ο α υτό πα ρ ου σι ά ζει ορι σμένες αλλα γές τι ς ο ποίες θα χρε ι α στε ί να κάνετε.
Μ άθετε ΡΗΡ, MySQL και Apache Όλα σε Ένα
11
Οι πληροφορίες που παρο υσι άζει αυτ ό το παράθ υρο ε ίνα ι επίσ ης σ η μαντικ ές για τους χρ ήστες των "Vίn dο\νs ΝΤ ΟΙ οποίο ι θέλο υν να εκκ ινο ύ ν τ ην MySQLσαν μ ία uπηρεσία (s erνice) στο σύστη μά τους . Δ ιαβάστε τις πλ ηροφορ ίε ς που ε μφανίζονται και καταγράψτε οτιδ ήποτε οχετι'ζε τα ι μ ε την περίπτωσή σας . Κατόπιν κάντε κλικ στο Ε IΚ ΟΝΑ
Next γ ια
να σ υνεχ ίσε τ ε.
1.2
Το δεΟ τ ερ ο βή μο
το υ οδηγο Ο ενκα τάστ ο σης τ/ς
MySQl.
This ί: ιι reIeare of MySQL 4.0.1 5 for Wιn32.
Κοτο
γρ άψτε οπ οιεσ
ΝΟΤ Ε; IfΥω ίnstall MySQL in a rolder ather t:han C:\MYSQL ΟΓ youintend wstart MySQ L on Ν Τ Mrι2000 ,,: a servίce. you mutt αeaιe" f~e nδffied C:\MY.CNF
δή ποτε πληροφορίες
or \Wrιdows \my. ini οι \winnt\ηι .inί wΚh ιhe
σχετίζοντοι με
Ιollowηg
ΠoιΓMωn: :
την περίπτωσή
l~qIdJ
σ ας πρ ιν σ uνεχί
bδs eό< ·E :fnsI .........,., 1hJ
daleό< ·E : /dala-ρaih/
σ ετε .
leryotJI' have ίnsta!led MySQL ιhe mιalation άrectot.V wiI contarι 4 fiIe; nδI'I'Ied 'my-rnδI.cnf.
"""",edMn.cnI. mj>Iag
Ι
Ι
Ι
Ι __.. .
S lίMq..oeι;",
~~
~
~
ΓIΟΙ""""'''------ Γι""-'''''''''' "'-----:1 jOΙiX:iJl!ιJO
ιIrιtine
ΕΙΚΟΝΑ
15
Q~!obIe,
r0..". """"'-'-
I
- - - - -1i
,O_ """".'_" '
Ι
. j'
"'-'- - - - - -11
0. " ~",. .
. __.Ι ..
. .1
1.9
Π ληροφο ρ ίες γιο την διο μόρ φωση το υ s e rνe r.
WίnM,S Q L"dmin ν .., 1. 4 Ι.., Win95lWin98/N TlWίn20 00 ··-σ·' ··· top~,;ghl (C) 197!1·2DDI MιSO ΙAO Moηl~ p ,o>gr"", "Ο _Det,on ΗΟ . RijI!>Ir.ιiι: Ι Ιο< M~nu oP,;on, ΑΟ ,;ghl' ,~,,,rved. S"" Ih" liIo-pUOLIC[ο, ficenc" inl olllldιiolL ~"==="" ,,,Th;. "'[1";>'0 ~_ ,.;thAEιS IJLU T E L'!' Ν ΙJ WAflRANiΎ, . e e lIιe [~" PUBLIC Ι'" d et~ d~.~=!!:'1:==
Ι .,,.UCQ L ~ , ~ ., ~
.
(} EJii~fo ει..IO'>od6ZO ""
... < Location> , < LocationMatch> - Αυτοί ΟΙ πε ρ ιέκτες επιτρέπουν στκ; ντιρεκτίβες να εφαρ μόζοντα ι σε σ υγκεκρ ιμένες διευθύνσεις URL, ή ομάδ ες διευ θύνσεων URL. Το σκεπτι κό στο οπο ίο βα σίζοντα ι ε ίναι παρόμο ιο με αυτ ό στο ο ποίο βασίζονται Ο Ι αντίστο ιχοι περ ιέκτ ες
Directory... Ο
περl έ κτη ς
LocationMatch δ έχεται
σαν όρ ισμα
μία υποδειγματική έκφρα ση. Για π αράδ ειγμα, η ακόλο υθ η εντολή εντοπ ίζει τους καταλόγους που περι έχουν ε ίτε το
< Files>, < FilesI\ 1atch> . Είναι παρ όμ οιοι μ ε τους περι έκτ ες Di rectory... κα ι
Location ... Ο ι
ε νό τ η τες
Files... ε π ι τρέπ ο υν σικ; ντ ιρ εκτίβ ε ς να εφ αρ μόζοντ α ι
σε συ
γκε κριμ ένα α ρχε ία ή ομάδ ε ς α ρχε ίων .
Οι περι έκτες περι κλε ίουν τις ντ ιρε κτίβες, όπως βλέπετε στην Λίστα ΛΙΠΑ
2.1.
2.1 Περιέκτες και Ντιρεκτίβε ς
1: SomeDi rect i vel 3: Some~ irect~ve2 4: 2:
Οι ντιρεκτίβες
SomeDirective1 και SomeDirective2 του προηγούμενου παραδείγματος θα /www/docs και στου ς υποκαταλόγου ς του. Η ντιρ ε κτίβα SomeDirective3 θα εφαρμόζεται στις διευθύνσεις URL πο υ αναφέρονται σε αρχεία μ ε ε πέκταση .htm l, στον κατάλογο /downloadl. Η SomeDirective4 θα εφαρ μόζεται σε όλα τα αρχε ία με επε κτάσεις .gif ή .jpg. εφαρμ οστ ο ύν στον κατάλογο
Εκτέλεση υπό Όρους Το
Apache υποστηρίζει περι έκτε ς 'εκτέλεση ς υπό όροος" (conditional containers). Οι ντ ι
ρεκτι'βες που πε ριλαμβάνονται σ' αυτούς τους π ερι έ κτες ε κτελούνται μόνο εάν ι κανο πο ι ο ύ ντα ι σ υγκ ε κρ ι μένε ς συ νθ ή κ ες .
8ιΙ-
< lfDefine> - Ο ι ντιρεκτίβε ς που π ε ρ ι λαμ βάνε ι αυτός ο περlέ ΚΤ 'l ς εκ τελού ντα ι εάν περαστεί ένας σογκεκριμ ένος διακόπτης γραμμής εντολή ς στ ο ε κτελέσιμο τ ο υ
Apache. Η ντιρε κτίβα τη ς Λίστας 2.2 θα ε κτελεστε ί μόνο εάν περαστεί ο δι ακόπτ ης -DM yM odule στο δυαδ ι κό αρχείο του Apache που ε κτελε ίτ α ι' Μπορείτ ε να πε ρά σετε αυ τ ή την ντιρε κτίβα απευθείας, ή τροποποιώντας το θα περιγρά ψου μ ε στην ενότητα "Σχε τι ζόμενε ς μ ε το α υτό το κεφάλα ι ο.
script apachectI, όπως
Apache Εντολές" παρακάτω σ '
Μάθετε ΡΗΡ, MySaL και Apache Όλα αε Ένα
39
Οι περι έκτε ς
IfDefine υ ποστηρ ίζουν επ ίση ς το σρνητικό του ορίσματός τους . Δη < lfDefi ne !MyM odule> θα εκτελεστο ύ ν μ όνο εάν δεν έχει περαστείο διακόπτης -DM yM odule σαν όρ ισμα στην γραμμ ή εντολής. Γι α παράδειγμα, εάν δεν περαστεί ο δ ιακόπτης -DSSL, το Apache δεν θα ακ ροάζετα ι την θ ύρα το υ SSL ( σ υ ν ή θ ως η θύ ρα μ ε αρ ι θ μό 443).
λαδή, οι ντιρεκτίβες που περι λα μ βάνονται σε μία ενότητα
~
< lfM odule> - Οι ντιρεκτ ίβε ς που περι έχοντ αι στην ενότ ητα IfM odule ε κτελούνται (module) που περ ιλαμ βάνουν σαν ό ρισμα υ
μ όνο εάν η ρ ουτίνα ή το πρόγραμμα πάρχε ι στον
Web serνe r.
Για ηαρ ά δε ιγμα , το
αρχε ίο παρ αμ έτρων δ ιαμό ρφωση ς μ ε όνομ α
Apache δ ια θ έτ ει
ένα προκαθ ορισμ ένο
httpd .conf, το οπ οίο παρέχει υποστή
ρ ιξη για διάφορ ε ς ρουτίνες ΜΡΜ. Όπ ως βλ έπετε στ ην Λίστα
2.3, θα εφαρ μοστ ούν
μόνο οι παράμετροι δι α μόρφωση ς που ανήκουν στην ρουτίνα Μ ΡΜ που έχει μ ετα
γλωττιστε ί. Ο σκοπός αυτού το υ παραδείγματος ε ίναι να σας δείξε ι ότι θα εφαρ μοστ εί μόνο μ ία από τις ομάδε ς νηρεκτ ϊβων. Λ ΙΠΑ
2.2
Παρ άδειγμα Χρήση ς το υ Π εριέκτη IfDθΙίΠθ
1: 2: Loa~1o du l e ny-rnod u l e modu les / l i bmymod u l e. 50 3 : < /IfDe f ine>
Λ ΙΣΤΑ
1: 2: 3: 4: 5: 6:
2.3
Παρ άδειγ μα Χρήση ς του Περιέκτη
IfModule
Start Se rver s 5 Mi n SpareSe r v e r s 5 10 MaxSpareServ e r s MaxC li ents 20 Ma xRe que stsPerChi ld Ο
7 : < / IfModule> 8:
9: 10 : 11: 12:
Sta r t Servers HaxClients MinSpareTh r e a d s
13 : Ma x Sp a r eThreads
3 8 5 10
14: ThreadsPe r Ch i l d 25 15: HaXRe q u est s Pe r Ch i l d Ο 16: < / I f Mo d ule>
ServerRoot Η ντιρεκτίβα SerνerRoot δέχετ α ι μ όνο ένα όρι σ μα : την διαδρομή
(path) πο υ δείχνει στον
κατάλογο στον οποίο βρίσκεται ο serνe r. Όλες ο ι σχετικές αναφ ορές σε δ ιαδρομ ές κατα λόγων στι ς άλλε ς ντ ιρ εκτίβες αναφέροντα ι σε σχέση μ ε τ ην τιμή της Serνe r Root . Εά ν μετα γλωττ ίασττ το
Apache
από τον πηγα ίο κώδ ικα σε ένα σύστη μα Linu χlU nix, όπως
περ ιγράψαμε παραπάνω σ' αυτό το κεφάλαι ο, η πρ οεπι λεγμ ένη τιμή της ντιρεκτίβας
Serνe rRoot είναι / usr/ local/apache2. Εάν χρησιμοποι ήσατε την ρουτίνα εγκατάστασης για τα Wi ndows, η τιμή της νηρεκηβω; Serνe r Root ε ίνα ι c:\ Program Files\Apache Group .
Μόθιτι ΡΗΡ, M)'SQL κα ι ApJche Όλα σι Ένα
3
Εγκατάσταση και Διαμόρφωση του Apache
40
Αρχεία Διαμόρφωσης ανά Κατάλογο Το
Apache
χρ ησ ιμοποιε ί αρχε ία διαμόρφωσ ης ανά κατ άλογο
(per directory configuratian
fι les) μ ε τα οποία δίνε ι στις ντιρεκτίβες την δυνατότη τα να υπάρχο υ ν έξω από το κύ ρι ο
αρχείο διαμόρφωσης httΡd.cοnf.Αυτάτα ειδικάαρχείαμπορούννα τοποθετούντο ι σΤΟΕ πίπεδο του συστή ματος αρχείων. Το Apache ε πεξεργάζετα ι και εκτελε ί το περ ι εχόμε νο αυτών των αρχείων, εάν ζητηθεί ένα έγγραφο από έναν κατάλογο στον οπο ίο περ ιέχε τα ι ένα τέτοιο αρχείο ή οποιονδή ποτε από τους υποκαταλόγο υ ς του. Εάν υπάρχουν αρχεία διαμόρφωσης σε περισσότερους από έναν καταλόγους της δ ιαδρομ ής, το περι εχόμενό το υς ουγχωνευεται κα ι εφαρμόζεται . Για παράδει γμα, εάν το Apache λάβει μία αίτηση για το αρχείο /us riIocal/apac he2!htdocs/i n d eχ . htm l , θα ψάξε ι γι α αρχεία δι αμόρφωσης στους καταλόγους /, / usr, /usrIIocal, / usr/local/apache2 κα ι / usr/local/apache2/htdocs, μ ' αυτή την σειρά .
Η ενεργοπο ίη σ η των αρχείων διαμόρφωσης ανά κατάλογο έχε ι αρνητι κή επ ίδραση στην απόδοση. Το
Apache
είναι υποχρεωμένο να ε κτελε ί "δαπαν η ρ ές' λειτο υργίες αναζήτ ησης
αυτών των αρχείων σε κά θε αύη ση πο υ λαμ βάνει , ακό μ η κ ι αν δεν υπ άρ χο υν.
Εξ ορισμού, τα αρχεία διαμόρφωσης ανά κατάλογο φέρουν το όνομα
.htaccess. Αυτό γίνε
ται για ιστο ρ ι κο ύς λόγου ς τα αρχε ία αυτά χρησιμοποιούνταν αρχικά για τον έλεΥχΟ της πρόσβασης στους καταλόγους που π ερι είχαν ΗΤΜL αρχεία . Η ντιρε κτίβα
AccessFiIeName σας επιτρέπε ι να αλλάξετε το όνο μα των αρχε ίων δ ι αμόρ .htaccess σε κάτι άλλο. Δέχεται μ ία λίστα ον ομάτων αρχε ίων, τα οποία θα χρησιμο ποιε ί το Apache όταν αναζη τά αρχε ία διαμόρφωσης σε συγκεκρ ιμένο υς καταλό φωσης από
γους .
Για να εξακριβώσετε εάν μία ντιρεκτίβα μπορε ί να χρησιμοπσι ηθεί σε αρχεία διαμόρφω σης ανά κατάλογο, ελέγξτε εάν το πεδίο Co nteχt : στον ορισμό της ντιρε κτίβας περι έχει το
.htaccess. Ο ι ντιρ εκτίβες το υ Apache κατηγορι οποι ούντα ι σε διαφορετι κές ομάδες, ο ι οποίες καθο ρίζοντα ι στο πεδίο Override. Πι θανές τιμές γι ' αυ τό το π εδ ίο είνα ι : ~
AuιhConfig
~
Fileinfo - Ντιρε κ τίβες που ελέΥχου ν τ ο υς τύπους εγγράφων indexes - Ντιρεκτίβες πο υ ελέΥχου ν τα ευρετ ήρ ι α καταλόγων
~
- Ν τ ιρ ε κτ ίβ ες
~
Limit - Ντ ιρε κτίβες
~
O ptions -
ε ξο υ σ ιοδό τ ησης
(authorization)
που ελ έΥχουν την πρόσβαση σε υπολογι στές
Ντιρεκτίβες που ελέΥχουν συγκε κριμ ένα χαρακτ ηρι στι κά των καταλό-
γων
Μπορείτε να καθορίσε τε πο ιες από τις παραπάνω ομάδες ντιρεκτίβων μπο ρού ν να εμ
φανι"ζοντα ι σε αρχεία διαμόρφωσης ανά κατάλογο χρησιμ οποιώντας την ντιρεκτίβα
AllowOverride. Δύο επιπλέον ορ ίσματα της ντιρε κτίβας AllowOverride ε ίναι τα ΑΙ Ι και None . Το ΑΙΙ σημαίνει ότι όλε ς οι ντιρεκτίβες, απ' όλε ς τι ς ομ άδες , μπο ρούν να ε μ φ ανίζο ντα ι στο αρχε ίο δ ιαμόρ φωσης . Το None ουσιαστ ι κά απενεργσπο ιε ί τα αρχεία δι α μόρφω σης ανά κατάλογο για έναν ουγκεκρ φενο κατάλογο και οπο ιονδήποτε από τους υποκαταλόγους του .
Μ άθετε ΡΗΡ, MySQL και Apache Όλα αε Ένα
Η Λίστα
41
παρουσ ιάζει τον τρόπο με τον οποίο μπορε ίτε να απενεργοποι ήσετε τα αρ
2.4
χε ία παραμέτρων δι αμόρφωσ ης ανά κατάλογο συνολικά για τον serνer . Η κατάσταση αυ τή βελτιώνει την απόδοση και είναι η τιρο καθορισμεν η διαμόρφωσ η του ΛΙΠΑ
2.4
Apache .
Απενεργοπ οίη ση των Αρχείων Διαμόρφωσης ανά Κατάλογο
1: .
2: Al l owOverr i de 3:
ΩΟ Ω θ
Τα Αρχεία Καταγραφήςτου
Apache
Εξ ορι σμού, το Apache περι λαμβάνει δύο α ρχεία καταγραφής
- 1
Ε μφανίζε ι μ ία λίστα των μεταγλωπισμένω ν ρ ο υτινών
-ν
Ε μφανίζε ι τον αρ ιθμό έκ δο σης και τον χρόνο μεταγλώπιση ς το υ se rνer Σας επ ιτρέπει να περά σετε σαν π αράμετρο την θέση τ ο υ αρχείο υ
- f
httpd.conf, εάν είναι διαφορετική από την θέση πο υ ίσχυε κστά τον χρόνο μεταγλώτnσης
Οταν το
Apache βρίσκεται σε λειτο υργία, μπορε ίτε να χρησιμοποιήσετε τη ν εντολή kiII
στο Ιίπυ Χ/υ π ίχ για να στε ίλετε σήματα στην πατρική δ ιεργασία του
Apache. Τα
σή ματα
σας παρ έχουν έναν μη χανισμό για να στέλνετε εντολές σε μ ία δ ιεργασία. Γ ι α να στε ίλετε ένα σ ή μα, εκτελέστε την α κόλουθη εντολή :
# ki l l
~ S I G NA L
pid
Μάθετε ΡΗΡ, MySQL και Apache Όλα σε Ένα
όπο υ το
pid είνα ι ο κωδι κός δ ιεργασ ίας και
43
το SIGNAL μπορεί να είναι ένα από τα ακόλου
θα:
~ ~
HUP - Τερματισμός τη ς λε ιτουργία ς του server USRl ή WINCH - Επανε κ κίνη οη χωρίς αρνητικ έ ς επι πτώ σε ις το σή μ α που πρ έπε ι να χρ η σιμ οπο ι ήσετε εξαρ τάτα ι από το υποκείμ ε νο λειτουργι κό σύστη μα
~
SIGHU P -
Επ ανε κκίνη ση
Εάν κάνετε αλλαγές στα αρχεία δια μόρφωσης και θέλετε να τεθούν σε ισχύ θα πρ έπει να στείλετε ένα σή μα στο
Apache
για να το ενη μ ερώσετε ότι έχο υν αλλάξει ο/ παρά μ ετ ροι
διαμόρφωσης . Αυτό μπορείτε να το κάνετε τερματι'ζοντας και κατόπι ν επανε κ κινώντας τη ν λειτουργία του serνe Γ, ή στέλνοντας ένα σήμα επανεκκίν ησης. Το σήμα αυτό λέε ι στο
Apache να ξαναδιαβάσει τ α αρχεία παραμέτρων δια μόρφωσης . Η κανονι κή επανε κκίνησ η μπορεί να έχει σ αν αποτέλεσμ α μία προσωρινή , μ ικρής διάρ κεκ«; παύ ση της υπηρεσίας. Η επανεκκίνηση χωρίς αρ ν η τ ι κό; επιπτώ σεις ακολουθε ί δ ια φορετική προσέγγιση . Κάθε νή μα
(t hread) ή διεργασ ία (process) που εξυ πη ρε τε ί ένα client
σύστη μα θα συνεχίσει την διεκπερα ίωση της τρέχο υσας αίτησης, αλλά όταν τελειώσει θα τερ μ ατιστεί και θα αντι κατασταθε ί από ένα νέο νή μα ή μ ία νέα δι εργασία μ ε τ ην νέα δια μόρφωση . Αυτό επι τρέπει την απρόσκοπτ η λει τουργία του Web serνe Γ, μη δενίζοντα ς τον χρόνο πο υ τ ίθεται εκτός λε ιτουργίας. Στα Windows, μπορείτε να στέλνετε σή μ ατα στο Apache χρησιμοποιώντας το εκτελέσιμο apache.exe:
.... apache.exe -k restart -
Ε πανεκκίν ηση του
Apache
~
apache.exe-k graceful - Επανεκκίνηση χωρίς αρνητικό; επι πτώσεις
~
apaC!1e.eXe -k stop - Τερματισμ ός της λειτουργκκ του Apache
Μπορείτε να χρ η σιμ οπο ι ε ίτε τις συντομ ε ύσ εκ; που δημι ούργησε γ ι' α υτές τι ς εντολ ές στο μ ενού
Start ο οδηγός εγκατάσταση ς τ ο υ Apache. Εάν εγκαταστ ήσατε το Apache σαν μία
υ~
πηρεσία, μπο ρείτε να εκκ ινείτε ή να τερματίζετε τ ην λειτουργία του χρησ ιμοποιώντας τα
εργαλε ία που δι αθέτουν τα ίδια τα Windows: από το Co ntro l Panel επιλέξτε Administrative κατόπιν κάντε κλικ στο ε ικονιδιο S eιvices .
Tasks και
Το Script ΕλέΥΧου του Apache Αν και μπορείτε να ελέγχετε το Apache σε ένα σύστ η μα
linuxlUnix χρησηωηο ιωντω; το ε
κτελέσιμο αρχε ίο httpd, σας συνιστο ύμε να χρη σιμοποιε ίτε το εργαλε ίο apacheetl. Το apachectl ενσωματώνει κοινές, χρήσιμες λε ιτου ργίες σε ένα εύχρηστο script. Για να χρησι μοπ οι ήσε τε το apachectl, ε ι σάγε τε το
# / u s r/ local/ apa c he 2/bi n/ a pa c hect l
εντολn
όπο υ στ ην θέση του ορίσμ ατος εντολή μπορε ίτε να χρησιμοπο ιήσετε ένα από τα
stop, start, restart, ή gracefuι. Μπορείτε επίσης να τροποποι ήσετε τα περιεχόμενα του script apachectl εάν θέλετε να πρσσθέσετε επιπλέον επ ιλογές γραμ μ ής εvτoλής. Οι διανομές του Apache γι α ορισμένα λειτουργι κά συστή ματα περ ιλαμβάνουν επιπλέον scripts για τον έλεγχο του server· για περισσότερες πληρσφορ ίε ς ανατρέξτε στο υλικό τεκ μη ρίωση ς της δ ι κής σας εκδοσηξ.
44
Εγκατάσταση και Διαμόρφωση του Apache
Εκκίνηση του π ριν εκκινήσετε το
Apache για Πρώτη Φορά
Apache
θα πρέπει να βεβαιωθείτε ότι υπάρχουν ΟΙ ελάχιστες ατιαι
τούμενες παράμ ετροι οτο αρχείο διαμόρφωσης του Apache, httpd.conf. Στις ακόλουθες ε νότητες
θα
περ ι γ ράψουμε
τις
β ασ ικ ές
πλ ηροφορ ίες
που
απ αιτούνται
γι α
την
δ ια μόρφωοη του Apache και την διαδικασία ε κ κίνηση ς του server.
Έλεγχος του Αρχείου Διαμόρφωσης Μπορείτε να ανοίξετε και να τροποποιήσετε το αρχε ίο httpd.conf του Apache χρησιμο ποι ώντας τον αγαπημένο σας συντάκτη κειμένων. Σε ένα σύστ η μα Ιίn υ Χ!υn ίχ, τιι θσνοτα τα θα χρησιμοποι είτε έναν από τους συντάκτες νί ή
Στα
emacs.
Windows
μπορ ε ίτε να
χρησιμοπο ι ήσετε το Notepad ή τ ο Word Pad. Π ρ οφα νώ ς θαπρέη ε ι να απ οθηκε ύετε τ ο αρχείο παραμ έτρων δια μόρ φωσης σε μ ορφή απλ ού κε ιμ ένο υ νοεί το
- τη ν μόνη μορφή που
κατα
Apache.
Υπάρχουν μόνο δύο παράμ ετροι τι ς οποίε ς ίσως χρειαστε ί να αλλάξετε για να μ πορέσετε να ε κ κι ν ήσετε το
Apache
γι α πρώτ η φορά : το όνομ α τ ο υ
se rver, κα ι
τη δ ιε ύθ υνσ η και τη
θ ύ ρ α τη ν οπο ία α κρ οά ζε τα ι . Το όνομ α του se rνe r ε ίνα ι α υ τό π ο υ θ α χρ ησ ι μ οπο ιή σε ι το
Apache όταν θα χρειαστεί να αναφερθεί στον εαυτό του (για παράδειγμα, κατά την ανα κατεύθυνσ η αι τήσεων) .
Συνήθως το Apache μπο ρε ί να εξακρ ι βώσει το όνο μα server απ ό την διεύθυνση Ι Ρ του υ πολογι στ ή, αλλά αυ τό δε ν συμβαίνει πάντα. Εάν ο
serve r δεν
έχε ι έγκυρο όνομ α
domain,
ίσως χρ ειαστεί να καθορίσετε μία απ ό τι ς διε υθύνσε ι ς ΙΡ το υ υπολογιστή. Εάν ο se rνe r δεν συνδέετα ι σε ένα δίκτυο (π .χ. εάν θε'λετε να δοκιμάσετε το Apache σε έναν αυ τόνομο υπο λογιστή) , μπορείτε να χρη σιμοποι ήσετε την δ ιεύ θυνση ΙΡ 127 .0.0.1 (διε ύθ υνση loopback). Η προε πιλεγμένη θύρα είνα ι η θ ύρα 80. Ίσως χρ ειαστεί να αλλά ξετε αυ τή την τιμή εάν τρέχει ήδη ένας server στον ίδ ιο υπολογιστή ο οποίος ακροάζεται την θύρα 80, ή εάν δεν
έχετε δικα ιώματα επόπτη - σε σύστήματα lίπυχ/υπ ίχ μόνο ο χρήστη ς root μπορεί να συν δ έε ται στι ς " π ρ ονο μ ι ο ύχε ς" θ ύ ρ ες ( ο ι θ ύ ρες μ ε α ρ ιθ μούς μι κρ ότ ερ ου ς από 1024 ).
Μ π ο ρ ε ίτ ε να αλλάξετε τόσο τη ν δ ι ε ύ θ υνση α κρόαση ς, όσο κα ι τον αρ ι θ μό θ ύ ρα ς με την ντιρεκτίβα lί st e n . Η ντιρ εκτίβα lί s te n δέχετα ι σαν όρ ισ μα είτε έναν αρ ι θ μό θύρας, ε ίτε μία
διεύθυνσ η Ι Ρ και έναν αριθ μό θύ ρας, τα οποία χωρίζονται μ εταξύ το υς μ ε ένα ελλη ν ικό ε
ρωτηματι κό . Εάν καθορι στεί μόνο ο αρ ιθμ ός θύ ρας, το Apache θα ακροάζεται α υτή την θύρα σε όλες τι ς δι αθέσιμ ες διευ θύνσεις Ι Ρ το υ συγκ εκρ ιμ ένου υ πολογι στ ή . Εάν καθορι στε ί επίσ ης η διεύθυνσ η Ι Ρ, το Apache θα α κροάζεται μ όνο τον συγκεκριμ ένο συνδ υα σ μ ό δι εύθυνση; και θύρας. Για πα ράδειγμα, η ντιρ εκτίβα lί st en 80 λέει στο Apache να ακροά ζεται για α ι τήσε ι ς την θύρα 80 όλων των δι αθέσ ιμων δ ι ευθύνσεων ΙΡ. Η ντ ιρεκτίβα Lί st en 10 .0.0.1:443 λέει στο Apache να ακροά ζεται για αιτ ήσεις μ 6νο τη ν θύ ρα 443 στην δ ιε ύ θυν ση
10.0.0.1.
Η ντιρεκτίβα
ServerName σας επιτρέπει
να καθο ρίσετε το όνομα που θα παρέχει ο serνe r
γι α τον εαυ τό το υ σε οποι εσδήποτε δ ιε υθύνσε ις ντιρ εκτίβα αυ τ ή δέχεται δύο ορ ίσματ α
URL αναφ έρονται στον ίδ ι ο τον se rver. Η - ένα όνο μα domain και πρ οα ιρετι κά μ ία θύ ρα - τα
οποία χωρίζοντα ι μ ε μία άνω- κάτω τελε ία . Βεβα ι ωθε ίτε ό τι η ντιρεκτίβα SerνerName έχει έγκυρ η τ ιμή ' αλλ ιώς, ο server δεν θα λει τουργεί σωστά (γι α παράδειγμα, θα εκτελείλανΘα σ μ ένε ς ανα κατε υθύ νσε ις ) ,
Μάθετε ΡΗΡ, MySQL και Apache Όλα σε Ένα
45
Σε πλατφό ρμες Ιίπ υΧ!υ π ίχ μπορείτε να χρησ ιμοπ οιε ίτε τις ντιρεκτίβ ες Use r και Group για να καθορίζετε την ταυτότ ητα μ ε την οποία θα τρέχει ο serνer (χρ ήστης και ομάδα) . Ο χρήστη ς nob ody είναι μία καλή επ ιλογή για τι ς π ερισσ ότ ερε ς πλατφό ρ μ ε ς. Ωστόσο , επει δή στα συστή μα τα HP-UX υπά ρχουν κάποια προβλήμα τα μ ' α υτό το όνομ α χρήστη , θα πρέπει να δημιου ργήσετε και να χρ ησιμοποι ήσετε έναν δ ι αφορε τι κό χ ρήστ η, όπως π. χ. ο νννννν.
Εκκίνη ση του
Apache
Γι α να ε κκ ινήσετε το περιέχει το
Apache σε ένα σύστη μα Lί π υχJυ nίχ , μεταβείτε script apachecti και εκτελέστε την α κόλουθη εντολή :
στον κατάλογο που
i / us r/ l o c a l/ a pa che 2/b i n/ a pa che c tl start Γι α να ε κκ ινή σετε το Apache στα Windows , κάντε κλ ικ στη ν σύνδεση Sta rt Apache ί η Conso le, στην ενότητα Control Apache Se rνe r τ ης ομ άδας προγρα μ μ άτων Apache ΗΠΡ Server 2.0.47, στο μ ε νο ύ Start. Εάν έχετ ε εγ κα τα στ ή σε ι τ ο Apache σαν μία υ π ηρεσία, θα πρέπει να ακ ολουθήσετ ε διαφορεηκή μ έθοδο την υπη ρεσία
- συγκ εκριμ ένα , θα πρέπε ι να εκκ ι νήσε τε
Apache.
Εάν η δ ιαδι κασία ε ξελι χθε ί ομαλά, μπορε ίτε να προσπελάσετε το ντας μία εφαρμογή ζεται στην Ε ι κόνα
browser. Θα
Apache
χρησιμοποιώ
εμφανιστεί η προεπι λεγμένη σελίδα, η οποία παρουσιά
2.6. Εάν δ εν μπο ρε ίτε να εκκι νή σετε τον Web serνe r, ή εάν εμφανιστεί
ένα μ ήνυμα σφάλματος αντί της προεπιλεγμ ένης σελίΟας, ανατρέξτε στην ενότητα αντι μετώπιση ς προβλη μάτων που ακολουθε ί για υποδει'ξεις. Βε βαιωθείτε ότι προσπελάζετε το Apache σε μ ία από τι ς θύρετ; που έχετε καθορίσει στην ντ ιρε κτ ίβα Listen - συνή θως μία από τι ς θύρες ΕΙ ΚΟ ΝΑ
Apache.
ή
8080.
-
2.6
Η πρ οεπιλεγ μένη
σελίδα του
80
' Ρ.,
ΕdΙ:
~_
F....,.J:..
' loolι
Η.ς,
,.. - .. . 1:>""1] i'.:I T~ -~_- :~ ~!(It\ - ~. .;ft:;Γi!;~~ ~. H~ S«F~" ~eάb - ff~ -_~ __ ~
'"
~
,j ;.: •.0' =_
ΞJ ?6;-
r Joυ e.n ΙΗ IlΙΙι • • means I~ the ίnstilf~: OI'I σfι,," "'.Φ: W!!II SI!'19f s.ctwit. 01'1, ,,",. $lstlm 'ΜΙΙ Iιιtcessii. "''''' m., nOW
add contef't τα Ihι$ Θo"mDr)' and ",.~ tπό'I p;ι~.
Seeing th is instead
ο,
the we bsite you ex pected?
This p;.ge is ΙΙθΙ. b. ~."se \he $.ίΙι .d"""Ι 51Citor hiS changed ΙΙΙι cαtιSgι.ιr,tίon οΙιΙΙ;ι wεoo ΙΙΜ!' ΡΙι.sβ COIIla et 1ΙΙι ρ ιι,..,π ,""'Ι'ο""ί οl ιlοl m"I"I ..in;ng Ihis ... ' "ι' wilh qu lOSlions. ΤΜ. Aρ a ch I Sattw.,. Faund.t,αn , whlch ""οι . the .... b ιθ rνe Γ so1lνrire ΙΙΙί •• itl .σΩΙίηίSlΙ.l σ. ίs usiπg , nl " nDthing 10 do wιIII m.'fI! aining this s ίΙ. ιπσ ",πηο! ΙΙθlρ '.I Om. C a n~9 ~ r.t ion i55U• • i ... ΤΙΙι Aρache ~
h•• b. , n ,ncluded wrth ΙΙΙίs
όistribution
.. .:.
46
Εγκατάσταση και Διαμόρφωση ταυ Apache
Αντιμετώπιση Προβλημάτων Στις ακόλουθ ες ενότητε ς θα περιγρ άψουμ ε αρκετά κο ινά προβλήματ α, τα οποία μπο ρε ί να συνα ντ ήσ ετε τ ην πρ ώτη φορά που εκκινείτε τ ο
Υπάρχει Ήδη ένας
Web Server
Apache.
στο Σύστημα
Εάν τ ρέχε ι ήδη ένας serνer στον ίδιο υπολογιστή και ακροάζεται τον ίδ ιο συνδυασμό διε ύ θ υνοης Ι Ρ και θύ ρας, το Apache δε ν θα μπορέσει να εκκι νήσει επ ιτυχώς. Σ' αυτή τ ην περί πτωση θα δη μιο υργηθε ί μ ία κατοχώρι ση σ το αρχείο καταγραφής σφαλμ άτων η οποία υποδεικνύει ότι το
Apache δεν
(error Iog)
μπορεί να συνδεθε ί σ ' αυτή την θύρα:
(crit] (48 )Address a l r eady in use : make-soc k: could not bind to " a dd r e s s 10. Ο . Ο . 2: 80 [ale rt] πσ listening soc kets a va i labl e . shutting down Γιο να λύσετε αυτό το πρόβλημα θα πρέπει να τερματίσετε την λειτουργία του άλλου Apache ώστε να ακροάζεται μία διαφορετική
serνer, ή να αλλάξετε την δια μόρφωσ η του θ ύρα.
Δεν Υπάρχουν τα Κατάλληλα Δικαιώματα γ ι α την Σύνδεση στην Θύρα Θα πάρετε ένα μήνυμα σφάλματος εάν δεν έχε τε δ ικαιώματα επόπτ η και επιχε ιρήσετε να συ νδεθείτε σε μια 'προνομ ιούχα' θύ ρα (μ ία θ ύ ρα μ ε αρ ιθμό μ εταξύ Ο και
1024):
(c r it ] (13 ) Per~is$io n de nied: make_sock: cou ld not bir.d to addr ess 10 . (ale rt j ΩΟ li s t eni ng so c ke ts ava ilable , s hut ting down
Ο.
0.2: 80
Για να λύσετ ε αυτό το πρό βλ η μα θα πρ έπε ι ε ίτε να συνδεθείτε σαν ε πόπτ ης π ρι ν εκκ ινή σετε το
Apache,
ε ίτε να αλλάξετε τον αρι θμό θύρας ( μ ία κοινά χρ ησ ιμ οπο ιο ύ μ ε νη
μη-πρ ονομι ο ύ χα θύρα είνα ι η
8080 ).
Απαγορεύεται η Πρόσβαση Μπορ εί να μ ην έχετε την δυνα τότητα να ε κ κινή σετε το Apache εάν δεν έχετ ε δ ικαίωμ α α νάγνωσης των αρχείων δ ιαμόρφωσης, ή δ ικαίωμ α εγγραφ ής στα αρχεία καταγραφ ής. Σ' αυτές τι ς πε ριπτώσει ς θα πα ίρνετ ε ένα μήνυμα σφάλματο ς παρόμοι ο με το ακόλουθο :
( 13) Permi ss i on de nied: httpd: c ould no t ope n error 10g f i le .. / us r/ l oc a l/ apa c he 2/1 ogs/ e r r o r _ l og. Το πρόβλημ α αυτό μπορεί να προκύψει ε άν με ταγλωττίσατε και εγ καταστήσατε το
Apache με διαφορετικό όνομα χρήστ η από αυτό πο υ χρ ησιμο ποιήσατε για να το τρέξετε.
Μάθετε ΡΗ Ρ, MySQL και Apache Όλα αε Ένα
47
Λανθασμένες Ρυθμίσε ις Ομάδας Μπο ρείτε να δ ιαμορφώσετε το Apache ώστε να τρέχε ι με ένα συγκεκριμένο όνο μα χρήστη
και ομάδα . Το Apache έχει προεπιλεγμένες τιμές για το όνομα χρήστη και την ομάδα. Σε ο ρ ισμ ένες περι πτώσε ις η προεπιλεγμ ένη τιμή δ εν είναι έγκυρη, και εμφανίζεται ένα μήνυ μα σφάλματος το οποίο αναφέρε ι το setgid: unable 10 set group id. Γι α να λ ύσε τε αυ τό το πρόβλη μα στο Lίπυx/υ nίx, πρέπει να αλλάξετε την νηρτκηβα
Group σε μ ία έγκ υ ρ η τιμή στο αρχε ίο διαμόρ φωσης . Γι α να εξακρι βώσετε τις υπάρχου σες ομ άδες μπορ είτε να ελ έγξετε το αρχε ίο /etc/groups.
Ανασκόπηση Σ' αυτό το κεφάλαιο μάθατε διάφορους τρόπους μ ε τους οπο ίους μ πορείτε να εγκατα στήσετε τον
Apache 2.0
serνer σε έναν υπολογιστή με λε ιτο υργικό σύστη μα Lίπ υχ/υ π ίχ ή
Win dow s. Καλύψαμ ε την διαδικασία εγκ ατάστα σ ης τόσο από τα δυαδ ικά αρχε ία όσο και από το ν πηγαίο κώδ ικα και εξηγή σαμε τις βασ ι κές επιλογές μ εταγλώ ττι σης . Επι πλέον,
μ άθατε την θέσ η των αρχείων διαμόρφωσης το υ
se rver και
την σύνταξη Τα/ν εντολών Apache. Γνωρ ίσατε επίση ς τα δύο βασικά αρχεία καταγραφής· access_Iog και error_Iog. Τέλος, μ ά θατε πώ ς να ε κ κ ι νείτε και να τερματι'ζετε την λει τουργία τ ου serνer χρη σιμοπο ι ώντας scripts ελέΎΧου ή το εκτελέσιμο αρχείο του Apache σε συστήματα Linuχ/Unix ή Windows. που χρη σιμ οπο ιούνται για την αλλαγή της διαμ όρφ ωση ς του
48
Εγκατάσταση και Διαμόρφωση ταυ
Apache
Ε&Α Ε Πώς μπορώ να ξΕΚινήσω από την αρχή
- από τον πη γαίο
κώδικα;
Α Εάν θε'λετε να μεταγλωττίσετε μ ία νέα έκδοση του Apache από τον πηγα ίο κώδικα, και δεν θέλετε το αποτε'λεσμα των π ρο ηγού μενων μ ετ αγλωττίσεων να επηρεάσε ι την νέα σας προσπάθει α, καλή ιδέα ε ίναι να εκτελέσετε την εντολή make c lean. Η εντολή αυτή φροντίζει για τ ην εκκαθάρι ση οποι ωνδήποτε υπαρχόντων δυαδικών αρχε ίων, ενδ ιά μεσων object αρχείων, κλπ . Ε Γιατί είναι χρήσιμα τα αρχεία διαμόρφ ωσης α νά κατάλογο; Α Αν και τα α ρχε ία δι α μόρ φωσης ανά κατάλογο έχου ν αρνη τ ι κ ή επ ίδρ αση στην από δοση του
server, μπορού ν να αποδειχθούν χρή σιμα γι α τ ην μ ετα βίβα σ η αρ μοδιοτ ή
των δι αχείρ ι σ η ς. Επε ιδή τα αρχεία διαμ ό ρφωσης ανά κα τάλογο δι αβά ζονται κάθε φορά που γίνε ται μία αίτη ση, δεν είναι απαραίτητο να επανε κ κι νε ίτε τον se γve r
όταν γίνετα ι μία αλλαγή στην διαμόρφωση . Μπορείτε να δίνετε στου ς χρήστες του
Web site σας
την δυ νατότ ητα να κάνουν
μόνοι τους αλλαγές στη ν δ ιαμόρφωση, χωρίς να τους παραχωρή σετε δ ικαιώ ματα επόπτη. Μ ' αυτό τον τρόπο θα μ πορούσαν για παράδε ιγμα να προστατεύουν μ ε κωδι κό πρόσβασ ης συγκεκρ ιμένες ενότητες των ιστοσελίδων του ς . Ε Τι σημ αίνει έγκυρη τιμή σιην ντιρεκτίβα Α Το σ ύστημα
ServerName;
DNS χρη σιμοπο ιείται για τον ουοχεησρ ο τ ων αρ ιθ ρ ητ ι κων διευθύ νσε
ων Ι Ρ με τ α ονόματα
domain.
όταν ο
μ ία δι εύ θυνση
server παράγει
Η Τιμ ή τ ης ντ ιρεκτίβα ς
ServerName
URL. Εάν χρ η σιμοποιείτε
επ ι στρέφετα ι
ένα συγκε κρ ιμένο ό
νομ α domain θα πρέπε ι να διασφ αλίσ ετε ότr πε ρ ι λα μ β άνε τα ι στο σύ στη μ α DN S κα ι θα είνα ι διαθέσιμ ο στα clίe nt συσ τή μ α τα π ο υ επισ κέπτ οντα ι το site σας .
Πρακτική Εξάσκηση Ο ι ερ ωτ ήσεις κα ι ο ι δραστηρ ιότητες αυτής της ενότ η τας θα σας βο ηθήσουν να ελέγξετε και να αφομο ιώσετε καλύτερ α τι ς γνωοεκ που αποκτήσατε σ' αυτό το κε φάλα ι ο.
Ε ρ ωτή σε ις 1.
Πώς μπορείτε να καθορίσετε τ ην θέση στην οποία θέλετε να εγκαταστήσετε το
Apache; 2. Πο ιο είναι η βασική διαφο ρά μεταξύ των ενοτ ή των < Location> και < Directory> ;
3.
Πο ια είναι η διαφορά μετ αξύ τ ης επανεκκίνησης κα ι της επανεκκίνησης χωρίς αρ νητι κές επι πτώσεις;
Μάθετε ΡΗΡ, MySQL και Apache Όλα σε Ένα
49
Απαντήσεις 1.
Οι χρήστες συστη μάτων Lί π υΧ/υ π ί χ μπορούν να χρ ησιμοπο ι ούν την επιλογή Εάν υπάρχει ή δη μ ια εγκατάσταση σ' αυτ ή τη ν θέση , τα αρχε ία δ ιαμόρφωσης θα διατηρ ηθούν, αλλά τα δυαδι κά αρ χε ία θα αντικατα στα θούν . Στα Windows, η θέση εγκατάστασ ης καθ ορίζετ αι στα βήματα το υ οδ η
--prefix του script co nfigure.
γού εγ κατάστασ ης .
2.
Ο ι ενότ η τες
Directory... αναφέροντα ι σε αντικε ίμενα το υ σ υστ ή ματος αρχείων' Ο Ι location... αναφέροντα ι σε στο ιχε ία τα ο πο ία ε μ φανίζονται στ ην γραμ μή διευθύνσεων της ιστοσελίδας (αποκαλούνται URt). ενότητες
3. Κατά τη ν κανονική επανεκκίνησ η, η λε ιτου ργία το υ server δ ιακόπτετα ι και κατόπι v επανε κ κινε ί,
πράγμ α
το
οποίο
μπορε ί
να
έχει
σαν
απο τέλεσμα
την
μη- ε ξυπηρέτη ση ορ ισμένων αι τήσεων. Η εηανεκκ ινη ση χωρκ αρν ητικό; επιπτώ σει ς εηιτρεηε ι στις θυγατρ ικές διεργασίες του
Apache να
συνεχίσουν να εξ υ π ηρε
το ύ ν τι ς τ ρ έχο υ σε ς αιτή σε ις μέχρι να μ πορέσουν να αντικατασταθο ύν α πό
θυγατρ ικές διεργασίες, οι οπο ίες τρέχουν μ ε τη ν νέα δ ιαμόρφωση .
Δραστηριότητες 1.
Εξασκηθε ιτε στου ς διάφορους τ ύπους δι α δι κα σι ών τερ ματισμού λε ι το υ ργκκ; και ε π αν εκ κίνη σ η ς του
2.
server.
Κάντε ορ ισμένες αλλαγές στ η ν δια μόρφωσ η τ ο υ
κρόασης ή τη ν τι μή της ν τιρε κτίβας
serve r - π . χ . ServerName .
αλλάξτε τη ν θύρα α
ΚΕΦΑΛΑΙΟ
3
Εγκατάσταση και Διαμόρφωση της ΡΗΡ Στο τ ελευταίο από τα τρ ία κεφάλαια του βι βλίου π ου ασχολο ύντα ι με θ έματα εγκατά
στασης θα παρουσιάσο υ με αναλυτι κά την διαδ ι κασία εγκατάστασης κα ι διαμόρφωσης τη ς ΡΗΡ, καθώς και ορισ μένες αλλαγές που πρ έπε ι να γίνουν στη ν εγκατάσταση του Apache. Συγκε κριμ ένα, σ' αυ τό το κ εφάλαι ο θα ασχοληθούμε με τα ακόλουθα: ~
Εγκατ άσταση τη ς ΡΗΡ μ ε τ ο
Apac he
σε συ σ τή ματα lίnux/Uni x
.... Εγκατά στασ η της ΡΗΡ μ ε τον Apache server σε συστή ματα με τα Windows ~
Έλεγχος της εγ κατάστασης της ΡΗ Ρ
~
Εύρ εση πληροφοριών β οήθειας
~
Τα βασι κά στοιχεία τη ς γλώσσας ΡΗΡ
Η Τρέχουσα κα ι οι Μελλοντικές Εκδόσεις της ΡΗΡ Ο ι οδ ηγίες εγ κατάσταση; πο υ παρουσι ά ζοντ αι σ' αυτό το κεφάλ αιο αντι στοιχο ύ ν στη ν
έκδοση 4.3.3, η οποία είναι η τρέχουσα έ κδοση "ηαραγωγήξ" αυτού του λογισμ ικού . Η ο μάδα της ΡΗ Ρ ( ΡΗ Ρ Grou p) χρη σιμοποιεί αρ ιθμούς "δευτερε ύουσας έκδοσης" (το δεύτερο "3" στ ην περ ίπτωσή μ ας) για να χαρα κτηρίσει τκ; ενημερ ώσε ις της κύ ριας έκδοσ ης του λο γισμ ι κού (το "4.3" στην πε ρίπτωσή μ ας) που περιέχουν σχετιζόμενο; με την ασφάλε ια βελτι ώσει ς ή δ ιορθώσεις σφαλμάτων. Οι δευτερεύου σες εκδόσεις δεν κυκλοφορούν βάσει καθο ρ ισμένου χρονοδ ιαγρ άμ ματος όταν πρ οστίθεντ αι β ελτι ώσει ς ή δ ιορθώσεις στον κώ δικα - και αφού ελεγχθούν σχολαστι κά - η ομάδα τ ης ΡΗΡ κυ κλοφο ρ ε ί μ ία νέα έκδοση τ ου λογι σμικο ύ με νέο αριθμό δευτερεύουσας έκδοσης . Τη στιγμή πο υ θα δ ια βάζετε εσεκ; αυτό το βι βλίο είνα ι πο λύ πιθανό να έχει αλλάξει ο αριθ μό ς δευτερε ύ ου σας έκδοσης, σε
4.3.4
ή ακόμη περι σσ ό τερ ο. Σ' αυτή τ η ν περ ίπτωση, θα
π ρ έπ ει να δ ιαβάσε τε τ η ν λίστα των αλλαγών που έχουν γ ίνει στην δ ική σας έ κδ οσ η, την ο
πο ία θα βρε ίτε στην διε ύ θυνση τε
γ ια
οπο ιεσδ ήποτε
http ://WW\v.php.net/ChangeLog-4.php. για
αλλαγές
απαιτούνται
σ την
διαδικασία
να ενημερωθε ί
εγ κα τάστασ ης
ή
δια μόρφωσης, η οποία αποτελεί και το κύριο θέ μ α αυτού το υ κεφαλαίου. Αν και ε ίνα ι μ άλλ ον απ ίθανο να αλλάξο υν οπο ιεσδή πο τε οδηγίες εγκατάστασης μεταξύ δύο δευτερε υ ουσών εκδόσεων, καλό θα είναι να αποκτήσετε τ η συνήθεια να ελ έγχετ ε πά ντα την λίστα αλλαγών κάθε λογισμ ι κού πο υ εγκαθιστάτε κα ι διατηρ είτε στο σύστημά σας . Εάν έχε ι παρου σια στεί όντως μ ία νέα δευτερεύουσα έ κδο ση μ έχρ ι την σηγμή π ου δ ιαβάζετε εσεκ το β ι βλίο, αλλά δεν αναφέροντα ι αλλαγές στ ην διαδικασ ία εγ κατά στα
σης, κρατ ή στε απλώς στο μ υαλό σας ότι θα π ρέπε ι να σκέφτεστε τον αρ ιθμό της δι κ ήτ; σας έ κδοσης στι ς ακόλουθες οδ ηγίες κα ι ει κόνε ς.
52
Εγκατάσταση και Διαμάρφωση της ΡΗΡ
ΧΡΗΣΙΜΕΣ
ΠΛΗΡΟ Φ ΟΡΙ ΕΣ
Γι α οδηγίες σχετικά με τη ν εγκατάσταση της Ρ ΗΡ από το συνοδευτικό ανατρέξτε ατο Π α ρ άρτη μ α Α του β ιβλίου , ' Έγ κ ατά ατ αση των
CD,
MySQL,
Apac he και Ρ ΗΡ από το Συνοδε υτικό CD-ROM".
Εγκατάσταση της ΡΗΡ με το
Apache
σε Συστήματα
Lίnυχ/υnίχ Σ Ι αυτή τ ην ενότητα θα εξετάσουμε έναν τ ρόπο εγκατάστασης τ η ς ΡΗ Ρ μ ε το
Apache
σε
ένα σύστημα Lί πυ x! υπί x . Η διαδικασ ία είναι π ερίπο υ ίδ ι α γ ια ο ποιαδ ήποτε έκδοση του λε ι τ ο υ ργ ι κού συστήματος υπ ίχ. Αν και μπορε ίτε να βρε ίτε πρ ο- μ ετ αγλω ττι σμ ένες εκδόσε ις της ΡΗΡ γ ια το λε ιτουργ ικό σύστ η μα που χρησ ιμοπο ιε ίτε, η μ ετ αγλώττιση της ΡΗ Ρ από τον πηγαίο κώδικα σας παρέχει υψηλότερ ο βαθμό ελέγχου . Για να μ ε ταφέρετε στον υπολογι στή σας τα αρχε ία δ ιανο μής τ ης Ρ ΗΡ μ ετ α βείτε στην αρ χική σελiδα γ ια την ΡΗΡ στην διεύθυνσ η ση προς τ η ν ενότητα
Downloads.
http://www.php .net/ KaI α κολουθ ήστε τη ν σύνδε
Επι λέ ξτε την πιο πρόσφατ η έκ δοση του πηγαίο υ
κώδ ικα
- στο παράδειγμά μας θα χρησιμοποιήσου με τ ην έκδοση 4.3.3. Για την έκδο ση πο υ php-version.tar.gz, όπου το version αντι προσωπεύε ι τον πιο πρόσφατο αριθ μό έκδοσης. Το αρχείο αυτό είναι ένα ουμ η ιεσ μενο tar α ρχε ίο, οπότε θ α πρ έπε ι κατ ' αρχ ήν να το αποσυμπιέσετε: θα επι λέξετε εσείς, το όνομ α του αρχε ίο υ θα ε ίναι κάτι το υ στυλ
# g unz ip < p hp - ve r s i o n . t a r . g z (Στ ην παρ απάνω εντολ ή , το
Ι
version
t ar x v f αντιστο ιχε ί στον αρ ιθμό έκδοσ ης της ΡΗΡ .)
Τοποθε τή στ ε το αρχείο που μ εταφέρατε σε έναν κατάλογο ο οποίος χρησιμοπο ιείτα ι α ποκλε ιστικά για αρχεία πηγαίου κώδ ι κα , όπως ο
/usr/src/
ή ο /usr/local/src/. Αφού απο συ
μπι έσετε το αρχείο, θα πρέπε ι να μεταβείτε στον κατάλογο τ ης ΡΗΡ : # cd p h p -ve rs ion Μέσα σ' αυτό τον κατάλογο θα β ρείτ ε ένα
script
με όνομα
configure. Το script αυτό
δ έχε
ται επι πλέον πληροφορίες οι οποίες παρ έχονται όταν το τρέχετε από την γρα μ μ ή εντο λή ς . Αυτά τα ορiσματα γρα μ μής εντολ ής ελέγχο υν ποιες λε ιτουργίες και δυνατότητες θα υ ποστ ηρίζε ι η ΡΗ Ρ . Γι α τους σκοπούς του παραδε ίγματός μ α ς θα συμπεριλάβουμε τις βα σι κές ε πιλογές που απαιτούντα ι για την εγκατάσταση τη ς ΡΗΡ με το
Apache και
ποστήρ ιξη τ η ς M ySQL . Θα εξετάσο υμε ορισμένες από τις δ ιαθέσιμες επιλογές του
configure πα ρ α κ άτω
την υ
script
σ' αυτό το κεφάλωο, καθώ ς κα ι σε άλλα σημ εία το υ βιβλίου στα ο
ποία χρησ ιμοπο ιούντα ι .
# . /c onf i g u r e - - p r e f i x = / u s r / l o c a l / p h p - - wit h-my s ql \ --with - a p x s 2=/u s r/ l o c a l/ a p a c h e 2/ b i n/ a p x s Αφού ολοκληρωθεί η εκτέλεση το υ
script configure και εμφανιστούν αρκετές πληροφορ ια Group), θα ε πιστρέψετε στην π ρ οτρ οπ ή
κές ση με ιώσε ις από τ ην ομάδα τ η ς ΡΗΡ ( Ρ Η Ρ του συστ ή μα τος :
Μάθετε Ρ Η Ρ, MySQL και Apache Όλα σε Ένα
53
+---- -- ---------------------- ---------------- ------------ -- ----------+ Licens e :
This s o ft ware i s s ub j ect t o t he Ρ ΗΡ Lic ense , avai lab le in t h i s d i st r ibution i n t he f i l e LICENSE. ΒΥ continui ng t h i s insta ll a tion p r oce ss, you a r e b oun d by t h e terms ο ! th i s licens e agreement . I f you do not ag ree with t he t e rm s of th i s license , Υο υ must abo r t
t he i n s t a lla ti on process a t t hi s poi nt .
+-- --------- --------- ----------- -------- ------- ---- -------------- ----+ *** The de f a u l t
If you r appl i c a t i on r el ies s h o u ld explic i t ly set
ΝΟΤΕ
** *
for regist e r _g lobals is now OFF!
r e gi s t e r _ g l ob a l s
ση
it t o
ση
be ~n g
ΟΝ ,
Υου
i n y o u r p hp . i ni f i l e .
Note t h a t you a re s trong l y encou rage d t o r ead ht t p://www. php. n e t/man ual/ en / s e cu ri t y. re g is t e r g l oba ls.php a bout the imp lic a tion s o f ha v i ng r eg is t e r~gl o ba ls s et to οη, and avoid us i ng i t if po s sib l e . +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- - - - - --- - - - - - - - - - - - - - -+
Than k you f or using
Ρ ΗΡ .
Στ ην συνέχε ια ε ι σάγετε τ ην εν τολ ή
make ακολου θού μεν η
από την εντολή
make instaH. Ο ι
εντολές α υ τές ολ οκλ η ρώνο υν τη ν δ ι αδ ικα σ ία μ ε ταγλώττι ση ς κα ι εγ κατάστασ ης τη ς ΡΗΡ
και σας επαναφέρουν στ ην π ροτροπ ή του συστή ματος.
Στο ση μείο αυτό θα πρέπει να δ ιασφαλίσετε ότι δύο πολύ ση μαντι κά αρχεία βρίσκοντα ι στις σωστές θέσε ις. Κατ' αρχήν ε ισάγε τε την ακόλουθη εντολή για να αντιγρά ψετε το αρ χε ίο
php .ini στην προ κ αθ ορι σ μ ένη θέσ η php.ini παρακάτω σ' αυ τό το κεφάλαιο . # cp p hp . ini-di s t
του. Θα μ άθ ετε π ερι σσότερ α για το αρχε ίο
/ us r/lo c al/lib/php. i n i
Στη συνέχε ια αντιγράψτε το κοινόχρηστο κατάλογο εγκα τάστασ ης του
object αρχε ίο τη ς ΡΗΡ στ ην σωστή θέση - στον Apache, εάν δεν τ ο ποθ ε τ ή θ ηκε ήδ η εκε ί από την διαδ ικασ ία
εγκατάστασης:
# cp libs/l ibph p4 . s o /u sr/lo ca l/ ap ach e 2/module s/
Στο σημείο αυτό μπορείτε να δ ιαμορφώσετε και να τ ρ έξετε το Apache, αλλά καλό θα ε ίναι να πα ρου σι άσο υμ ε ορισμένες επ ι πλέον επιλογές δ ιαμόρφωσ ης πρ ιν ασχοληθούμε με τη ν συνεργασ ία της ΡΗΡ με το
Apache
σε μία επόμενη ενότη τα.
Επι πλέον Επιλογές Διαμόρφωσης Όταν τρέξα με το
script co nfigure, συμπερ ιλάβα με
κάποι α ορίσμ ατα στην γρα μ μ ή εντολή;
τα οποία προσδ ιόριζαν ποιες λε ιτουργ ίε ς και δ υνατότητες θα περιλαμβάνε ι ο μηχαν ισμός εκτέλεσ ης της ΡΗΡ ( Ρ Η Ρ
engine). Το ίδ ι ο το script configure
σας παρέχει μία λίστα των δια
θέσιμων επ ιλογών, συμπερ ιλα μ βανομένων αυτών που χρ η σ ιμοπο ι ήσα με παραπάνω . Από τον κατάλογο τη ς ΡΗ Ρ ε ισάγετε την ακόλουθη εντολή: # . /configure --he l p
54
Εγκατάσταση και Δια μάρφωση της ΡΗΡ
Επειδή η παραπάνω εντ ολή παράγ ει μ ία μ α κροσκελή λίστα , μ πο ρείτε να ανακ ατευ θ ύνετε το αηοτελεσρά τ ης σε ένα αρχείο γιο να το δι α βάσετε μ ε την άνεσ ή σας: f . / con f i gu r e - - he lp > co nf i go ptions. t xt
Εάν ανακαλύψετε επ ι πλέον λειτουργίες τι ς οποίες θέλετε να προσθέσετε στην ΡΗΡ αφού την εγκαταστήσετε , θα πρέπει να ε παναλά βεΤΕ την διαδ ικασ ία μ εταγλώπ ιση ς και δια
μόρφωση ς. Η διαδι κασία αυτή θα δημιουργήσε ι μία νέα έκδοση του αρχείου libphp4.s0 κα ι θα το τοποθετή σει στην δο μή καταλόγων του Apache. Το μ όνο που χρειάζε ται να κάνετε ε σείς είναι ν α επανεκκ ινήσετε το Apache γι α να φορτωθ εί το νέο αρχε ίο.
Ενοποίηση της ΡΗΡ με το
Apache
σε Συστήματα
Linux/Unix Για να δι ασφαλίσ ετε ότι η ΡΗΡ συνεργάζεται αρ μ ονι κά μ ε το Apache, θα πρέπε ι να ελέγξε τε
- και πιθανώς να τιροσθέσετε - ορισμ ένα στοιχε ία στο αρχείο δια μόρφωσης httpd.conf.
Κατ ' αρχήν αναζητήστε μία γραμ μή όπως η ακόλουθη :
LoadModu le php4-rnodule
modules /libphp4 .50
Εάν η γραμμή αυτή δεν υπάρχε ι, ή εάν περιλαμβάνει ένα σύμβολο πρέπε ι να την προσθέσετε ή να διαγράψετε το σιμοποι ήσει το κοινόχρ ηστο
object
αρχείο της
# στην αρχή τη ς, θ α # . Η γραμμή αυτή λέει στο Apache να χρ η Ρ Η Ρ (libphp4.S0), το οποίο δ η μ ιουργή θ ηκε
κατά την δ ιαδικασία μ εταγλώττι σης. Στη συνέχεια , αναζητ ήστε την ακόλουθη ενότη τα :
# # AddType a l l ows you to add to or over ride t he # f il e mi me. t ype s f or s pe c i fic f i l e t yp es .
ΜΙΜΕ
co nfig ur a t i on
Ι
Προ σθέστε τι ς α κόλο υθε ς γρα μμ ές:
AddType ap pl i c a t i o n /x-httpd-php . php . pht ml . ht ml Ο, παραπάνω γραμμέ ς διασφαλίζουν ότι ο μηχανισμός εκτ έλεση ς της ΡΗ Ρ θα δ ιερμ ηνεύει τα αρχεία που έχουν επέκταση
.php, .phtml κα ι .html. Τα ονόματα αρχείων που θα επ ιλέ
ξετε εσείς μπο ρε ί να διαφερουν, και μπορεί επίσ η ς να θέλετε να προσθέσετε την επέ κτα ση
.php3
γι α λόγους 'συμ βατότητας προς τα πίσω' με πολύ παλαιά
scripts
τα οποία
μπο ρεί να έχετε.
Αποθ η κεύστε το παραπάνω αρχείο και κατόπ ιν επανεκκινήστε το Apache . Εάν εξετάσετε
το αρχε ίο καταγραφ ής σφαλμάτων
(error_Iog), θα πρέπει να δείτε μία καταχώρ ιση όπως
η α κόλουθη:
[Sun Se p 28 10: 42: 47 200 2] [no t ice] Apa c he / 2. Η ΡΗΡ αποτελεί πλέον μ ερο-; του
Ο.
47 (Unix )
ΡΗΡ /4 .
3. 3 configured
Apache Web se rνe r . Εάν θ έλετε να μ άθε τε η ώ.; μπο ρ είτε Windows, συνεχίστε μ ε την επό μεν η ε
να εγκαταστή σετε την ΡΗΡ στην πλατφόρμ α των
νότη τα . Αλλιώ ς μπορείτε να μεταβ είτε απε υθε ίας στη ν ενότη τα που ασχολείτα ι μ ε τη ν δ οκ ιμή της εγ κατάστασ ής σας .
Μάθετε Ρ ΗΡ, MySQL και Apache Όλα αε Ένα
55
Εγκατάσταση των Αρχείων τη ς ΡΗΡ στα Windows Ανόμοια με την μ εταγλώπιση κ α ι εγκατάσταση τη ς Ρ ΗΡ στην πλατφόρμ α ΙίπυΧ/υ π ίΧ, η ε γκατάσταση της ΡΗ Ρ στα
Windows δεν
απαιτεί τ ίποτα περι σσότε ρ ο από την μ εταφορά
των απα ιτού με νων αρχε ίων κα ι την τοποθέτ ησ ή τους σε συγ κεκριμ ένες θέσε ις. Γι α να μ ε
ταφέρετε τα αρχε ία διανομ ής τη ς ΡΗΡ, μεταβείτε στην αρχική σελίδα της ΡΗΡ στην διεύ θ υνση htt ρ : /ΛV\V\ν. ρ h ρ . netl και ακολουθή στε την σύνδεση π ου οδηγε ί στην ενότητα Downl oads. Επιλέξτε το Ζί ρ αρχείο πο υ αντ ιστο ιχεί στην πι ο πρ όσφατη έκδοση από τ ην ενότητα Windows Binaries (γι α παράδειγμα, εμείς χρ ησιμοποιούμε την έκδοση 4.3.3). Το αρχε ίο πο υ θα επ ιλέξετε θα πρέπει να έχει ένα όνο μ α πα ρόμ οι ο μ ε το όπου τ ο
version
php-version.zip,
αντιπροσωπε ύε ι τον αριθ μό τ ης πι ο πρόσφατ ης έκδοση ς.
Αφού μ ετα φέρετ ε το συμπι εσμ ένο αρχε ίο στο σύστ η μά σα ς, κάντε δ ι πλό κλΙ Κ π άνω το υ
γι α να το αποσυμπιέσετε. Στο συμπι εσμένο αρχε ίο περ ιλα μβάνΟνται πληροφορίες δια δρομ ής καταλόγων- εάν αποσυμπ ι έσετε τα αρχεία από τον αρχικό κατάλογο του δίσ κου σα ς, θα δη μιουργηθε ί ένας κατάλογος με όνο μα
php-version-Win 32 και όλα τα αρχεία κα ι
οι υποκατάλογο ι που δη μιουργούντα ι για τη ν εγκατάστασ η τη ς ΡΗΡ τοποθετούντα ι κάτω από αυτό τον κατάλογο . Αφού αποσυ μπ ιέσετε τα βασικά αρχεία της ΡΗ Ρ, χρειάζεται απλώς να μ ετακινήοετε ορι σ μ ένα από αυ τά στι ς σωστ ές θέσεις :
1.
Στ ον κατάλογο εγκατάστασ ης της ΡΗΡ, εντοπίστε το αρχε ίο νομά στε το σε
php.ini-dist και
μετο
php.inI.
2. Μ ετ ακινήστε το αρχείο php.ini στον κατάλογο C:\WINDOWS\, ή στην ο ποιαδή πο τε θ έση τοποθετείτε όλα τα
* .ini αρχε ία στο σύστ ημά
σας.
3. Μετακ ινήστε το αρχε ίο php4t s.dll στον κατάλογο C:\W INDOWS\SYSTEM\, ή στην οποιαδήποτε θέση τοποθ ετε ίτε τα " ,dll αρχ ε ία στο σύστη μά σας. Για την συ νεργασία τ ης ΡΗ Ρ με τον Apache serνer θα πρ έπει επίσ ης να κάνετε ορ ισμένες μι κρές τροποποιήσεις στο αρχε ίο δ ι αμόρ φωση ς του Apache.
Συνεργα σία τη ς ΡΗΡ με το
Apache στα Windows
Γι α να διασφαλίοετε ότι η ΡΗΡ και το Apache θα συνεργάζονται ομαλά, θα πρέπει να προ Apache, http d.conf. Κατ' αρχ ή ν, σ' α υτό το αρχείο εντοπίστε την α κόλου θη ενότη τα : σθέοετε ορ ι σμένες καταχωρ ίσεις στο αρχε ίο δ ι α μόρφωσ ης του
f Exampl e : i LoadModule
f oo~od~le
module s /mod-foo. 50
i
LoadModu le access-π,οduΙe modules fDodLacces5 . s o LoadModule a ct i ons_~odule modul es /mod-acti ons .So LoadModu le al ia s-ffiodule module s /mod-alias . s o Load~odule asis-nodu l e modul e s fmod-asi5 . 50 LoadModul e auth-modu le module 5 fmod-aut ~ . so #LoadModul e autr__a ~o~odu l e modul es /mod-auth-anon. 50
56
Εγκατάσταση και Διαμόρφωση της ΡΗΡ
aut h-dbffi-ffiodul e module s /mod-auth-dbm. 50 auth-digest-ffi odule modul e s / mod-aut h-di ge s t . so LoadModu le auto indeX-ffiodu le modules /mod-auto index . 5 0 #Lo a&~od u le
i Lo a d~o du l e
'Lo ad~odule
cern-meta-module mod ules /mod-cerr__~eta .
50
Loa dModule c g i -rno dule module s /mod-cgi . $0 #Loa dModul e dav-ffiodu le modul es /mod-dav. $0 #Load Module da v_ f S-ffiodul e modul e s / mod-dav_ f s. 50 LoadModule di r-rnodu le module s /mod-di r . 50 LoadModule e nv-ffiodul e modu l es / modLenv. 50 ILo adModule expi res-ffiodule modules /mod-expires. 5 0 ' LoadModule f i l e-c a che-module modul es / mod-f i le-cacte. 50 tL oadModu le headers-ffiodule modul es /mod-t.eaders .so Στο τέλος αυτ ή ς τη ς ενότητας προσθ έστε την ακόλουθ η γραμ μή:
LoadModule php4 -rnod u l e c : / php - ve rsi on/sapi/ php4apa c t e2 . dl l Στην συνέχεια αναζητήστε την ακόλου θη ενότητα:
•
# AddType a llows you Ιο add t o or ov e r r i de the # fi l e mime. t ypes f o r speci f ic fi l e types.
M I ~ffi
c or.figurat i on
Ι
Προσθέστε τις ακόλουθες γραμμές σ ' αυτή την ενότητα :
Add7ype applicati on / x-ht tpd- php
. ραρ
. p ht ml . ht ml
Ο ι παραπάνω προσθή κες διασφαλίζουν ότι ο μηχανι σμός εκτε'λεσης της ΡΗΡ θα δι ερμ η .php, .phtml και .html. Τα ονόματα που θα επι λέξετε εσε ίς μπορε ί να διαφερουν, KO I μπορεί επ ίσ ης να θε'Λεn: να προσθ έσετε την επέ κτασ η .php3 για λόγους " συ μ βατότητα ς προς τα πίσω", με π ολύ παλαιά scripts τα οπο ία μπορ εί να έ νεύει τα αρχεία με επεκτάσει ς
χετε .
Αποθη κε ύ στε αυτό το αρχε ίο κ α ι επανεκκ ι ν ήστε τον Apache s e rνe r. Ο serνe r θα πρ έπε ι να
ε κ κι ν ήσε ι χωρίς να ε μ φανίσει κάποι ο προ ε ι δοπο ι η τι κό μήν υμ α . Από το ση μ είο αυτό ΚΟΙ μ ετά , η Ρ Η Ρ αποτελεί πλέον μέρος του
Το Αρχείο
Apache Web
se rνer.
php.ini
Αφού μ ε ταγλωττίσετε ή εγ καταστή σετε την ΡΗΡ, μπορείτε να αλλά ξε τε τ ην συμπ εριφο ρά τ ης μ έσω του αρχε ίου
php.ini. Σε συστή μα τα
υπίχ, η π ροε πιλεγμ ένη θέση γι ' α υ τό το
αρχε ίο είναι ο κατάλογος lusr/local/php/lib, ή ο υπο κατάλογος θο ρ ίσατε για τη ν εγ κατάσταση τ η ς Ρ ΗΡ . Σε σ υστή ματα μ ε τα
πρέπε ι να βρίσκεται στον κατάλογο των
lib του
καταλόγου που κα
Window s το αρχε ίο αυτό θα
Windows .
Οι ντιρεκτίβες που περ ιλα μβάνει το αρχε ίο php.ini έχουν δύ ο μορφές: τιμές (values) και ση μάνσε ις (flags). Οι ντιρε κ τ ίβε ς τ ιμ ών έχο υν τ ην εξή ς μ ορφή: 6νομα ντιρεκτίβας = τιμή .
Μάθετε Ρ Η Ρ, MySQL και Apache Όλα σε Ένα
57
Οι πιθανές τιμές δι αφέρ ουν από ντιρεκηβα σε ντιρεκτ ίβα . Οι ντιρεκτίβες σημάνσεων έ χουν τ ην εξ ής μ ορφή: όνομα ντιρεκτίβας = θετικός ή αρνητικός όρος. Στοuς θετικούς ό
ρους περι λαμ βάνο νται οι ΟΙ Ο,
Off, Να
κα ι
False.
1, Οη , Yes Και True.
Στους αρνητι κούς όρους περ ιλαμβάνονται
Τα κενά δ ιαστή ματα αγνοούνται .
Μπορε ίτε να αλλάξετε τις ρυθ μίσε ις του αρχε ίου κάν ετε θα π ρ έπ ει να επανεκκ ινήσετε τον
php.ini ανά πάσα στιγμ ή , αλλά αφού το server για να τεθούν σε ι σχύ Ο Ι αλλαγές σας . Ε ά ν
έχετε Μγα χρόνο, σας προτείνω να δ ιαβάσετε ολόκληρο το αρχείο πο ιες ρuθμίσε ις μπορε ίτ ε να δια μορφώσετε μ ' αuτό το αρχείο.
php.ini για
να δείτε
Έλεγχος τη ς Εγκατάστασης ο α πλούστερος τρόπος για να ελέγξε τε την εγκατάσταση τ ης ΡΗΡ ε(νQl η δ η μιοuργία ενό ς μικρού δοκιμαστικού script το ΟΠΟ(Ο θα χρ ησ ιμοπο ιε ί τ η ν συνάρτηση php info O. Η συ νάρτηση αuτή παράγει μ ία μακροσ κελή λίστα ηλη ροφορ ι ών δ ιαμόρφωσης . Ανο ίξτε ο ποιονδήποτε συντάκτη κειμένου και πλ ηκτρολογήστε τ ην ακόλουθη γρα μμ ή:
Αποθ ηκεύστε αυτό το αρχε ίο με όνομα
phpinfo.php και τοποθετ ήστε τ ο στον αρχικό κα (document root) το υ Web server σας - τ ον υ ποκα τάλ ογο htdoc s του κα ταλόγου ε γκατάστασ ης του Apache. Εάν προσπελάσετε α υτό το αρχείο από το περιβάλλον μ ι ας εφαρμογής Web bro\'vser, τ ο αποτέλεσμα πο υ θ α δείτε θ α πρ έπε ι να ε ί τάλογο εγγράφων
ναι παρό μοι ο μ ε αυτό της Εικόνατ; ΕΙΚΟΝΑ
3.1
Τα αποτελέσματα
που παράγε ι η
'" ,. >-
A~en i
Ι ,.,
ή της Εικό νας
3.2.
,.,
..
Γ ν",[ο"",
ένα
σ ύ στημα
,,
Lί π υχ/υ π ί x .
"'-
Lio" ,
8ύiIolD oI . Co nl l ~ o , .
,
*
,"I I '1 2 .4 . 1 8-4Ge ~ !
S. p 292003 Gomm. ,'"
~
ΞΙ ~ Go
!'ilp:llloc. Iho,11
σ υνάρτηση
phpinfo() σε
f jVOll ..
3.1
Wed !οΙ"υ
~
1 3 .~ 1 .,χ; UΤ~ " p , " >
Se l ect same pro duct s : < / s t r ong>
< se l e c t n a me = "forrn-produc t s [ ] " mu lt i p l e s i z e=3 > Son i c Screl-.'dr i ve r
26 : 27 : 15: 16: 17:
From :
18: 19:
To : δέχεται μία λίστα μεθόδων και περιέχε ι τις ντι ρε κηβε -; He l l o aga in , your ct'.Os e n v e g e t a ble is $_COOKIE [v e g e t a b l e j < /ρ> " ; e lse { echo " He l l o you . Th is may b e you : : - first visi t < /p> "; ?> Username : P assword:< !STRONG>
20:
που εφαρ μόζοντα ι στ ι ς αιτ ήσε ις που περι έχουν αυτές τις μ εθόδους. Οι μέθοδοι που μπο ρούν να χρησιμο πο ιηθούν είνα ι οι ΡΑTC Η,
GET, POST, ρυτ, DELETE, CONNECT, ΟΡΤιΟΝ5, TRACE. PROPFIND, PROPPATCH, MKCOL, COPY, Μ Ο ΥΕ , ΙOCΚ κ αι UNΙOCK .
Η ενότ η τα < Lim ItEχcept > παρέχε ι σ υμ πλ η ρωμ ατική λε ιτουργικότητα, περιλα μ βάνοντας ντιρε κτ ίβες ΟΙ οποlες θα εφαρμ όζοντα ι στ ις αι τήσε κ; πο υ δεν περι έχουν ης πρ οαν αφ ε ρ θείσες μεθόδους. Η Λίστα 23.5 παρουσ ιάζε ι ένα παράδειγμα από την προ καθ ορι σμ έν η δι αμόρφωση το υ Apach e. Ο ι ενότητες < Limit > και < Limit Eχce pt > επιτρέπουν τι ς μ εθόδους " μ όνο ανάγνω ση ς", αλλά απορρίπτουν τις α ιτήσε ι ς που περιλαμβάνουν οποι εσδήπ οτε άλλες μεθόδους οι οποίες θα μ πορο ύ σαν να τροποποιήσουν τα περ ιεχόμενα τ ου σ υ στ ή μ ατος αρχείων, όπως Π . χ . η μ έθο δος ρυτ .
438
Ελεγχος της Πρ όοβααη ς ατις Εφαρμογές αας
Γι α περ ισσότερε ς πληροφορίες σχετι κά με τκ; μυ ριάδε ς δ ιαθέσιμες επιλογές, ανατρέξτε στκ; πληροφορ ίες τε κμ ηρίωσης του Apache στην διεύθυνση http://httpd.apache.org! docs-2.O/mod/core.htm Ι . ΛΙΣΤΑ
23.5
Π εριορ ισμό ς τη ς Π ρ όσ βαση ο με Β άση έναν Καν όνα
1: 2:
Al lowOve r r ide F ileln fo Au t hCo nfig Limit
3:
Options
4:
Order Al low, Deny Al l ow f r om al l < /L imi t > < Li mi t Ex cep t
GET PQST OPTI ONS PROPFI ND>
9: Or der Deny,Al low 10 : Deny from a l l 11 :
Εισαγωγή στα
Cookies
Στην πλευρά της εφαρμ ογής, μπορε ίτε να χρ ησιμοποιείτε να ελέγχετε την πρόσβαση σε συγκε κριμένο υς τομε ίς του
coo kies στα Ρ ΗΡ scripts σας για Web site σας. Εvα cook ie ε ίναι
ένα μι κ ρό σύνολο δεδο μένων τα οπο ία αποθ ηκεύοντα ι από την εφαρ μογή χρ ήστ η, κατόπ ιν μι ας αίτ ησης π ρ ο ε ρχόμ ενη ς α πό έναν
serve r ή
browser
τ ου
ένα
script. Ενα σύ στημα αποθηκεύσει έως κα ι 20
μπορε ί να ζητήσει από την εφαρ μογή browser ενός χρήστη να απαρ τίζετα ι από ένα όνομα, μ ία ημ ή και μία η μ ερ ομ ηνία λ ήξης! και
cookies. Κάθε cookie
περιλαμβάνει επίσης πληρ οφορ ίες συστή ματος και διαδρομής καταλόγων. Το μέγεθος ενός cook ie πε ριορίζετα ι στα 4Κ Β . Αφού ορ ι στεί ένα
cook ie,
μόνο ο υ πολογι στής από τον οπο ίο στάλθηκε μ πορε ί να διαβά
σει τα δεδομένα του , πρ άγ μα το οποίο διασφαλίζει την ιδιωηκώητα του χρήστη. Επι πλέ ον, ο χρ ήστη; μπορεί να δ ια μορφώσει την εφαρ μογή
browser που χρησ ιμοποιεί ώστε να cookies που ορίζονται , ή να αρνείτα ι όλες τκ; αιτήσε ις για cook ies. θα πρέπε ι να βασίζεστε υπερ βολικά στ ην χρήση των cookies.
τον ε ιδοπο ιε ίγια όλα τα Για τον λόγο αυτό δεν
Η Ανατομία ενός Ενα ΡΗΡ
script
Cookie
το οπο ίο ορίζε ι ένα
cookie
μ ο ι ε ς μ ε ης ακόλουθες : ΗΤ Τ Ρ/Ι .1 20 0 ΟΚ Da t e :Tue , 26 Aug 2 0 0313 :3 9 : 5 8 GMT Se r ve r: Apa che/2 . Ο . 4 7 (Un ix) Ρ Η Ρ /4 . 3 . 3
X-P o wered-B y :PHP/ 4. 3. 3
μπορε ί να στέλνει κεφαλιοες
(headers)
παρό
Μάθετε Ρ ΗΡ , MySQL και Apache Όλα σε Ένα
Set -Cook i e : vegetable=arti choke ; Conn ection :close
439
path= / ; domai n =yourdomain. com
Conten t-Type:text/html Ο πως βλέπετε, η κεφαλίδα Set-Cookie του πα ραδείγμ ατό ς μ ας περιέχει έν α ζεύγος ονό ματος/τιμής , μαζί με πληροφορίες διαδρομή ς κοποιούν ται στο
URL.
(path) κα ι domain . Το όνομ α
και η τι μή κωδι
Εάν υπάρχε ι , το πεδίο eχpires αντιπροσωπε ύει μία ο δ ηγία μ ε την
οποία ζητείται από την εφαρ μογή browser να "ξεχάσε ι " το συγκεκριμένο cookie αφού πα ρέλθει η προσδιοριζόμενη ημ ερομηνία/ώρ α. Το πεδίο path ορίζει την θ έση ενός Web site στ ην οποία θα πρέπει να στ έλνεται το
cook ie σ τον server. Το
doma in
του
domain
δεν μ πο ρεί να είναι διαφορετική από το
/nternet
στα οποία θα πρ έπει ν α στέλνετ αι το
π εδίο
dom ain
cookie .
καθορίζε ι τα
Η τιμή ταυ πε δίο υ
doma in από το οποίο στάλθηκε το cookie,
αλλά σας παρέχει έναν βαθμό ευ ελι ξίας. Στο προηγούμενο παρά δειγμα η εφαρμογή browser θα στέλνε ι το cookie στον serve r yourdomain.com κ αι στον serve r
www .yourdomain.co m. Εάν η ε φαρ μ ογή browser
ε ίναι δ ιαμορφωμένη ώστε να δέχεται και να αποθηκεύει
coo kies,
θα δι ατ η ρε ί τις πληροφορίε ς τους μέχρι την ημερομηνία λήξης των cookies. Εάν ο χ ρή στη ς μ εταβε ί σε οπο ιαδή ποτε ιστοσελίδα η οποία ταιρι άζει μ ε τι ς πληροφορίες δ ι αδρομή ς και
domain του cookie, θα ξαναστείλ ε ι το cookie στον server . φαρμογή browser θα μπορούσαν να δείχνουν ως εξής: GET ! HTTP!l .
Οι κεφαλίδες που στέλνε ι η ε
Ο
Conn ectio n :Keep ~Al i v e
Us e r - Agent : Mo z i l la /4 .
Ο
(compa t ible ; MSI E 6.0 ;
w i~dows
98)
Hos t :www.yourdomai~.com
Accep t: i ma g e/ gi f , i ma g e/ x-xbi t ma p , Ac cept-Encoding:gzip Accept-Language:en ,pdf Accept-Charset : iso -8859- 1, *, u t f - 8 Cook i e:vege t able= a r t i c h oke Ενα ΡΗΡ
im a g e/jpeg,
script μπορεί κατόπιν να προσπ ελάσει
Ορισμός ενός
Cookie
Μπορείτε να ορίσετε ένα
cookie
// // //
Η συνάρτηση
* /*
cookie μ έσω τ ης μ ε ταβλ η τή; πε ρ ιβάλ (superglobal) μ ετ αβλητή ς $_COO KIE:
ε μ φ αν ί ζτ ι
το
ε μφον ί.ζ ε ι
το
εμφον ί ζ ε ι
το
"vegetable =art ichoke " "vegetab le=articho ke" "a r t i c hok e "
με την ΡΗ Ρ
μ έσα από ένα ΡΗΡ
μπ ορ είτ ε να χ ρ η σ ιμ οπο ι ή σ ετε τ ην συ νάρτηση
Set-Cookie.
i mage/png,
το
λοντος ΗΠΡ_COOKIE, ή σαν μ έρ ο ς τη ς γεν ική ;
echo " $_ SERVER ( HTTP_ COOKI E ]
"; echo ge tenv( "HTTP_COOKIE " ). "
' . echo $_COOKI E [ 'vegetable ']. "
";
irr,age/pjpeg,
headerO απα ιτεί
script μ ε δύο τρόπο υς . Κατ' αρχήν headerO για να ορ ίσε τε τ ην κε φ αλιδ α
σαν όρισμ α ένα αλφ αρι θμ η τι κ ό το οποίο θα
συμπεριληφθ εί κατόπι ν στ ην ενότητα κεφαλίδ ας τη ς απάντ ησ η ς το υ φαλίδες στ έλνοντα ι αυ τόμ ατα, η συνάρτη σ η ποι αδήποτε έξοδο στέλνεται στην ε φαρμ ογή
h eader ( " Set-Cookie : v egetable=articho ke; pa th= /; domain=yourdomai-n. ο οηι "} :
headerO πρ έπει browser: εο.ρί τ ο ε -κοο.
server. Επει δή
οι κε
ν α καλείτ αι πρ ιν από ο
27 ~ Aug - 03
1 4 : 39 : 5 8 GMT;
440
ΕλεΥχος τη ς Πρό σβασης στις Εφαρμογές σας
Αν και δεν ε(ναl δύσκολη, αυτή η μέθοδος ορισμού ε νό ς
cookie
απαιτ εί από εσάς να δη
μιουργήσετε μία συνάρτηση για την κατασκευή του αλφαριθμητικού τ η ς κεφαλiδας. Η μορφοποίηση τη ς ημερομηνίας όπως στο παραπάνω παράδειγμα και η κωδικοποίηση του ζεύγους όνομα/τιμή στο
URL
δ εν είναι μία ιδ ι αίτερα δύσκο λη εργασία . Ωστ όσο, θα
ήταν σαν να ανακαλύπτατ ε εκ νέου το ν τροχό , επειδή η ΡΗΡ δ ιαθέ τει μία συνάρτηση η ο ποία κάνε ι ακρ ιβώς αυτό . Η συνάρτηση
φαλϊδ α
setcookieO κάν ει
Set-Cookie.
αυτ ό ακριβώς που υπονοεί το όνομά της
- παράγει
μ ία ΚΕ
Για τον λ όγο αυτό θα πρέπει να καλείται πρι ν από τη ν αποστολή ο
ποιουδήποτε άλλου περιεχομένου στην εφαρμογή
browser.
Η συνάρτηση αυτή δέχετ αι
το όνομ α του cookie , την τιμή του , την ημερομηνία λήξης του (στ ην μορφ ή ep och του Unix), πληροφορίε ς διαδρομής και domain, και μία ακέραια τιμή η οποία πρέπει να είνω 1 εάν το
cookie πρόκ ειται να στ έλν ετ αι
μέ σω ασφ αλούς σύνδε σης . Όλα τα ορίσμ ατα α υ τ ή ς
της συνάρτησης είναι προαιρετικά, εκτός από το πρώτο (το όνομα του Η Λίστα Λ ΙΣΤΑ
1: 2: 3:
4: 5:
6: 7:
8: 9: 10 : 11 :
12 :
13: 14 : 15:
23.6 χρησιμ οποι εί την
23 .6
συνάρτηση
setcookieO για
Ορισμός και Εμφάνιση της Τιμής ενός
cookie ). cookie .
τον ορισμό ενός
Cookie
< ? p hp se t co ok ie ( "ve g et a b l e " , " ε τ τ Ι σ αοκο", time ( ) + 3 6 00 , " Ι " , "y o urd oma in . σοω ", ο ); ?>
Lis t ing 23 . 6 Set t ing and p ri n ting a co o ki e va lue < /title > < /head>
< ? php i f ( isset($_ COOKIE [ve g e tab l e ] ) ) e cho "
16 : 17 :
Αν και το
cookie ορίζεται
(γραμ μή
2) όταν το script εκτελε ίται γι α π ρώτη φορά,
στο ση με ίο
αυτό η μ εταβλ ητή $_COOKIE[vegetableJ δεν έχε ι δη μ ιουργηθε ί. Ενα cook ie δ ια βάζεται μ όνο όταν η ε φαρμογή browser το στέλνει στον server. Αυτό δεν θα συμβεί παρ ά μ όνο όταν ο χρήστης θα επ ισκεφτε ί ξανά μ ία σελiδα στο dom aIn σας. Ορίζουμε τ ο όνομα του cookie σε "vegetable " στ ην γ ρα μμή 2 κα ι τ ην τιμή του cookie σε "artichoke''. Χρησιμοποιούμε τ η ν σ υ νά ρ τ η ση time O για να ανακτ ήσουμε τη ν τρ έχο υ σα ώρα και πρ οσθέτου με τ η ν τιμή 3600 σ ' αυτ ή (3600 δευτερόλεπτα ~ 1 ώρα). Αυτό το σύνολο αντιπροσωπεύει τ η ν η μ ερ ο μηνία λήξη ς το υ cook ie. Σαν διαδ ρομή ορίζουμε το "j", πράγμ α το οποίο σημαίνει ότι θα πρέπε ι να στέλνεται ένα cookie για οποιαδήποτε σελίδα περιλαμβάνεται στο περιβάλλον του server μ ας. Σ αν doma in ορίζου με το ''yourdomain.com'', πρ άγμ α το οπ οίο ση μ α ίνει ότι θα στέλνε ται ένα cookie σε οπο ιονδήποτε server ανήκε ι σ' αυ τή τη ν ομάδα. Τ έλος , π ερνά με την τιμή Ο στην συνάρτηση setcook ieO, η οποία σημαίνει ότι τα cook ies μ πορού ν να στέλνονται σε ένα μη -ασφαλές πε ρι βάλλον .
- -- --
Γ
-
----
- --
- --
-
-
-
-
-
-
-
-
-
"...
ι
Μάθετε ΡΗΡ, MySQL και Apache Όλα σε Ένα
Εάν περάσετε στην
setcoo kieO ένα
κενό αλφαρι θ μ ητι κό
("") γ ι α τα
441
ο ρίσ ματα σ ε μ ο ρφή αλ
φαρ ιθμη τικών ή τη ν τιμ ή Ο για τα ακέρα ια πεδ ία, τα ο ρ ίσμ ατα αυτά αγνο ούνται , Όταν χρ η σψοηο ι ε ήτ μία δυναμικά παραγόμενη ώ ρα λήξης σ' ένα
cookie, όπως
στο πα
ραπάνω παρ άδ ειγμα, ο χρ όνος λήξης δημιου ργείτα ι πρ οσθέτο ντα ς ένα συγκε κ ρ ιμ έν ο δ ιά στ ημ α , σε δε υ τερόλεπτα , στ η ν τ ρ έχου σα ώ ρα του σ υστή μ ατο ς στο οπο ίο τ ρ έχε ι το
Apache
κοι η Ρ ΗΡ. Εάν το ρ ο λόι το υ συστήματος δεν ε ίναι ακρ ι βές, είνα ι π ι θανό να υ πολο
γιστή παρελθοντ ι κό ς χρ όνος λ ήξης γ ια ένα
Διαγραφή ενός
coo kie.
Cookie
Σε τ υπι κό ε πίπεδοι για να δι αγράψετε ένα
co okie θα π ρέπε ι ν α καλέσετε τ η ν σ υν άρ τηση setcookieO μ ε μονα δι κό όρισμα το όνομ α του cookie: s etco o k i e ( " v e g e t a b l e " );
Ωστόσο , η ττροοεγγιοη α υ τή δεν δουλ εύει π άντα σωστά και δεν θ α ηρέηε ι να βασίζεστε πάνω τη ς . Μ ία ασφαλέστερ η μ έθοδος ε ίναι να χρ η σιμ οποιε ίτε τ ην σ υνά ρ τη ση
setcoo kieO
μ ε μία χρονική στιγμή η οποία έχε ι ήδη περάσει: s e tco ok i e ( "v ege t a b l e ",
"" ,
t i me ( )-6 0 ,
"/ ",
"yo u r d oma i n .
οοω " ,
ο) ;
Θα πρ έπει επ ίσ ης να δ ιασφαλi'σετ ε ότι π ε ρ νά τε στ ην σ υ ν ά ρ τ η σ η
ραμ έτρους που χρη σιμοπο ι ή σατε αρχικά κατά τον ο ρισμό του
setco okieO τι ς cookie.
Jο ι ε ς π α
Ελεvxος Πρόσβασης με Βάση τις Τιμές των
Cookies Σ' αυτ ή την ενότ η τα θα ασχολ ηθού μ ε το πΙΩ ενδ ιαφέ ρ ον στοιχείο - την χ ρήσ η των cook ies γ ι α τον έλεγχο τη ς πρόσβαση ς σε συγκεκριμένους τομε ίς ενός Web site . Υπο θ έστε ότι έχε τε δημ ιο υ ργήσει μία φόρμα ε ισαγωγ ής στοιχείων σύνδεσ ης η οπο ία ελέγχε ι τις τ ιμ έ ς που ε ι σάγο υν Ο Ι χρ ή στε ς έναντι μι ας β άσ ης δεδο μένων . Ε άν ο χ ρ ήστ ης π ι στοπο ιη θ ε ί, στέλνετε
ένα cookie τ ο οποίο υποδ ηλώνει αυ τό το γεγονός. Κατόηιν, γ ια όλες τις σε λιο ε ς στις ο ποίες θέλετε να έχου ν πρ όσβαση μόνο οι πι στοπο ι η μένοι χρ ήστες, ελέγχε τε τη ν ύπ αρ ξη α υτο ύ του συγκεκρ ιμ ένου σελίδα . Εάν το
cook ie
cooki e . Εάν
το
coo kie υπάρχει,
ο χρήστης θα μπορε ί να δε ι τη ν
δεν υπά ρχ ε ι , μ πο ρ είτ ε να επαναφέρε τε τον χρ ήστη στ ην φ ό ρμα ε ι
σαγωγής τ ων στοι χείων σύνδεσης, ή να εμφανίσετε ένα μήνυ μα σχετιζό μενο με το υς η-ε ρ ιορ ισμο ύς π ρ όσ βαση ς στην οθόν η του.
Θα παρουσ ιάσο υμε αναλυ τικά κάθε ένα από αυ τά τα βή ματα στις επόμε νες ενότ η τες.
Δημ ιουργία του Π ίνακα με τους Εξο υ σι ο δ οτη μ ένο υ ς Χρήστες Οταν ενσωματώνετε λογαρ ιασμούς χρη στών σε μ ία βασ ιζόμενη στο
Web
εφαρ μογ ή, μία
κ οιν ή πρα κτική είνα ι η αποθήκευση των πλ η ρο φ ο ρι ών γ ι α τους χ ρ ή στ ες σε έναν π ίνακα μ ιας βά σ η ς δεδομένων .
Ι
Ελεγχος της Πρόσβοσης στις Εφαρ μογές σας
442
Οι πλη ροφορίες αυτού του πίνακα μπορούν κατόπιν να χρ ησιμοπο ι ούνται γι α την εξου σιοδότηση των χρ η στών, παρέχοντάς τους πρόσβαση στους τομ είς του site που έχετε δημ ιουργήσε ι ειδικά γι' αυτούς τους χρήστες. Η ακόλουθη εντολή δημιουργεί έναν πίνακα με όνομα
auth_users
στην βάση δεδομένων
MySQL που χρησιμοποι ε ίτε, με πεδία για τον κωδικό (10 ), το μικρό όν ομα, το επώνυμο, την διεύθυνση ηλεκτρονικού ταχυδρομείου, το όνομα χρήστη και τον κωδι κό πρόσβασης κάθε χρήστη :
creat e tabl e a u t h-u s er s
(
i d int not nu ll primary key a uto_increment, f~ame v a r c h a r ( 50 ) , l -na me varchar (5 0) , email va rchar(150) , us ername varchar ( 25) , p a ssword va rcha r
(75)
);
Η ακόλουθη εντολή INSERT εισάγει μία εγγραφή στον πίνακα auth_users, για έναν χρ ήστη με όνομα John Doe, ο οποίος έχει δ ιεύθυνση [email protected], όνομ α χρήστη jdoe και κωδ ι κό πρόσβαση ς doepass: mysql> insert i n t o auth.....-use rs v alu es ( ", - > ' j d o e' , pas swo rd(' d oepa ss ' ) ) ; Que r y σ κ , 1 r ow affect ed (0 . 0 0 sec)
' J o h n' ,
' Oo e' ,
Δεν είναι δύσκολο να κατανοήσετε την παραπάνω εντολή
' j o h n @d o e . c o m' ,
INSERT,
εκτός ίσως από την
χρ ή ση της συνάρτηση ς password O. Οταν η συνάρτηση αυτή χρησιμ οποι είται στη ν εντολή INSERT, αυτό που αποθηκεύεται στον πίνακα δεν είναι ο πραγματικός κωδικός πρό σβα σης του χρήστη, αλλά μία κωδ ι κ οποι η μ έν η μορφή του
(hash). auth _users θ α δ ε ίτε την κωδ ικοπο ιημ ένη password, ως ε ξής:
Εάν εμφ ανίσετε τα π εριεχόμενα του πίνακα
φή των κωδ ικών πρόσβαση ς στο πεδίο
μορ
mysql> se lec t * from au th-users ;
+-- --+------ --+--------+-- ------------+----------+--------------- --- + Ι
id
Ι
f-Ωa me
Ι
l -na me
Ι
e mail
Ι
u s e r n a me
Ι
password
+----+--- -----+------ --+- -------------+------ ----+----- -------------+ 1
Ι
Joh n
Ι
Ι
Doe
j o h n @do e . com
Ι
jdoe
Ι
2fae 5c9 d 4 78 e c4b l
Ι
+----+--------+--------+----- ---------+----------+---------- --------+ 1 row i n set
(ο . Ο Ι
sec )
Παρά το γεγονός ότι η εμ φάνι σή του ς μπορεί να υποδηλώ νε ι κάτι τέτο ιο, α υ τ ή η μ ορφ ή των κωδικών πρόσβαση ς δεν ε ίνα ι κρυπτογραφημένη. Αντίθετα, ε ίναι απλώς μ ία ειδική κωδικοποίηση της αρχι κ ής πληροφορ ίας . Τέτοια σχήματα κωδι κοποίησης χρ η σιμοποιού ντα ι γενι κά γι α σκοπούς ταυ τοποίηση ς, σαν κάτι ανάλογο με τα δακτ υλ ι κά αποτ υπώ μα τα. Στην περ ίπτωσ ή μας, ότα ν ελέγχετε τον κ ωδικό πρ όσβαση ς ενός χρήστη, ουσιασηκά αυτ ό που ελέγχετε ε ίνα ι ότι η κωδι κοποιημ ένη μ ορφ ή του κωδ ικού πο υ ε ισάγε ι ο χρ ή στ η; ταιρ ιάζε ι (ταυτοποι ε ίτα r ) με την κωδικοποι ημένη μορφή που έχει αποθηκευτε ί στον πί νακα της βάσης δεδομένων. Η χρ ήση αυτού του σχή μ ατος κωδ ικοποίησης ε ξαλε ίφε ι την ανάγκη για τ ην αποθή κ ευση των πραγμ ατικ ών κωδ ι κών πρ όσβ αση ς και αυξάνει τη ν α σφάλεια.
Μ άθ ετε ΡΗ Ρ, MySQL και Apache Όλα σε Ένα
Δημ ι ου ργία της Φόρμας και του Χρηστών
Script
443
γ ια την Σύνδεση των
Αφού καταχωρίσετε τους "εξουσι οδοτη μ ένους" χρήστες στον πίνακα τη ς βάση ς δεδομ έ νων, θα πρέπει να τους παρέχετ ε έναν μηχανισμ ό γ ι α να αποδεικνύουν την τα υτό τητά τους. Στην περίπτωση του παραδε ίγματός μας αρ κε ί μία απλή φόρμα μ ε δύο πεδία, όπως βλέπετε στην Λίστα Λ Ι ΣΤΑ
1:
23.7
23.7.
Η Φ όρμα γ ια την Σύνδε ση των Χ ρη στών
2: 3: 4: 5: 6: 7: 8: 9: 10 : 11 :
Li sting 23. 7 Us e r Log in Form
Login Forrn
< /p>
1 3: 14 : < /body>
15: Εισάγετε τον παραπάνω κώδικα σε ένα αρχείο κε ιμ ένου μ ε όνομα Iί sti n g2 3. 7. p h p και το ποθ ετήστε αυτό το αρχείο στον αρχι κό κατάλογο εγγράφων τ ου συ νέχε ια θα δημ ιου ργή σετε το απαι τού μ ενο η φόρμα - θα ονομάζεται listing23.8.php. ΛΙ ΣΤΑ ι
23.8
Το
script, το αρχε ίο το υ
ScrIpt γ ια τη ν Σύ νδεση των Χρη στών