View Full Version : Problemi di permessi di Apache
Salve,
ho appena installato Apache 2 su Ubuntu 12.04, però ho un problema con i permessi: lasciando la directory di default, /var/www, tutto funziona perfettamente, però siccome preferisco usare una mia cartella presente nella home, ho modificato il file /etc/apache2/sites-available/default.
Ora però ricevo il seguente errore: "403 Forbidden: You don't have permission to access / on this server."
Ho provato a modificare il proprietario della cartella che vorrei usare, e non funziona, nemmeno impostando i permessi a 777! :muro: Help!
Fai conto che:
1. apaci gira sotto l'utente www-data
2. oltre a quello che c'e' in /etc/apache2/sites-available/default legge le impostazioni generali del server in /etc/apache2/sites-available/default
Che non ci sia niente li che precluda l'accesso alla tua directory home.
3. Se non c'e' un index.html o analogo deve esserci un option indexes:
<Directory /home/utente/htdocs/ >
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Se no prova a richiamare direttamente la pagina col il path completo: http://localhost/index.html
Questo è il contenuto del file /etc/apache2/sites-available/default:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/ams/Apache
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/ams/Apache/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
La pagina index.html è presente, ma mi nega comunque l'accesso alla directory; devo modificare qualche permesso?
Questo è il contenuto del file /etc/apache2/sites-available/default:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/ams/Apache
<Directory /home/ams/Apache/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
La pagina index.html è presente, ma mi nega comunque l'accesso alla directory; devo modificare qualche permesso?
Comincia a tgliere tutto quello che non serve ;)
e poi guarda un po' alla volta che succede nei log, es. error.log
Per quanto riguarda i permessi tutti i files e la cartella /home/ams/Apache/ (togli quella cavolo di A maiuscola) devone essere leggibile dal gruppo altri, o comunque dall'utente www-data
# chmod -R o+r /home/ams/Apache/
Comincia a tgliere tutto quello che non serve ;)
e poi guarda un po' alla volta che succede nei log, es. error.log
Per quanto riguarda i permessi tutti i files e la cartella /home/ams/Apache/ (togli quella cavolo di A maiuscola) devone essere leggibile dal gruppo altri, o comunque dall'utente www-data
# chmod -R o+r /home/ams/Apache/
Dove posso trovare i log? Su /etc/apache2 non ci sono.. (scusa l'ignoranza!)
Comunque ho modificato i permessi come mi hai suggerito tu (e come d'altronde avevo già provato), ma il risultato è lo stesso..
Edit: ho trovato il file error.log (in var/log/apache2), e mi da quest'errore:
"[Thu Jul 25 13:27:54 2013] [crit] [client 127.0.0.1] (13)Permission denied: /home/ams/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable"
Quindi non riesce a leggere il file .htaccess; ho controllato, e nella mia home non esiste quel file. Ho provato a crearlo, lasciandolo vuoto, ma non funziona ugualmente, mi da lo stesso errore (ovvero non può leggerlo, anche se ho impostato che può essere letto da tutti). Cosa devo fare?
Dove posso trovare i log? Su /etc/apache2 non ci sono.. (scusa l'ignoranza!)
sono importanti anche
/etc/default/apache2
/var/run/apache2*
...e sopratutto:
/usr/share/doc/apache2
Edit: ho trovato il file error.log (in var/log/apache2), e mi da quest'errore:
"[Thu Jul 25 13:27:54 2013] [crit] [client 127.0.0.1] (13)Permission denied: /home/ams/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable"
Quindi non riesce a leggere il file .htaccess; ho controllato, e nella mia home non esiste quel file. Ho provato a crearlo, lasciandolo vuoto, ma non funziona ugualmente, mi da lo stesso errore (ovvero non può leggerlo, anche se ho impostato che può essere letto da tutti). Cosa devo fare?
Quando fai una modifica devi controllare sempre i file di log (tail -f) e quando c'e' un problema lo cerchi su google o lo posti su forum.
A te cerca un htaccess nella tua /home/ams , cosa che non dovrebbe accadere se gli hai impostato la document root in /home/ams/apache .
...il che mi fa pensare che in un tuo esperimento precedente gli hai impostato la document root in /home/ams e adesso lui cerca di aprirla da li (e non puo' entrarci probabilmente).
Quindi ora:
1. cerchi nei file di config /home/ams e vedi dove puoi avere scazzato
2. ripristini i backup dei file di configurazione (che ovviamente fai prima di cominciare a modificare!) e re-imposti il tuo virtual host
2.1 se non hai fatto i backup ti fai una copia del tuo attuale file di conf del virtual host, o di tutta la tua cartella /etc/apache2
e poi gli fai un purge di tutto:
apt-get remove --purge apache2
rm -r /etc/apache2
apt-get install apache2
e fai i backup e ricominci da un ambiente pulito
Dopo aver smanettato un po', finalmente sono riuscito a risolvere!
Scriverò come ho fatto, potrebbe servire a qualcuno.
Da quello che ho capito il problema non era l'utente di apache (www-data) a non avere i permessi per leggere la cartella, bensì proprio il mio utente. Quindi, leggendo un po' su internet e provando, ho configurato il file httpd.conf (in /etc/apache2), che è vuoto di default, così:
User ams
<VirtualHost *:80>
DocumentRoot /home/ams/apache
<Directory /home/ams/apache/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
La riga fondamentale è quella che ho evidenziato, perché permette al mio utente (ams) di accedere ad apache.
Ora tutto funziona, ringrazio moltissimo eaman per la disponibilità!
Welcome, datti una letta a /usr/share/doc/apache2/README.Debian.gz
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.