He configurado mi Apache por mí mismo y he intentado cargar phpMyAdmin en un host virtual, pero he recibido:

403 Prohibido Usted no tiene permiso para acceder a /en este servidor

Mi httpd.conf

#
# This is the main Apache HTTP server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.2> for detailed information.
# In particular, see 
# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do.  They're here only as hints or reminders.  If you are unsure
# consult the online docs. You have been warned.  
#
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path.  If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so "logs/foo.log"
# with ServerRoot set to "C:/Program Files (x86)/Apache Software Foundation/Apache2.2" will be interpreted by the
# server as "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/foo.log".
#
# NOTE: Where filenames are specified, you must use forward slashes
# instead of backslashes (e.g., "c:/apache" instead of "c:\apache").
# If a drive letter is omitted, the drive on which httpd.exe is located
# will be used by default.  It is recommended that you always supply
# an explicit drive letter in absolute paths to avoid confusion.
#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path.  If you point
# ServerRoot at a non-local disk, be sure to point the LockFile directive
# at a local disk.  If you wish to share the same ServerRoot for multiple
# httpd daemons, you will need to change at least LockFile and PidFile.
#
ServerRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2"
#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 127.0.0.1:80
Include conf/vhosts.conf
#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule charset_lite_module modules/mod_charset_lite.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule dumpio_module modules/mod_dumpio.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule filter_module modules/mod_filter.so
#LoadModule headers_module modules/mod_headers.so
#LoadModule ident_module modules/mod_ident.so
#LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule logio_module modules/mod_logio.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_forensic_module modules/mod_log_forensic.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule reqtimeout_module modules/mod_reqtimeout.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule status_module modules/mod_status.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule php5_module "c:/Program Files/php/php5apache2_2.dll" 
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.  
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon
</IfModule>
</IfModule>
# 'Main' server configuration
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition.  These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#
#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed.  This address appears on some server-generated pages, such
# as error documents.  e.g. [email protected]
#
ServerAdmin [email protected]
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.somenet.com:80
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs"
#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories). 
#
# First, we configure the "default" to be a very restrictive set of 
# features.  
#
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
#
# The following lines prevent .htaccess and .htpasswd files from being 
# viewed by Web clients. 
#
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
#
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here.  If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog "logs/error.log"
#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn
<IfModule log_config_module>
#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
#
# The location and format of the access logfile (Common Logfile Format).
# If you do not define any access logfiles within a <VirtualHost>
# container, they will be logged here.  Contrariwise, if you *do*
# define per-<VirtualHost> access logfiles, transactions will be
# logged therein and *not* in this file.
#
CustomLog "logs/access.log" common
#
# If you prefer a logfile with access, agent, and referer information
# (Combined Logfile Format) you can use the following directive.
#
#CustomLog "logs/access.log" combined
</IfModule>
<IfModule alias_module>
#
# Redirect: Allows you to tell clients about documents that used to 
# exist in your server's namespace, but do not anymore. The client 
# will make a new request for the document at its new location.
# Example:
# Redirect permanent /foo http://www.somenet.com/bar
#
# Alias: Maps web paths into filesystem paths and is used to
# access content that does not live under the DocumentRoot.
# Example:
# Alias /webpath /full/filesystem/path
#
# If you include a trailing /on /webpath then the server will
# require it to be present in the URL.  You will also likely
# need to provide a <Directory> section to allow access to
# the filesystem path.
#
# ScriptAlias: This controls which directories contain server scripts. 
# ScriptAliases are essentially the same as Aliases, except that
# documents in the target directory are treated as applications and
# run by the server when requested rather than as documents sent to the
# client.  The same rules about trailing "/" apply to ScriptAlias
# directives as to Alias.
#
ScriptAlias /cgi-bin/"C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cgi-bin/"
</IfModule>
<IfModule cgid_module>
#
# ScriptSock: On threaded servers, designate the path to the UNIX
# socket used to communicate with the CGI daemon of mod_cgid.
#
#Scriptsock logs/cgisock
</IfModule>
#
# "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
#
# DefaultType: the default MIME type the server will use for a document
# if it cannot otherwise determine one, such as from filename extensions.
# If your server contains mostly text or HTML documents, "text/plain" is
# a good value.  If most of your content is binary, such as applications
# or images, you may want to use "application/octet-stream" instead to
# keep browsers from trying to display binary files as though they are
# text.
#
DefaultType text/plain
<IfModule mime_module>
#
# TypesConfig points to the file containing the list of mappings from
# filename extension to MIME-type.
#
TypesConfig conf/mime.types
#
# AddType allows you to add to or override the MIME configuration
# file specified in TypesConfig for specific file types.
#
#AddType application/x-gzip .tgz
#
# AddEncoding allows you to have certain browsers uncompress
# information on the fly. Note: Not all browsers support this.
#
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
#
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
#
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
#AddHandler cgi-script .cgi
# For type maps (negotiated resources):
#AddHandler type-map var
#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
AddType application/x-httpd-php .php 
</IfModule>
#
# The mod_mime_magic module allows the server to use various hints from the
# contents of the file itself to determine its type.  The MIMEMagicFile
# directive tells the module where the hint definitions are located.
#
#MIMEMagicFile conf/magic
#
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.somenet.com/subscription_info.html
#
#
# MaxRanges: Maximum number of Ranges in a request before
# returning the entire resource, or one of the special
# values 'default', 'none' or 'unlimited'.
# Default setting is to accept 200 Ranges.
#MaxRanges unlimited
#
# EnableMMAP and EnableSendfile: On systems that support it, 
# memory-mapping or the sendfile syscall is used to deliver
# files.  This usually improves server performance, but must
# be turned off when serving from networked-mounted 
# filesystems or if support for these functions is otherwise
# broken on your system.
#
#EnableMMAP off
#EnableSendfile off
# Supplemental configuration
#
# The configuration files in the conf/extra/directory can be 
# included to add extra features or to modify the default configuration of 
# the server, or you may simply copy their contents here and change as 
# necessary.
# Server-pool management (MPM specific)
#Include conf/extra/httpd-mpm.conf
# Multi-language error messages
#Include conf/extra/httpd-multilang-errordoc.conf
# Fancy directory listings
#Include conf/extra/httpd-autoindex.conf
# Language settings
#Include conf/extra/httpd-languages.conf
# User home directories
#Include conf/extra/httpd-userdir.conf
# Real-time info on requests and configuration
#Include conf/extra/httpd-info.conf
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
# Local access to the Apache HTTP Server Manual
#Include conf/extra/httpd-manual.conf
# Distributed authoring and versioning (WebDAV)
#Include conf/extra/httpd-dav.conf
# Various default settings
#Include conf/extra/httpd-default.conf
# Secure (SSL/TLS) connections
#Include conf/extra/httpd-ssl.conf
#
# Note: The following must must be present to support
#       starting without SSL on platforms with no /dev/random equivalent
#       but a statically compiled-in mod_ssl.
#
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
PHPIniDir "c:/Program Files/php" 

y vhosts.conf:

NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
DocumentRoot i:/projects/webserver/__tools/phpmyadmin/
ServerName dbadmin.tools
</VirtualHost>
  • ¿Cuáles son los derechos de http carpeta y quién es el propietario?
  • Es en mi máquina local bajo windows 7, y lo de la carpeta a qué te refieres? i:/projects/webserver/__tools/phpmyadmin/?
  • sí apache se ejecuta como usuario demonio. ¿Este usuario tiene el derecho de leer los archivos?
  • sí, soy menor de administrador
  • Usuario demonio también?
  • He probado algo, parece que PHP no funciona, porque el índice HTML funciona en localhost, pero PHP no es. Pero en el dominio dbadmin.herramientas de PHP y HTML índices no son trabajo 🙁
  • compruebe si usted no tiene un .htaccess archivo que reemplaza a negar el acceso (en el directorio en el que está intentando acceder
  • Tengo este error después de cambiar el nombre de mi directorio raíz. Después de reiniciar el sistema fue lejos.
  • Desbordamiento de la pila es un sitio para la programación y desarrollo de las preguntas. Esta pregunta parece ser off-topic porque no es acerca de la programación o de desarrollo. Consulte ¿Qué temas puedo preguntar aquí en el Centro de Ayuda. Tal vez el Servidor Falla o Webmaster de Intercambio de la Pila sería un mejor lugar para preguntar.

34 Comentarios

  1. 651

    Actualización De Octubre De 2016

    Hace 4 años, ya que esta respuesta es utilizado como referencia por muchos, y aunque he aprendido mucho de la perspectiva de la seguridad durante estos años,
    Me siento responsable de aclarar algunas notas importantes, y he de actualizar mi respuesta en consecuencia.

    La respuesta original es correcta, pero no es seguro que algunos de los entornos de producción,
    además me gustaría explicar algunas cuestiones que se te pueden caer durante la configuración de su entorno.

    Si usted está buscando una solución rápida y la SEGURIDAD NO ES UN ASUNTO, yo.e desarrollo de la env, saltar y leer la respuesta original en lugar

    Muchas situaciones pueden conducir a 403 Prohibido:


    A. Directorio de Índices (de mod_autoindex.c)

    Cuando usted accede a un directorio y no hay ningún valor predeterminado archivo que se encuentra en este directorio
    Y Apache Options Indexes no está habilitado para este directorio.

    A. 1. DirectoryIndex opción de ejemplo

    DirectoryIndex index.html default.php welcome.php

    A. 2. Options Indexes opción

    Si se establece, apache se lista el contenido del directorio si no existe ningún valor predeterminado de archivos (desde el anterior 👆🏻 opción)

    Si ninguna de las condiciones anteriores es satisfecho

    Usted recibirá un 403 Prohibido

    Recomendaciones

    • Usted no debe permitir el listado de directorios, a menos que REALMENTE necesario.
    • Restringir el índice por defecto DirectoryIndex al mínimo.
    • Si desea modificar, restringir la modificación a la necesaria directorio SÓLO, por ejemplo, el uso de .htaccess archivos, o poner su modificación dentro de la <Directory /my/directory> directiva

    B. deny,allow directivas de Apache 2.2)

    Mencionado por @Radu, @Simon A. Eugster en los comentarios
    Usted se deniega la solicitud, la lista negra o lista blanca por dichas directivas.

    No publicaré una explicación completa, pero creo que algunos ejemplos pueden ayudar a entender,
    en resumen recuerde esta regla:

    SI CORRESPONDE, POR TANTO, LA ÚLTIMA DIRECTIVA ES LA QUE VA A GANAR

    Order allow,deny

    Negar va a ganar si igualado por ambas directivas (incluso si un allow directiva está escrito después de la deny en la conf)

    Order deny,allow

    permitir que va a ganar si coincide con las directivas de la

    Ejemplo 1

    Order allow,deny
    Allow from localhost mydomain.com
    

    Sólo localhost y *.mydomain.com puede acceder a este, todos los demás hosts se negó

    Ejemplo 2

    Order allow,deny
    Deny from evil.com
    Allow from safe.evil.com # <-- has no effect since this will be evaluated first
    

    Todas las solicitudes son denegadas, la última línea puede engañar a usted, pero recuerde que si coincide con la última victoria de la regla (aquí Negar, es la última), exactamente como está escrito:

    Order allow,deny
    Allow from safe.evil.com
    Deny from evil.com # <-- will override the previous one 
    

    Ejemplo 4

    Order deny,allow
    Allow from site.com
    Deny from untrusted.site.com # <-- has no effect since this will be matched by the above `Allow` directive
    

    Se aceptan las solicitudes de todos los hosts

    Ejemplo 4: típico para sitios públicos (permitir, a menos que la lista negra)

    Order allow,deny
    Allow from all
    Deny from hacker1.com
    Deny from hacker2.com
    

    Ejemplo 5: típico de intranet y sitios seguros (se niegan a menos que la lista blanca)

    Order deny,allow
    Deny from all
    Allow from mypc.localdomain
    Allow from managment.localdomain
    

    C. Require directiva (Apache 2.4)

    Apache 2.4 uso de un nuevo módulo llamado mod_authz_host

    Require all granted => Permitir todas las solicitudes

    Require all denied => Denegar todas las solicitudes

    Require host safe.com => Sólo a partir de safe.com se permite


    D. permisos de Archivos

    Una cosa que la mayoría de la gente hace las cosas mal es la configuración de los permisos de archivos,

    La REGLA de ORO es

    COMIENZA CON NINGÚN PERMISO Y AGREGAR COMO POR SU NECESIDAD

    En linux:

    • Directorios deben tener la Execute permiso

    • Archivos deben tener la Read permiso

    • SÍ, NO AGREGUE Execute permiso para archivos

    por ejemplo, yo uso este script para la instalación de las carpetas permisos

    # setting permissions for /var/www/mysite.com
    # read permission ONLY for the owner 
    chmod -R /var/www/mysite.com 400 
    # add execute for folders only
    find /var/www/mysite.com -type d -exec chmod -R u+x {} \;
    # allow file uploads 
    chmod -R /var/www/mysite.com/public/uploads u+w
    # allow log writing to this folder
    chmod -R /var/www/mysite.com/logs/
    

    He publicado este código como un ejemplo, el programa de instalación puede variar en otras situaciones



    Respuesta Original

    Yo enfrentan el mismo problema, pero lo resuelto por la configuración de la opciones directiva, ya sea en el directorio mundial de configuración en el httpd.conf o en el directorio específico bloque en httpd-vhosts.conf:

    Options Indexes FollowSymLinks Includes ExecCGI
    

    Por defecto, el directorio global de la configuración es (httpd.conf line ~188):

    <Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
    </Directory>
    

    establecer las opciones para :
    Options Indexes FollowSymLinks Includes ExecCGI

    Por último, se debe buscar como:

    <Directory />
    #Options FollowSymLinks
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
    </Directory>
    

    También intente cambiar Order deny,allow y Allow from all líneas por Require all granted.

    Apéndice

    Directorio de los Índices de código fuente (código quitar por razones de brevedad)

    if (allow_opts & OPT_INDEXES) {
    return index_directory(r, d);
    } else {
    const char *index_names = apr_table_get(r->notes, "dir-index-names");
    ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01276)
    "Cannot serve directory %s: No matching DirectoryIndex (%s) found, and "
    "server-generated directory index forbidden by "
    "Options directive",
    r->filename,
    index_names ? index_names : "none");
    return HTTP_FORBIDDEN;
    }
    
    • También, uno debe de revisar la carpeta de permisos para que el proceso de Apache’ propietario tiene permisos de lectura/ejecución de la ruta de acceso especificada para el host virtual. En Windows esto puede raramente ser un problema, pero en Linux puede ser una causa más frecuente de 403.
    • httpd.conf en mi Ubuntu está vacía y httpd-vhosts.conf no se encuentra.
    • Yo, además, tenía que cambiar Order deny,allow, Allow from all a Require all granted en Apache 2.4. Ver aquí: httpd.apache.org/docs/2.4/upgrading.html
    • sólo después de la adición de Require all granted funcionó
    • No y desorden de seguridad de la configuración de mi… (y el único de este tipo también stackoverflow.com/questions/19263135/…)
    • Además para este siguiente paso es necesario encontrar la línea > Listen 80 y cambiar a > escuchar 0.0.0.0:80
    • este comentario podría ser una respuesta, ya que tu comentario resuelto el problema, para mí.
    • Yo también necesitaba añadir index.html o index.php en el directorio raíz
    • Sólo he tenido que añadir Índices después de que todo funcionaba bien. Para mi Opciones de la línea final parecido a esto: Options FollowSymLinks Multiviews Indexes
    • No funciona conmigo
    • En la reciente versión de apache (2.4.7) httpd.conf se ha cambiado el nombre a apache2.conf
    • No funciona para mí. He resuelto este problema mediante la ejecución chmod en la terminal.
    • Después de esto usted debe Reiniciar Todos los Servicios.
    • Todo esto no funciona para mí, por fin cambiar de Usuario _www a mi nombre de usuario en httpd.conf trabajado.
    • Trabajó para mí. Win8.1 + Apache2.4 + PHP5.6 + mod_fcgid (fast CGI)
    • este no es trabajo para mí.
    • No tiene que cambiar ‘Opciones’. Sólo ha cambiado: ‘Requieren que todos los concedido» y en el envvars archivo en /etc/apache2, se ha cambiado a la exportación «APACHE_RUN_USER=www-data’ para ‘exportar APACHE_RUN_USER=[my_username]’
    • Gracias.. me has salvado de un montón de problemas
    • Esta respuesta es MAL! Usted debe NUNCA conjunto de Allow from all en el <Directory /> sección de httpd.conf Eso es sólo una hackers delicia
    • Si leen bien la respuesta, usted se dará cuenta, de que lo que estoy sugiriendo es modificar el Options param y no la Allow
    • Pero usted todavía tiene Allow from all en el <Directory /> La <Directory /> la sección debe proteger la raíz de la carpeta y todas las subcarpetas de todos los accesos. Luego de permitir el acceso sólo a los directorios de Apache en realidad requiere de acceso. Entonces, si usted está hackeado el hacker no tener acceso a todo el sistema de archivos de una hackeado Apache. Ver Proteger los Archivos del Servidor por Defecto
    • Tengo un 403 (prohibido), y agregar Require all granted , y ahora funciona …
    • puedo editar todos los archivos de conf para hacer allow from all en lugar de negar
    • No son estos chmod argumentos hacia atrás? De acuerdo a la mueren, el archivo siempre va a la última

  2. 186

    Entiendo que este problema está resuelto, pero se me ocurrió para resolver este mismo problema en mi propia.

    La causa de

    Prohibido Usted no tiene permiso para acceder a /en este servidor

    es en realidad la configuración por defecto de apache directory en httpd.conf.

    #
    # Each directory to which Apache has access can be configured with respect
    # to which services and features are allowed and/or disabled in that
    # directory (and its subdirectories). 
    #
    # First, we configure the "default" to be a very restrictive set of 
    # features.  
    #
    <Directory "/">
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all          # the cause of permission denied
    </Directory>
    

    Simplemente cambiando Deny from all a Allow from all debe resolver el problema de permiso.

    Alternativamente, un mejor enfoque sería individuales de especificar los permisos del directorio en el virtualhost de configuración.

    <VirtualHost *:80>
    ....
    # Set access permission
    <Directory "/path/to/docroot">
    Allow from all
    </Directory>
    ....
    </VirtualHost>
    

    Como de Apache 2.4, sin embargo, el control de acceso se realiza con el módulo nuevo mod_authz_host (La actualización a 2,4 2,2). En consecuencia, el nuevo Require directiva debe ser utilizado.

    <VirtualHost *:80>
    ....
    # Set access permission
    <Directory "/path/to/docroot">
    Require all granted
    </Directory>
    ....
    </VirtualHost>
    
    • Apache/2.2.24 en OSX 10.6.8. 1) Este post, y 2) el manual de instrucciones aquí: thegeekstuff.com/2011/07/apache-virtual-host (Usted recibirá un aviso de que la línea NameVirtualHost *:80 no hace nada, así que usted puede eliminar. También tienes que crear el directorio para los archivos de registro.), y…
    • 3) añadir la línea 127.0.0.1 web_site_name.com a la parte inferior del archivo /private/etc/hosts trabajó para mí. Si usted tiene de configuración de Apache para que escuche en, digamos, el puerto 8080, a continuación, utilizar <VirtualHost *:8080>, y sólo tiene que utilizar la dirección url http://localhost:8080, usted tendrá que usar la url http://web_site_name.com:8080. 4) al final, me fui con @hmoyat del <Directorio> configuración(en una de las otras respuestas) porque parece más específicos.
    • después de la adición de ‘Requieren que todos los concedido’ ahora, en lugar de por defecto de apache página veo de esta manera: «Mcrypt PHP extensión necesaria.’ (ya instalado). ¿Y ahora qué hago?
    • Hola @eagor. Asegúrese de habilitar la extensión MCrypt (no basta con instalarlo). Ese error también está más relacionado con PHP de Apache para que vas a querer probar stackoverflow.com/q/16830405/1349295 o temas similares.
    • Exigir a todos los concedido a resolver mi problema
    • Yo solía requerir que todos los concedido doesnot resolver mi problema. Algunos se produjo este error. He utilizado para cambiar el propietario usando » sudo chown www-data:www-data file`
    • Por favor, sea paciente con la concesión de acceso a su directorio raíz. Es insegura. Mejor es conceder acceso al directorio concreto (que desea mostrar al público).
    • trate de stackoverflow.com/a/14623574/1349295 y stackoverflow.com/a/14075646/1349295. Tienen, en algunas ocasiones, solucionado este problema para mí.
    • He intentado tanto, la solución. No sé por qué esto no está funcionando? @CzarPino puede decirme por qué este error sucede 403? Es solamente para los permisos de usuario y el modo de archivo.
    • No me parece ‘httpd.conf archivo en mi raíz!! Utilizando el servidor web apache2.
    • ¿Entiende usted lo que <Directory /> Allow from all </Directory> está haciendo en realidad. Supongo que no! Que da Apache acceso completo a la totalidad de su sistema de ficheros. Muy peligroso si su sitio está hackeado!!
    • Para aquellos que utilizan <Directory />, la forma recomendada de la configuración de permisos de acceso es por directorio (es decir,<Directory "/path/to/docroot">). El ejemplo anterior utiliza <Directory /> que al parecer subvenciones host remoto el acceso a todo el sistema de ficheros. Actualmente estoy desconocen exactamente cómo esto puede ser aprovechado por un atacante, salvo que la prestación de más permisos de los que necesita es un básico de seguridad no-no. He actualizado mi respuesta para la posteridad el amor. Disculpas por la falta de conocimiento sobre la seguridad. httpd.apache.org/docs/current/misc/…

  3. 130

    Común de gotcha para directorios alojados fuera de defecto en /var/www/es que el usuario de Apache no sólo se necesitan permisos para el directorio y subdirectorios en los que la página está alojada. Apache requiere permisos a todos los directorios de todo el camino hasta la raíz del sistema de archivos donde se encuentra alojada la web. Apache automáticamente obtiene los permisos asignados a /var/www/cuando es instalado, así que si su directorio de host se encuentra directamente debajo del que, a continuación, esto no se aplica a usted. Edit: Daybreaker ha informado de que su Apache se instala sin el uso correcto de los permisos de acceso al directorio predeterminado.

    Por ejemplo, tiene un equipo de desarrollo y su directorio del sitio es:

    /username/home/Dropbox/myamazingsite/
    

    Usted puede pensar que usted puede conseguir lejos con:

    chgrp -R www-data /username/home/Dropbox/myamazingsite/
    chmod -R 2750 /username/home/Dropbox/myamazingsite/
    

    porque esto le da Apache permisos para acceder a los directorios del sitio? Bueno, eso es correcto, pero no es suficiente. Apache requiere permisos de todo el camino hasta el árbol de directorios para lo que usted necesita hacer es:

    chgrp -R www-data /username/
    chmod -R 2750 /username/
    

    Obviamente, yo no recomendaría que da acceso a Apache en un servidor de producción para una completa estructura de directorios sin analizar lo que hay en esa estructura de directorios. Para la producción es mejor guardar en el directorio predeterminado o de otra estructura de directorios que sólo para la celebración de los activos del web.

    Edit2: como u/chimeraha señaló, si no estás seguro de lo que estás haciendo con los permisos, es mejor mover el directorio del sitio fuera de su directorio de inicio para evitar posibles de bloqueo de tu directorio home.

    • Su respuesta ayudó un montón. Por alguna razón mi /var/www no estaba configurado para el acceso por el usuario de apache. Gracias!
    • Acabo de hacer esto y se fue de «Apache no tiene permiso» a «500 Error Interno del Servidor» 🙁
    • Eso es progreso. Significa que has resuelto tu inicial problema de permisos. Empezar a buscar a través de su Apache / archivos de registro de aplicación para determinar lo que está causando el error 500.
    • Gracias a esta respuesta, yo correctamente bloqueado a mí mismo desde el directorio /home árbol… 🙂
    • Haciendo esto: chgrp -R apache /nombre de usuario/ solucionado el problema para mí! pero al igual que el Edificio, ahora no puedo acceder a mi casa del árbol del directorio, a menos que me chgrp de vuelta a mi usuario. Así que ahora tengo que cambiar mi usuario original a tirar en mi cambios a través de git. A continuación, vuelva a cambiar a apache para volver a desplegar mi servidor. Es esta la única manera?
    • Es este un equipo de desarrollo o en una máquina de producción?
    • esto sería en mi máquina de producción. Lo que terminó trabajando para mí es solo cambiar el usuario y grupo en mi httpd a ser mi nombre de usuario. Hay alguna caída a hacer eso?
    • Seguro. Usted tendría que encontrar a alguien mejor versado en la seguridad de Linux que yo para responder eso. Quizás vale la pena buscar en Google o preguntar como una cuestión separada. Para mí, en general, no usar Git para su implementación como no quiero que todo mi entorno de desarrollo replica para la implementación del sitio. Generalmente se usa una secuencia de comandos o de la herramienta de despliegue. Acaba de salir de interés, si se trata de un servidor de producción, ¿por qué estás fuera de la normal de web de Apache que sirve de directorio?
    • He desarrollado mi aplicación de django a nivel local, luego me empujó a mi proyecto a mi instancia de ec2 con git. Y a partir de ahí me quería implementar la aplicación. La forma de django, el proyecto no es el que normalmente se copian a la web al servicio de directorio. He seguido esta guía: docs.djangoproject.com/en/1.6/howto/deployment/wsgi/modwsgi
    • chmod -R 2750 – ¿qué podría significar el número 2 ? 7 – rwe permisos para el propietario, 5 – re para el grupo, y de 0 – nada por los demás. Pero, ¿qué es 2 ? Gracias
    • href=»http://en.wikipedia.org/wiki/Chmod#Octal_modes» >en.wikipedia.org/wiki/Chmod#Octal_modes El chmod formato numérico acepta hasta cuatro dígitos octales. El de más a la derecha tres se refieren a los permisos para el propietario del archivo, el grupo y otros usuarios. El siguiente dígito (el cuarto desde la derecha) especifica especial setuid, setgid, pegajoso y banderas.
    • Pero el uso de cualquiera de los permisos que normalmente utilizan para proteger un directorio web. Los permisos anteriores son sólo un ejemplo que encaja con mi personal dev medio ambiente.
    • href=»http://en.wikipedia.org/wiki/Chmod#Special_modes» >en.wikipedia.org/wiki/Chmod#Special_modes Algunos de los más detalle en 4 dígitos permisos de sistema de archivo.
    • Gracias. El directorio de usuario utilizado para alojar a fue de 700 y no se me ocurren a la salida antes de leer tu respuesta.
    • la carpeta del nivel superior que funciona para mí cuando se 755, mientras que la 750 no está funcionando. Muchas gracias.
    • Antes de bloquear su directorio de inicio (LOL), yo recomendaría la adición de «Exigir a todos los concedido»
    • Mi otro sitio web en el localhost está trabajando. Pero, este proyecto no está funcionando. y dando Error 403.
    • Gracias es muy útil!
    • ¿Alguien sabe cómo dar el directorio home para el usuario?
    • Esta respuesta ha resuelto el problema para mí cuando todo lo demás fue configurado correctamente. Yo estaba tirando de mi pelo y luego se vino a averiguar que el directorio /var/www, de alguna manera, inexplicablemente, había diferentes permisos que no sean de Apache. find /var/www -exec chown apache:apache {} \; Y Boom! Problema resuelto….

  4. 60

    Algunos parámetros de configuración han cambiado en Apache 2.4. Yo tuve un problema similar, cuando me estaba preparando un Zend Framework 2 aplicación. Después de algunas investigaciones, aquí está la solución:

    Configuración Incorrecta

    <VirtualHost *:80>
    ServerName zf2-tutorial.localhost
    DocumentRoot /path/to/zf2-tutorial/public
    SetEnv APPLICATION_ENV "development"
    <Directory /path/to/zf2-tutorial/public>
    DirectoryIndex index.php
    AllowOverride All
    Order allow,deny #<-- 2.2 config
    Allow from all #<-- 2.2 config
    </Directory>
    </VirtualHost>
    

    Configuración Correcta

    <VirtualHost *:80>
    ServerName zf2-tutorial.localhost
    DocumentRoot /path/to/zf2-tutorial/public
    SetEnv APPLICATION_ENV "development"
    <Directory /path/to/zf2-tutorial/public>
    DirectoryIndex index.php
    AllowOverride All
    Require all granted #<-- 2.4 New configuration
    </Directory>
    </VirtualHost>
    

    Si usted está planeando migrar de Apache 2.2, 2.4, aquí es una buena referencia: http://httpd.apache.org/docs/2.4/upgrading.html

    • Gracias! Que la respuesta está justo en la marca!
    • Gracias! Usted gana!
  5. 24

    Sobre Ubuntu 14.04 utilizando Apache 2.4, hice lo siguiente:

    Agregar lo siguiente en el archivo, apache2.conf (bajo /etc/apache2):

    <Directory /home/rocky/code/documentroot/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
    </Directory>
    

    y volver a cargar el servidor:

    sudo service apache2 reload
    

    Edit: Esto también funciona en OS X Yosemite con Apache 2.4. La importante línea es

    Requieren otorgado

  6. 22

    Si usted está usando un WAMP servidor, a continuación, intente esto:

    • Solo clic en el servidor WAMP icono en la barra de tareas

    • Seleccione la opción poner en línea

    • El servidor se reiniciará automáticamente

    • A continuación, intente acceder a su localwebsite

  7. 16

    He resuelto mi problema por agregar mi usuario httpd.conf.

    # User/Group: The name (or #number) of the user/group to run httpd as.
    # It is usually good practice to create a dedicated user and group for
    # running httpd, as with most system services.
    #
    #User daemon
    User my_username
    Group daemon
    
    • La respuesta no tiene sentido. User se da dos veces y la última User es myuser, whats-up con User deamon? También por favor, corrija el estilo de su respuesta, es bastante ilegible lo que debe ser en el httpd.conf y lo que no. Tampoco explica por qué esto soluciona el problema
    • Acabo de cambiar mi «usuario» y «grupo» con mi nombre de usuario y esto funcionó para mí.
    • Usted señor es un regalo del cielo! Yo no podía entender esto y la actualización de mi usuario y grupo para el usuario tenía que funcionó muy bien. Sucedió cuando he copiado una producción de VM y fue la creación de un nuevo usuario para el desarrollo de VM.
  8. 14

    Este artículo La creación de un virtual host en Apache 2.2 me ayuda (punto 9) permisos para la parte superior de hosts virtuales directorio.

    Yo simplemente añadir estas líneas a mi vhosts.conf archivo:

    <Directory I:/projects/webserver>
    Order Deny,Allow
    Allow from all
    </Directory>
    
    • Estoy mirando problema, he cambiado la raíz del documento camino en mi ubuntu 14.04 desde /var/www/html/ a /media/usuario/proyectos/php/ : DocumentRoot /media/mithun/Proyectos/Sitios/php <Directorio /media/usuario/proyectos/php/> Options Indexes FollowSymLinks AllowOverride None Requieren otorgado </Directorio> no Su trabajo. Anyhelp?
  9. 10

    Estaba recibiendo el mismo error y no podía entender el problema de las edades. Si usted sucede estar en una distribución de Linux que incluye SELinux como CentOS, usted necesita para asegurarse de que SELinux permisos están configurados correctamente para su raíz de los documentos de los archivos o se producirá este error. Este es un conjunto completamente diferente de los permisos para el estándar de permisos de sistema de archivo.

    Se me ocurrió utilizar el tutorial Apache y SELinux, pero no parece ser suficiente a su alrededor una vez que usted sabe qué buscar.

    • Gracias! SELinux fue el causante de mis problemas. He desactivado y ahora puedo acceder a mis archivos html que estaban fuera de defecto en /var/www/ directorio. Ahora voy a echar un vistazo a este tutorial a ver si me puede conseguir habilitado y configurado de modo que todavía puedo acceder a mis archivos.
  10. 6

    Si usted está usando MAMP Pro la forma de solucionarlo es mediante la comprobación de la Indexes casilla de verificación bajo el HostsExtended ficha.

    En MAMP Pro v3.0.3 esto es lo que parece:
    Mensaje de Error de

    • gracias funcionó para mí.
  11. 5

    Hay otra manera de resolver este problema. Digamos que usted desea el acceso de directorio «subphp» que existen en /var/www/html/subphp, y desea tener acceso a él mediante 127.0.0.1/subphp y recibe el error como este:

    Usted no tiene permiso para acceder a /subphp/en este servidor.

    A continuación, cambie los permisos de directorio de «Ninguno» a «acceder a los archivos». La línea de comandos, el usuario puede utilizar el chmod comando para cambiar el permiso.

    • Es allí cualquier medio upvote opción?
  12. 3

    Yo tenía el mismo problema, pero debido al hecho de que he cambiado la ruta de acceso de apache a una carpeta fuera var/www, empecé a correr en problemas.

    Me fijo por la creación de un enlace simbólico en var/www/html > home/dev/proyecto que parecía hacer el truco, sin tener que cambiar permisos…

    • Muchas gracias, me has salvado de mucho trabajo saber esto!
  13. 3

    Yo uso Mac OS X, en mi caso, yo solo te olvides de habilitar php en apache, todo lo que necesitas hacer es descomentar una línea de /etc/apache2/httpd.conf:

    LoadModule php5_module libexec/apache2/libphp5.so
    

    ref este artículo para el detalle.

  14. 2

    (En Windows y Apache 2.2.x)

    El error de «Prohibido» es también el resultado de no tener las máquinas virtuales definidas.

    Como señaló Julien, si usted tiene la intención de utilizar virtual hosts.conf, a continuación, vaya al archivo httpd y descomentar la siguiente línea:

    #Include conf/extra/httpd-vhosts.conf
    

    A continuación, agregue los hosts virtuales definiciones en conf/extra/httpd-vhosts.conf y reiniciar Apache.

    • Tienes razón!!!!!!
  15. 2

    Me encontré con este problema, y mi solución fue más que www-data no poseían las carpetas correspondientes, y en su lugar me puse uno de los usuarios a la propia. (Yo estaba tratando de hacer un poco de fantasía, pero errónea, de que los engaños para obtener ftp para jugar bien.)

    Después de correr:

    chown -R www-data:www-data /var/www/html
    

    La máquina comenzó a servir los datos de nuevo. Se puede ver que en la actualidad es propietaria de la carpeta por medio de

    ls -l /var/www/html
    
  16. 2

    Esta solución no permite de todos los

    Solo quiero cambiar mi directorio público de www, y acceder a él desde mi PC, móvil y conectado por Wifi. He Ubuntu 16.04.

    1. Así, en primer lugar, he modificado /etc/apache2/sites-enabled/000-default.conf
      y he cambiado la línea de DocumentRoot /var/www/html
      para mi nuevo directorio público
      DocumentRoot «/media/datos/XAMPP/htdocs»

    2. A continuación, modifique /etc/apache2/apache2.conf, y puse los permisos para localhost, y mi móvil, esta vez he utilizado la dirección IP, sé que no es completamente seguro, pero está bien para mis propósitos.

      <Directory/>
      Options FollowSymLinks
      AllowOverride None
      Order deny,allow
      Deny from all
      Allow from localhost 10.42.0.11
      </Directory>
      
  17. 1

    Probar este y no aportan nada Order allow,deny y otros:

    AddHandler cgi-script .cgi .py 
    ScriptAlias /cgi-bin//usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Require all granted
    Allow from all
    </Directory>
    

     

    sudo a2enmod cgi
    sudo service apache2 restart
    
  18. 1
        I changed 
    Order Deny,Allow
    Deny From All      in .htaccess to   " Require all denied "    and restarted apache but it did not help.
    

    Camino para apache2.conf en ubuntu es /etc/apache2/apache.conf

    Luego he añadido siguientes líneas en apache2.conf y luego mi carpeta está trabajando bien

        <Directory /path of required folder>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
    </Directory>
    and run  " Sudo service apache2 restart " 
    
  19. 0

    Tuve el mismo problema para un controlador específico sólo – que era muy raro. Yo tenía una carpeta en la raíz de la CI carpeta que tiene el mismo nombre que el controlador estaba tratando de acceder a… Debido a que, CI estaba dirigiendo la solicitud a este directorio en lugar del controlador de sí mismo.

    Después de la eliminación de esta carpeta (que fue un poco por error), todo funcionaba bien.

    Para ser más claro, aquí está lo que se ve:

    /ci/controller/register.php
    /ci/register/
    

    Tuve que quitar /ci/register/.

    • a veces codeigniter usa .archivos htaccess para que deje de acceso directo. mira con ls-Al para asegurarse de que no hay archivos ocultos.
  20. 0

    Ver exactamente dónde usted está poniendo sus archivos, no anidan en la carpeta Documentos.

    Por ejemplo, he cometido el error de poner mi código en la carpeta de Documentos como se mencionó esto no va a funcionar porque los Documentos es explícitamente disponible sólo para USTED y no de APACHE. Trate de mover hacia arriba en un directorio y no puede ver este problema.

    Mover la carpeta de:

    /Usuarios/NOMBREDEUSUARIO/Documentos/código

    Aquí:
    /Usuarios/NOMBREDEUSUARIO/código

  21. 0

    Sólo para traer otra contribución corrí a este problema:

    Tuve un VirtualHost configurado que yo no quería. Me han comentado de la línea donde el incluir para el vhost ocurrido, y funcionó.

  22. 0

    Puede cambiar youralias.conf archivo como este código:

    Alias /Quiz/"h:/MyServer/Quiz/" 
    <Directory "h:/MyServer/Quiz/">
    Options Indexes FollowSymLinks
    AllowOverride all
    <IfDefine APACHE24>
    Require local
    </IfDefine>
    <IfDefine !APACHE24>
    Order Deny,Allow
    Deny from all
    Allow from localhost ::1 127.0.0.1
    </IfDefine>
    </Directory>
    
  23. 0

    Recuerde que el archivo correcto para ser configurado en esta situación no es el httpd.conf en el phpMyAdmin de alias, pero en bin/apache/your_version/conf/httpd.conf.

    Busque la línea siguiente:

    DocumentRoot "c:/wamp/www/"
    #
    # Each directory to which Apache has access can be configured with respect
    # to which services and features are allowed and/or disabled in that
    # directory (and its subdirectories).
    #
    # First, we configure the "default" to be a very restrictive set of
    # features.
    #
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Allow from all
    </Directory>
    

    Asegúrese de que está configurado para Allow from all

    Si no, phpMyAdmin incluso podría funcionar, pero no su raíz y otras carpetas debajo de ella. También, recuerde reiniciar WAMP y, a continuación, poner en línea…

    Esta solucionado mi dolor de cabeza.

    • Esta respuesta es MAL! Usted debe NUNCA conjunto de Allow from all o Require all granted en el <Directory /> sección de httpd.conf Eso es sólo una hackers delicia
  24. 0

    Tuve este problema cuando se utiliza SSHFS para montar los archivos en mi VirtualBox guest desde mi sistema de ficheros local antes de ejecutar una ventana acoplable a construir. En el final, la «solución» fue copiar todos los archivos a la VirtualBox instancia en lugar de construir desde el interior de la SSHFS de montaje y, a continuación, ejecute el construir desde allí.

  25. 0

    Método de TRABAJO (a menos que no haya otro problema)

    Por defecto, Apache no es el de restringir el acceso de IPv4 (externo común, la dirección IP)

    Lo que están restringidas son las órdenes que se imparten en ‘httpd.conf‘.

    Reemplazar todos los

    <Directory />
    AllowOverride none
    Require all denied
    </Directory>
    

    con

    <Directory />
    AllowOverride none
    # Require all denied
    </Directory>
    

    por lo tanto la eliminación de todas restricción dada a Apache.

    Reemplazar Require local con Require all granted para la C:/wamp/www/ directorio.

    <Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Require all granted
    # Require local
    </Directory>
    
    • Es realmente «<Directorio />» (dos casos)? ¿No debería ser «<Directorio>»?
    • La primera recibe el dir ruta <Directorio {/ruta/a/su/dir}>
  26. 0

    Después de cambiar los archivos de configuración no olvides Restart All Services.

    He perdido tres horas de mi tiempo en ello.

  27. 0

    Esto es bastante ridículo, pero tengo el 403 Prohibido cuando el archivo que yo estaba tratando de descargar no estaba allí en el sistema de archivos. Los errores de apache no es muy preciso en este caso, y toda la cosa funcionó después de yo simplemente puse el archivo donde se supone que debe ser.

  28. 0

    Tuvimos modsec habilitado, consulte el sitio web del registro de error para un modsec ID, a continuación, introduzca un locationmatch para el archivo en el vhost (o .htaccess supongo):

     <LocationMatch "/yourlocation/index.php">
    <IfModule security2_module>
    SecRuleRemoveById XXXXXXX
    </IfModule>
    </LocationMatch>
    
  29. 0

    Sólo para agregar otro potencial peligro a esta lista cada vez mayor, mi problema (corriendo CentOS 6.8) fue con un particular virtualhost que funcionó bien en un servidor diferente, el problema resultó ser un funcionamiento defectuoso .htaccess usando mod_rewrite:

    En .htaccess, esto provocó un error 403:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    </IfModule>

    La adición de FollowSymLinks como la primera línea se ha solucionado el problema:

    <IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /
    </IfModule>

  30. 0

    Error de permisos

    Algunos muy noob usuarios como yo, se enfrentan a este problema al tener permisos incorrectos conjunto en una página (en particular, de que «los otros» los usuarios no tienen permisos de lectura). Por ejemplo, digamos que usted está tratando de acceder a index.html y obtener el error anterior. Para solucionarlo, tipo:

    chmod o+r index.html
    

    y luego cargar al servidor de nuevo. Desaparece el Error.

  31. 0

    RiggsFolly respondió por mí en otros lugares, simplemente:

    en la carpeta conf de apache editar el archivo: httpd-vhost.conf:

    Añadir esta pequeña línea dentro del Directorio con el nido:

    Require ip 192.168.1
    

    Reiniciar el servidor, apache o Wamp o lo que tengas.

    Eso es todo, ahora todos los de su CASA deivces (en el rango de ip 192.168.1.xxx) pueden ver el PC servidor. Nota sólo agregar las 3 primeras partes de número de ip).

    Problemas, salir de tu firewall para probar.

    Para ver los dispositivos de su red ip, números, descargar una «IP Scanner» de software (muy pocos libre en los alrededores) para PC o android para obtener Fing desde la tienda play store.

  32. 0

    Sé que esta pregunta tiene varias respuestas ya, pero creo que hay una muy sutil aspecto que, aunque se menciona, no se ha destacado suficientemente en las respuestas anteriores.

    Antes de comprobar la configuración de Apache o tus archivos de permisos, vamos a hacer una sencilla comprobación para asegurarse de que cada de los directorios que componen la ruta de acceso completa del archivo que desea acceder (por ejemplo, la index.php el archivo en la raíz del documento) no sólo es legible, pero también ejecutable por el usuario del servidor web.

    Por ejemplo, digamos que la ruta de acceso a los documentos de la raíz es «/var/www/html». Usted tiene que asegurarse de que todos los «var», «www» y «html» directorios (y legible) ejecutable por el usuario del servidor web. En mi caso (Ubuntu 16.04) me había eliminó por error la marca «x» a los «otros» grupo de la «html» directorio de manera que los permisos se veía así:

    drwxr-xr-- 15 root root 4096 Jun 11 16:40 html
    

    Como se puede ver el usuario del servidor web (a la que los «otros» los permisos se aplican en este caso) no tienen ejecutar el acceso a la «html» directorio, y esto fue exactamente la raíz del problema. Después de emitir un:

    chmod o+x html
    

    comando, el problema se arregló!

    Antes de resolver esta manera que literalmente había probado todas las sugerencias de otros en este hilo, y ya que la sugerencia fue enterrado en un comentario que encontré casi por casualidad, creo que puede ser útil para destacar y ampliar aquí.

Dejar respuesta

Please enter your comment!
Please enter your name here