FollowSymlinks σε cgi-bin directory στον Apache
Alexandros Kosiaris
alex at noc.grnet.gr
Mon Apr 27 15:49:30 EEST 2009
George Notaras wrote:
> Alexandros Kosiaris wrote:
> Η αλήθεια είναι ότι τα 'γραψα λίγο χύμα. :)
> Τα configurations βρίσκονται στο /etc/awstats, ώστε κάνοντας χρήση του
> script awstats_updateall.pl να ενημερώνονται τα awstats databases για
> όλα τα sites.
>
> Όμως, το awstats.pl τρέχει ως cgi script ως εξής:
>
> http://www.example.org/awstats/awstats.pl
> ή
> http://www.example.org/awstats/awstats.pl?config=www.example.org
>
> Και στις δύο περιπτώσεις το awstats.pl ψάχνει το configuration αρχείο
> awstats.www.example.org.conf στον κατάλογο από τον οποίο τρέχει. Δεν
> μπορεί να ρυθμιστεί (ή τουλάχιστον εγώ δεν ξέρω πως θα γίνει αυτό χωρίς
> να πειραχτεί ο κώδικας) να ψάχνει τα configs στο /etc/awstats/.
Από τον κώδικα του awstats.pl γραμμή 1622
# Check config file in common possible directories :
# Windows : "$DIR" (same dir than awstats.pl)
# Standard, Mandrake and Debian package : "/etc/awstats"
# Other possible directories : /usr/local/etc/awstats", "/etc"
# FHS standard, Suse package : "/etc/opt/awstats"
Αυτά είναι τα σχόλια. Όντως όμως από τον κώδικα μερικές γραμμές πιο κάτω
ορίζει τον πίνακα
@PossibleConfigDir = (
"$DIR", "/etc/awstats",
"/usr/local/etc/awstats", "/etc",
"/etc/opt/awstats" );
και μετά ψάχνει το config file στα διάφορα directories. με την σειρά.
Έκδοση awstats-6.9,1:
>
> Οπότε, είναι αναγκαίο σε κάθε script aliased directory από το οποίο θα
> τρέχει το awstats.pl, να υπάρχουν δύο symlinks:
>
> cd /home/user1/www.example.org/awstats/
> ln -s /usr/share/awstats/wwwroot/cgi-bin/awstats.pl awstats.pl
> ln -s /etc/awstats/awstats.www.example.org.conf \
> awstats.www.example.org.conf
>
> Ελπίζω τώρα να είναι λίγο πιο ξεκάθαρο πού αντιμετωπίζω πρόβλημα γιατί
> είναι μάλλον απαραίτητο να υπάρχουν τα παραπάνω symlinks μέσα στο
> script-aliased directory.
Τουλάχιστον για το .conf ελπίζω να είναι ξεκάθαρο πλέον ότι δεν το
χρειάζεσαι. Για το awstats.pl θέλει το shared cgi directory που έγραψα
στο προηγούμενο e-mail.
>
>> Από εκεί και πέρα το να μετακινούνται(ή κοπιάρονται) τα αρχεία είναι
>> εντομάκι που περιμένει να σε δαγκώσει. Και τα symlinks εκτός εάν
>> φτιάξεις σταθερή διαδικασία που θα την τηρείς ευλαβικά κάποια φορά θα τα
>> ξεχάσεις.
>
> Γενικά για τα περισσότερα administration tasks φτιάχνω κάποιο script για
> να κανει τις αλλαγές αμεσα σε όλα τα vhosts ή σε καθένα ξεχωριστά, οπότε
> αυτο πιθανότατα δε θα είναι πρόβλημα.
Καλό αυτό.
>
>> Μπορείς να κάνεις μία παρασπονδία όμως φτιάχνοντας πχ ένα
>> ειδικό cgi directory που θα περιέχει μόνο το awstats και θα είναι shared
>> μεταξύ των vhosts.Πχ
>>
>> Εκτός των vhost declarations
>>
>> Alias /awstats "/usr/local/www/awstats/cgi-bin/"
>> <Location /awstats>
>> AddHandler cgi-script .pl
>> Options +ExecCGI
>> DirectoryIndex awstats.pl
>> </Location>
>>
>> <Directory "/usr/local/www/awstats/">
>> Options None
>> AllowOverride None
>> Order allow,deny
>> Allow from all
>> </Directory>
>
> Το παραπάνω προϋποθέτει ότι όλα τα awstats configurations θα βρίσκονται
> στο /usr/local/www/awstats/cgi-bin/ ? Αυτό είναι πολύ καλή ιδέα, αλλά θα
> πρέπει ίσως να βρεθεί και κάποιος τρόπος ώστε να μην μπορεί ο ένας
> χρήστης να βλέπει τα στατιστικά του άλλου.
Τσού. Όλα βρίσκονται στο /usr/local/etc/awstats. Από εκεί και πέρα
βάζοντας στο Location authentication, suEXEC στο κάθε virtualhost και τα
κατάλληλα permission σε configuration και awstat databases λύθηκε το
πρόβλημα.
--
Alexandros Kosiaris Network Operation Center , GRNET S.A.
e-mail : alex at noc.grnet.gr
Public Key Fingerprint :
D6B1 0634 BE65 719C 6C95 7492 8201 4B46 C478 F074
More information about the Linux-greek-users
mailing list