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