Αναβάθμιση Web Server [Backup & Αναβάθμιση Apache / Zope]

Posted by superuser Sat, 12 Jan 2008 15:45:00 GMT

Backup & Αναβάθμιση Apache / Zope

Μετά από μια μακρά περίοδο - 294 μέρες - σταθερότητος του VPS σέρβερ μου αποφάσισα να κάνω μια ριζική αναβάθμιση στο σύστημα ώστε να συμβαδίζει με το σύστημα των Ports του FreeBSD, και να χρησιμοποιεί ασφαλέστερες εκδόσεις για τα προγράμματα μου. Το σύστημα VPS τρέχει FreeBSD 6.1 και το χρησιμοποιώ κυρίως για φιλοξενία ιστοσελίδων με εξυπηρετητές Apache και Zope.

Καταρχήν έκανα το απαραίτητο backup των σημαντικών αρχείων.

  • Για τον Apache αποθήκευσα το αρχείο ρύθμισης (/usr/local/etc/apache/httpd.conf) που περιέχει όλες τις ρυθμίσεις απόκρισης του σέρβερ καθώς και του Virtual Hosting, και όλους τους υποκαταλόγους του /usr/local/www που περιλαμβάνει τα περιεχόμενα όλων των ιστοσελίδων που εξυπηρετεί ο Apache.Το backup είναι απαραίτητο σε κάθε περίπτωση. Αν κάτι δεν πάει καλά, πριν πάθετε το εγκεφαλικό μπορείτε να καθησυχάσετε τον εαυτό σας πως δεν χάθηκε τίποτε! Στην περίπτωση του Apache στόχος μου ήταν να περάσω από την έκδοση 1.3.36 στην τελευταία έκδοση 1.3.39_2
  • Το Zope φυλάει τα αρχεία των σελίδων σε ένα εκτελέσιμο αρχείο ονόματι Data.fs. Θέλει ιδιαίτερη προσοχή ο τρόπος που θα αντιγράφετε αυτό το αρχείο. Καλό είναι να το αντιγράψετε και με τον σέρβερ σε λειτουργία, αλλά και σταματημένο για παν ενδεχόμενο. Επιπλέον, για κάθε Instance του Zope αποθηκεύω τους καταλόγους var,log, etcκαι τον κατάλογο των Products(περιέχει το CoreBlog και μερικές διορθώσεις σφαλμάτων του συστήματος). Στην προκειμένη περίπτωση η αναβάθμιση αφορούσε το πέρασμα από την έκδοση 2.8.6, στην τελευταία έκδοση του κορμού, την 2.8.9.1

Αναβάθμισα τώρα την συλλογή των Ports του FreeBSD με την τελευταία έκδοση χρησιμοποιώντας cvsup. Προτιμώ να χρησιμοποιώ την έκδοση current και όχι την τελευταία stable, αυτό μπορείτε να το ελέγξετε από το ports-supfile που θα δημιουργήσετε. Η αναβάθμιση της συλλογής των Ports έγινε με επιτυχία. Πριν αναβαθμίσω σταματάω χειροκίνητα τον Apache και το Zope.

Για την αναβάθμιση των πακέτων στο FreeBSD χρησιμοποιώ το portmanager. Μου αρέσει ο τρόπος με τον οποίο αναβαθμίζει τα πακέτα. Κάνει backup την παλαιά έκδοση, σε περίπτωση που η νέα εγκατάσταση αποτύχει, ξεκινάει την μεταγλώττιση της νέας έκδοσης και εγκαθιστά/αναβαθμίζει όσα άλλα πακέτα ή βιβλιοθήκες εξαρτώνται απ'αυτό. Αν κάτι πάει στραβά, επαναφέρει την παλαιά έκδοση. Πριν ξεκινήσω όμως να το χρησιμοποιώ, παρατήρησα αλλαγή στην δομή των καταλόγων στις πόρτες του FreeBSD. Το μήνυμα λάθους στην πρώτη προσπάθεια μου να αναβαθμίσω ήταν χαρακτηριστικό:

On FreeBSD before 6.2 ports system unfortunately 
can not set default X11BASE by itself so please help 
it a bit by setting X11BASE=${LOCALBASE} in make.conf.
On the other hand, if you do wish to use non-default X11BASE, 
please set variable USE_NONDEFAULT_X11BASE.
*** Error code 1
Πρόσθεσα στο αρχείο /etc/make.conf την γραμμή:
X11BASE=${LOCALBASE}
και το πρόβλημα λύθηκε.

Τώρα είμαι έτοιμος για την αναβάθμιση του Apache.Η νέα έκδοση είναι η 1.3.39_2 , και για την εγακατάσταση προϋποθέτει και αναβάθμιση των πακέτων expat και perl. Όπως είπα και παραπάνω χρ5ησιμοποιώ portmanager, επομένως περιμένω να ενεργήσει από μόνο του για τις ενημερώσεις όλων των εξαρτούμενων πακέτων. Δίνω λοιπόν:

portmanager www/apache13
Με την ολοκλήρωση των αναγκαίων μεταγλωττίσεων και κατασκευών και εγκαταστάσεων σε λιγότερο από μισή ώρα είχα εγκατεστημένη είχα αναβαθμίσει στην τελευταία έκδοση. Το αρχείο httpd.conf βρισκόταν ανέγγιχτο στην θέση του, και η εκκίνηση του httpd έδειξε πως όλα ήταν εντάξει.

Για το Zope 2.8 ακολούθησα την ίδια πρακτική:

portmanager www/zope28
Εδώ δεν ήμουν το ίδιο τυχερός. Καταρχήν άλλαξε ο προεπιλεγμένος κατάλογος των Products:
The default installation directory for 
Zope Products has changed from 
/usr/local/www/zope28/lib/python/Products 
to /usr/local/www/zope28/Products.
Η λύση σε αυτό το πρόβλημα δώθηκε εύκολα προσθέτοντας στον τομέα "Products" του αρχείου ρυθμίσεων zope.conf:
products /usr/local/www/zope28/Products
products $INSTANCE/Products
Ωστόσο ο Zope Server δεν ξεκινούσε. Τα αρχεία - που είχαμε κάνει backup - βρίσκονταν στην θέση τους, επομένως κάτι άλλο συνέβαινε. Ξεκίνησα το Zope με αναφορά σφάλματος, και πια φανερό. Κατά την αναβάθμιση τα αρχεία των καταλόγων var και log είχαν χάσει τις άδειες εγγραφής:
$ cd ./INSTANCE/var
$ ls -l 
total 64924
-r--r--r--  1 W_user  wheel  64502610 Jan 10 14:10 Data.fs
-r--r--r--  1 W_user  wheel     33103 Jan 19  2007 Data.fs.index
-r--r--r--  1 W_user  wheel         6 Oct 31 20:15 Data.fs.lock
-r--r--r--  1 W_user  wheel   1857299 Jan 10 14:10 Data.fs.tmp


$ cd ./INSTANCE/log
$ ls -l
total 85026
-r--r--r--  1 W_user  W_user        57 Jan 10 15:37 README.txt
-r-r--r--  1 W_user  W_user  86712990 Jan 10 15:38 Z2.log
-r-r--r--  1 W_user  W_user    250011 Jan 10 15:37 event.log
Τελικά δεν ήταν τόσο τραγικό.Πρόσθεσα άδειες εγγραφής χρήστη (π.χ. για το κύριο αρχείο δεδομένων του Zope):
chmod a+w Data.fs
και όλα επιστρέψαν λειτουργικά όπως πρώτα.Τα αρχεία backup του Zope δεν χρησίμευσαν εκτός του ότι έπρεπε να αντιγράψω τις άδειες των αρχείων που επλήγησαν.

Καλές Αναβαθμίσεις στα Συστήματα σας

----------------------------
Comments:

Re: Αναβάθμιση Web Server [Backup & Αναβάθμιση Apache / Zope] Από που έχεις αγοράσει το VPS σου; Είχα ψάξει παλιότερα (πρόχειρα όμως), και το μόνο που έβρισκα ήταν κάτι απαρχαιωμένα με 4.x. Καταχωρήθηκε από: streamkid at January 19,2008 15:09

Re: Αναβάθμιση Web Server [Backup & Αναβάθμιση Apache / Zope] WWW.JOHNCOMPANIES.COM.Υπάρχει κάποια έκπτωση στην τιμή αν είσαι developer ή αν ασχολείσαι με κάποιο project ανοιχτού λογισμικού. Επίσης υπάρχει και το HIGHSPEEDRAILS. Είχα παλαιότερα εκεί τον σέρβερ (παλαιότερα ονομαζόταν Zettai.Net). Και στις 2 περιπτώσεις οι σέρβερ είναι αξιόπιστοι και έχουν πολύ καλή υποστήριξη. Είναι στην Αμερική - έχουν σχετικά καλό ping για τις δικές μου ανάγκες, και κυρίως χαμηλές τιμές (τώρα που το δολλάριο έχει πέσει αισθητά). Αν θες κάτι στην Ευρώπη, η πιο προσιτή λύση - για FreeBSD - είναι στην Ολλανδία LEASEWEB. Δεν προσφέρουν VPS, αλλά πραγματικό σέρβερ με τιμή 59,00 Ευρώ. Αν και πάς σε άλλη κατηγορία, αν έχεις ένα καλό project ή έχεις ώρα να αφιερώσεις, νομίζω πως μπορείς εύκολα να αποσβέσεις το ποσό. Καταχωρήθηκε από: superuser at January 19,2008 22:58

Re: Αναβάθμιση Web Server [Backup & Αναβάθμιση Apache / Zope] Απ' όλες τις προτάσεις σου, η πιο ενδιαφέρουσα είναι η τελευταία. Είναι εξακριβωμένη εταιρεία; Μου φαίνεται πολύ παράξενο να δίνουν κανονικό server με τέτοια specs για 60 ευρώ. Καταχωρήθηκε από: streamkid at February 03,2008 13:50

Re: Αναβάθμιση Web Server [Backup & Αναβάθμιση Apache / Zope] Εξακριβωμένη; Είναι μια μεγάλου μεγέθους εταιρεία στην Ολλανδία, και νομίζω πως και για αυτό το λόγο καταφέρνει και κάνει αυτές τις τιμές. Δεν έχω διαβάσει κάτι αρνητικό. Καταχωρήθηκε από: superuser at February 06,2008 11:27

Re: Αναβάθμιση Web Server [Backup & Αναβάθμιση Apache / Zope] Δεν δουλεύει το παραπάνω λινκ για την LeaseWeb, προφανώς γιατί σταμάτησαν να προσφέρουν σέρβερ FreeBSD. Απλά να προσθέσω πως μια ακόμη καλή περίπτωση για VPS είναι η RootBSD. Έχει τους εκπληκτικούς χρόνους ping για αμερικάνικο πάροχο, πολύ καλά χαρακτηριστικά και κοστίζει λιγότερο από την "JohnCompanies", δέχεται μηνιαία συνδρομή με Paypal και έχει δικό του cpanel που επιτρέπει reboot. Ήδη το site έχει βάλει πλώρη προς North Carolina (εκεί εδρεύει). Καταχωρήθηκε από: superuser at March 23,2008 14:08

Posted in  | Tags , , , , ,  | no comments

CVSUP (CSUP) | FreeBSD-stable & current

Posted by superuser Tue, 24 Apr 2007 21:08:00 GMT

ΠΡΟΣΟΧΗ!!! Αν δεν σας ενδιαφέρει να πειραματιστείτε τότε κρατήστε την stable έκδοση, αυτό που ακολουθεί δεν είναι για σας...

Μια Release στην FreeBSD είναι η πιο σταθερή έκδοση μιαν ορισμένη χρονική στιγμή. 3 ή 4 φορές τον χρόνο οι προγραμματιστές σταματούν να κάνουν αλλαγές και προσπαθούν να επιλύσουν όλα τα ζητήματα που αφορούν τη σταθερότητα του συστήματος. Το αποτέλεσμα αυτού του φινιρίσματος είναι μια Release. Η τελευταία Release είναι η 6.2 . Αν επιζητείτε σταθερότητα ή εργάζεστε σε σταθμούς εργασίας είναι καλό να έχετε την τελευταία σταθερή έκδοση και να ΜΗΝ κάνετε αλλαγές (εκτός αν είναι αναγκαίο).

Αν θέλετε να έχετε την τελευταία τρέχουσα (ονομάζεται current) έκδοση του Λ.Σ. FreeBSD ή είστε αναγκασμένοι να αναβαθμίσετε γιατί αλλιώς κάποιες εφαρμογές δεν λειτουργούν, τότε είναι ώρα να δούμε πως. Προσοχή, η αναβάθμιση μπορεί να έχει και αντίθετα αποτελέσματα. Μπορούμε να οδηγηθούμε και από μια λειτουργική εφαρμογή σε μια εφαρμογή με λάθη. Κάντε back-ups ...

Το cvsup (/usr/ports/net/cvsup) είναι ένα εξαιρετικό εργαλείο αναβάθμισης του συστήματος μας. Προϋποθέτει την ύπαρξη του source code στον υπολογιστή μας και η λειτουργία του χονδρικά βασίζεται στο να συγκρίνει τον νεότερο διαθέσιμο κώδικα από κάποιον σέρβερ με τον υπάρχον κώδικα στο σύστημα μας. Αν είναι οι κώδικες είναι οι ίδιοι δεν αλλάζει τίποτε, αν δει πως έχει αλλάξει η έκδοση τότε την αντικαθιστά με την νεότερη.

Για λεπτομερείς πληροφορίες ανατρέξτε στο cvsup.org ή/και στην σχετική σελίδα του FreeBSD HandBook.

Καταρχήν ελέγξτε αν το source code της stable έκδοσης σας περιέχεται στο σύστημα σας. Ελέγξτε αν ο φάκελος /usr/src έχει περιεχόμενο.

$ cd /usr/src && ls -l

Αν o φάκελος /usr/src είναι κενός τότε κατά πάσα πιθανότητα να μην έχετε αντιγράψει τον κώδικα. Θα τον μεταφέρουμε από το CD της εγκατάστασης της έκδοσης FreeBSD. Για να κάνετε mount δώστε:

# mount -t cd9660 /dev/cd0 /cdrom 
ή δείτε το σχετικό post.

Βρείτε τον φάκελο src στο CD (συνήθως στο /cdrom/Release-6.xx.xx/src) και μεταφερθείτε στον φάκελο:

cd /cdrom/Release-6.xx.xx/src 
, και εγκαταστήστε τον στο /usr/src με:
 ./install.sh all 
. Τώρα μεταφερθείτε στο /usr/src . Ο κώδικας έχει εγκατασταθεί; Λογικά ναι.

Ελέγξτε αν η εφαρμογή cvsup είναι εγκατεστημένη.

$ pkg_info | grep cvsup 

Αν δεν είναι εγκατεστημένο, τότε κάντε την εγκατάσταση από τις πόρτες σαν root

# cd /usr/ports/net/cvsup && make install clean 

Το cvsup εκτελεί ένα configuration file ανάλογα με ποιο κομμάτι του συστήματος μας θέλουμε να αναβαθμίσουμε. Όλα τα configuration files βρίσκονται υπό μορφή παραδείγματος στο /usr/share/examples/cvsup/ .

  • cvs-supfile (για αναβάθμιση ολόκληρου του συστήματος, προσωπικά πιστεύω πως είναι περιττό)
  • doc-supfile (για αναβάθμιση της τεκμηρίωσης (documentation) - Αποφάσισα να βοηθήσω λίγο με την μετάφραση της τεκμηρίωσης του FreeBSD στα ελληνικά, και θα γράψω γι'αυτό προσεχώς - εγώ το χρησιμοποιώ αν και ακόμα δεν αξιώθηκα να ξεκινήσω τις μεταφράσεις)
  • ports-supfile (για αναβάθμιση των πορτών - Γι'αυτό θα γίνει εκτενής αναφορά).

Ας υποθέσουμε πως θέλω να αναβαθμίσω ολόκληρη την λίστα των πορτών. Αντιγράφω το ports-supfile στο /usr/src

# cp /usr/share/examples/cvsup/ports-supfile /usr/src/ 
και κάνω μερικές μετατροπές στο αρχείο /usr/src/ports-supfile.

Ανοίξτε το /usr/src/ports-supfile με τον αγαπημένο σας κειμενογράφο και αλλάξτε:

  • Θέστε τον σέρβερ απ'τον οποίο θα αναβαθμίσετε τις πόρτες σας. Εγώ χρησιμοποιώ τον ελληνικό cvsup.gr.FreeBSD.org (βλέπε ntua.gr) λόγω απόστασης
    *default host=cvsup.gr.FreeBSD.org 
  • Αν επιθυμείτε να αναβαθμίσετε όλες τις πόρτες τότε δεν χρειάζεστε καμμιά άλλη αλλαγή. Ελέγξτε μόνο στον τομέα ##PORTS COLLECTIONS## πως αναφέρεται η επιλογή
    ports-all 
    (δίχως δίεση - η δίεση πως ότι ακολουθεί στη γραμμή είναι σχόλιο)
  • Αν θέλετε να αναβαθμίσετε μόνο κάποιες κατηγορίες πορτών (για παράδειγμα μόνο τις editors και finance) και όχι όλες τις υπόλοιπες είναι απλό. Καταργώ με μια δίεση την επιλογή ports-all
    # ports-all
    και σβήνω τις διέσεις από τις επιλογές ports-editors και ports-finance
     ports-editors 
    #ports-emulators
    ports-finance

    Σώστε το αρχείο και κλείστε τον κειμενογράφο σας. Είμαστε έτοιμοι να αναβαθμίσουμε τον κορμό των πορτών (port tree). Από root δώστε :

    # cd /usr/src 
    # cvsup ports-supfile


    Έχοντας αναβαθμίσει τον κορμό των πορτών μπορούμε να αναβαθμίσουμε κάθε εφαρμογή ξεχωριστά ή όλες μαζί χρησιμοποιώντας τα εργαλεία portmanager ή portupgrade. Προσωπικά προτιμώ το portmanager (/usr/ports/ports-mgmt/portmanager). Αν για παράδειγμα θέλω να ανανεώσω όλες τις εφαρμογές - πρέπει να είναι εγκατεστημένο το portmanager - δίνω:

    # portmanager -u 

    Ενώ αν πρόκειται για κάποια συγκεκριμένη εφαρμογή (π.χ. για το gnumeric (/usr/ports/math/gnumeric):
    # portmanager math/gnumeric 

    Αυτός είναι και ένας εναλλακτικός τρόπος να εγκαταστούμε μια εφαρμογή εκτός του τρόπου που είδαμε προηγούμενα.
    Αν πάλι προτιμάτε το portupgrade (/usr/ports/ports-mgmt/portupgrade), για αναβάθμιση όλων των πορτών:
    # portupgrade -a 

    και για κάθε εφαρμογή ξεχωριστά (π.χ. για το gnumeric (/usr/ports/math/gnumeric):
    # portupgrade -R gnumeric 

    upgrade & have fun!

    Comments

    Re: CVSUP (CSUP) | FreeBSD-stable & current mporeis na mou peis pos mporo na kano recompile ton kernel (FreeBSD) apo RELEASE se RELEASE-security (style: uname -a FreeBSD pandora.ispeeds.net 6.2-RELEASE-security FreeBSD 6.2-RELEASE-security #0: Tue Mar 13 03:41:49 EST 2007 ) Den einai RELENG . Ta exw dokimasei ola ta RELENS. Thnx Καταχωρήθηκε από: simon at December 23,2007 14:08

    Re: CVSUP (CSUP) | FreeBSD-stable & current Μμμ...Δεν έχω κάνει ποτέ recompile σε security release (υπάρχει κάτι τέτοιο;). Συνήθως περνάω τις Κρίσιμες Εκδόσεις Ασφαλείας με freebsd-update. Έχω γράψει ένα σχετικό post, αν μπορεί να σε βοηθήσει. Κατεβάζω τα patches (binaries) και τα εγκαθιστώ. H Release εμφανίζεται ως "FreeBSD 6.2-Release-p4". Καταχωρήθηκε από: superuser at December 24,2007 14:25

    Re: CVSUP (CSUP) | FreeBSD-stable & current

    pandora.ispeeds.net 6.2-RELEASE-security FreeBSD 6.2-RELEASE-security #0: Tue Mar 13 03:41:49 EST 2007 )
    
    o server pandora.ispeeds.net einai RELEASE-security apla den ksero pos ginetai... Καταχωρήθηκε από: simon at December 25,2007 12:46

    Posted in  | Tags , , , , ,  | no comments