Recientemente he tratado de establecer un servidor de pruebas con Apache. El sitio se debe ejecutar bajo dominio www.mytest.com. Siempre me 403 Forbidden de error. Estoy en Ubuntu 10.10 server edition. El doc raíz es bajo dir /var/www. La siguiente es mi configuración:

Contenido de /var/www

ls -l /var/www/

total 12
drwxr-xr-x 2 root root 4096 2011-08-04 11:26 mytest.com
-rwxr-xr-x 1 root root 177 2011-07-25 16:10 index.html

Contenido de el archivo de host en el servidor (con IP 192.168.2.5)

cat /etc/hosts

127.0.0.1 localhost 
127.0.1.1 americano
192.168.2.5 americano.mytest.com www.mytest.com

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

De configuración del sitio

<VirtualHost *>
ServerAdmin [email protected]
ServerName www.mytest.com
ServerAlias mytest.com

DocumentRoot "/var/www/mytest.com"

ErrorLog /var/log/apache2/mytest-error_log
CustomLog /var/log/apache2/mytest-access_log combined

#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/var/www/mytest.com">
Options -Indexes FollowSymLinks
AllowOverride None

Order allow,deny
Allow from all
</Directory>
</VirtualHost>

No tengo .htaccess archivo en mi doc raíz. Los permisos están configurados correctamente (legible por www-data).

Si yo escriba la dirección IP de mi escritorio, el sitio muestra correctamente. He cambiado el archivo de hosts en mi escritorio a punto de www.mytest.com a la IP del servidor. Cuando lo uso, me da 403. Dado que muchas de las funciones de este sitio son sitename sensible, tengo que ser capaz de acceder al sitio por el nombre de dominio.

Otro funky cosa es que, incluso si todos los archivos de registro se crean correctamente, no tienen información acerca de este error.

Estoy atascado. ¿Alguien puede ayudar?

  • se puede agregar el contenido de: sudo sh -c ". /etc/apache2/envvars; apache2 -S" (lista de Virtualhosts) y: sudo sh -c ". /etc/apache2/envvars; grep -R Listen /etc/apache2/*|grep -v \"#\"; grep -R NameVirtual /etc/apache2/*|grep -v \"#\""
  • El primer comando devuelve la siguiente: VirtualHost configuration: 192.168.2.5:* www.mytest.com (/etc/apache2/sites-enabled/mytest.com:1) Syntax OK El segundo devuelve: /etc/apache2/ports.conf:Listen 80 /etc/apache2/ports.conf: Listen 443 /etc/apache2/ports.conf: Listen 443 /etc/apache2/conf.d/virtual.conf:NameVirtualHost *
  • intente en serverfault.com
InformationsquelleAutor Yuchen Wang | 2011-08-05

8 Comentarios

  1. 273

    Apache 2.4.3 (o quizás un poco antes) se añadió una nueva característica de seguridad que a menudo se produce este error. Usted también verá un mensaje de registro de la forma «cliente denegado por la configuración del servidor». La característica es que requieren de una identidad de usuario para acceder a un directorio. Está activado por DEFECTO en el httpd.conf que viene con Apache. Usted puede ver la habilitación de la característica con la directiva

    Require all denied
    

    Esto básicamente le dice a denegar el acceso a todos los usuarios. Para solucionar este problema, quite el rechazo de la directiva (o mucho mejor) añadir la siguiente directiva a los directorios que desea conceder acceso a:

    Require all granted
    

    como en

    <Directory "your directory here">
       Order allow,deny
       Allow from all
       # New directive needed in Apache 2.4.3: 
       Require all granted
    </Directory>
    
    • Me gustaría hacer notar que si usted está teniendo este problema con el uso de virtual hosts, usted tendrá que añadir el «Requieren que todos los concedido» para cada configuración de host virtual en el interior del apache/conf/extra/httpd-vhosts.conf archivo.
    • He añadido la presente directiva a /etc/apache2/apache2.conf y ayudado, gracias!
    • no hay ninguna carpeta llamada apache/conf/extra dentro de /etc/apache2
    • Yo había añadido /var/dev/sitio web.com y fue llegar error 403. La adición de la propuesta de directiva a /etc/apache2/apache2.conf (ubuntu) hizo el truco. Gracias chicos!
    • Gracias, señor. Apache es más difícil y más difícil tener trabajo en estos días…
    • Esto funcionó para mí. Thank u! 🙂
    • Si estás en Windows utilizando un framework como Laravel, que las necesidades de las redirecciones que usted necesita para agregar la línea «AllowOverride All» después de la «Requieren que todos los concedido» de la línea. De lo contrario se obtendría un error 404.

  2. 12

    Para apache en Ubuntu 2.4.7 , por fin he encontrado que usted necesita a la lista blanca de su host virtual en apache2.conf

    # access here, or in any related virtual host.
    <Directory /home/gav/public_html/>
        Options FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
    
  3. 8

    Esto puede ser un problema de permisos.

    cada padre de familia ruta de acceso virtual de la raíz del documento debe ser de lectura, Escritura, y ejecutados por el servidor web httpd usuario

    según esta página acerca de Apache 403 errores.

    Ya que usted está utilizando Allow from all, su orden no importa, pero usted puede tratar de cambiar a Deny,Allow para establecer el comportamiento predeterminado a «permitir.»

    • Escritura? de verdad? No estoy seguro
  4. 5

    Mover el Directorio de la cláusula de la virtualhost, y lo puso antes de declarar el virtualhost.

    Me volvió loco durante mucho tiempo, demasiado. No sé por qué. Es un Debian cosa.

    • Woah, que es tan raro.
  5. 0

    Acabo de pasar varias horas en este estúpido problema

    Primero, permisos de cambio de uso de esta en la terminal

    find htdocs -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} +
    

    No sé cuál es la diferencia entre 664 y 775
    Hice 775 como este
    También htdocs necesidades de la ruta de acceso del directorio, por ejemplo, para mí fue

    /usr/local/apache2/htdocs 
    
    find htdocs -type f -exec chmod 775 {} + -o -type d -exec chmod 775 {} +
    

    Este es el otro tonto cosa demasiado

    asegúrese de que su imagen src link es su nombre de dominio, por ejemplo

    src="http://www.fakedomain.com/images/photo.png"
    

    Asegúrese de tener

    EnableSendfile off in httpd.conf file
    EnableMMAP off in httpd.conf file
    

    Editar aquellos que utilizan el pico en la terminal

    También he creado un directorio de imágenes específicamente para que cuando escriba en la barra de direcciones del navegador domainname.com/images usted obtendrá una lista de fotografías, que pueden ser descargados y necesita ser descargado con éxito para indicar los archivos de imagen que están trabajando correctamente

    <Directory /usr/local/apache2/htdocs/images>
    AddType images/png .png
    </Directory>
    

    Y esas son las soluciones que he probado, ahora tengo el funcionamiento de las imágenes… yay!!!

    Sobre el siguiente problema(s)

  6. 0

    Si hizo todo bien, acaba de dar el permiso directorio home como:

    sudo chmod o+x $HOME
    

    luego

    sudo systemctl restart apache2
    

Dejar respuesta

Please enter your comment!
Please enter your name here