Ubuntu/Apache2/ Forbidden/Permission error

20,835

Solution 1

the user running the apache deamon, on ubuntu thats www-data (like in most debian based systems), needs at least read permissions for the files. But as you posted only owner root and group root has read rights.

Actually owner root has rw group root has r.

So the user actually running the webserver (www-data) falls to the others permissions, which have none.

Either do a chmod -R o+r /var/www/banner/* or a chown -R www-data /var/www/banner to fix that.

Solution 2

I always forget that while the sub-directories and files need the read permission, the sub-directories also need execute permission.

chmod a+x banner

This tends to come up when I've saved a web page in the 'Webpage, Complete' format with Chrome or Firefox and am then trying to serve it under localhost, which I often do when building mockups for clients.

Share:
20,835
Admin
Author by

Admin

Updated on April 13, 2020

Comments

  • Admin
    Admin about 4 years

    I have Ubuntu 11.10 with Lamp installed

    There is some files that i can't access to from my web directory "/var/www"

    http://localhost/banner/banner.html I am getting an error :

    Forbidden You don't have permission to access /banner/banner.html on this server. Apache/2.2.20 (Ubuntu) Server at localhost Port 80

    I can access /var/www/index.php normally as i can browse /var/www/banner normally too from my browser

    This is a small peace of :

        a1a4a@A1A4a:~$ ls -l /var/www
        total 7088
        -rwxrwxrwx  1 root root     916 2011-11-25 20:49 access-controlled.php
        -rw-r--r--  1 root root   22163 2011-12-16 22:28 account_info.php
        -rw-r--r--  1 root root   22126 2011-12-16 22:27 account_info.php~
        -rw-r--r--  1 root root   16585 2011-12-16 21:32 acount_info.php
        -rw-r--r--  1 root root       0 2011-12-16 21:28 acount_info.php~
        drwxrwxrwx  5 root root    4096 2011-12-09 23:03 banner
        drwxrwxrwx  2 root root    4096 2011-12-09 23:03 css
    

    And

        a1a4a@A1A4a:~$ ls -l /var/www/banner
        total 20
        -rw--w---- 1 root root 2564 2011-11-25 20:51 banner.html
        drwx-w---- 4 root root 4096 2011-12-09 23:03 examples
        drwx-w---- 2 root root 4096 2011-12-09 23:03 lib
        drwx-w---- 4 root root 4096 2011-12-09 23:03 skins
        -rw--w---- 1 root root 1431 2011-11-25 20:51 style.css
    

    This is my config :

        <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    
    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        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>
    

    My "nano /etc/apache2/apache2.conf" is set as default ...

    How can i make all my /var/www files (folders and sub-folders and files ) accessible from my browser as if i was on a windows machine using Wamp ...

    P.S: I will host the website on a Windows machine i am using ubuntu just for coding.