FollowSymlinks σε cgi-bin directory στον Apache

George Notaras gnot at g-loaded.eu
Mon Apr 27 15:59:45 EEST 2009


Alexandros Kosiaris wrote:
> 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 λύθηκε το
> πρόβλημα.
> 

Ευχαριστώ για την όλη βοήθεια. :)

Note to self: dammit, γιατί ακόμα θεωρώ τόσο extreme το να ρίξω μια
ματιά στον κώδικα;




More information about the Linux-greek-users mailing list