ΜΑΘΕΤΕ PHP,MySQL και Apache Όλα σε ένα
 9789605126551

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

ΜΑΘΕΤΕ

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.



Εγκατάσταση και Διαμάρφωση της 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 :
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 :
  • 12: < / Di r e c t or y > Στ ην επόμεν η ενότητα θ α μ ά θετε τεχνικές για τον έλεγχο τ ης πρόσβασης από την πλευ ­ ρά τη ς εφαρμογ ής, με βά ση της πληροφορίες που περι λα μβάνου ν τα coo kies.

    Εισαγωγή στα

    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 "

    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> "; ?>

    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

    Username :
    < /p>

    P assword:< !STRONG>



    1 3: 14 : < /body>

    15: Εισάγετε τον παραπάνω κώδικα σε ένα αρχείο κε ιμ ένου μ ε όνομα Iί sti n g2 3. 7. p h p και το­ ποθ ετήστε αυτό το αρχείο στον αρχι κό κατάλογο εγγράφων τ ου συ νέχε ια θα δημ ιου ργή σετε το απαι τού μ ενο η φόρμα - θα ονομάζεται listing23.8.php. ΛΙ ΣΤΑ ι

    23.8

    Το

    script, το αρχε ίο το υ

    ScrIpt γ ια τη ν Σύ νδεση των Χρη στών