Error al agregar VirtualHost: Error de acceso prohibido 403 (XAMPP) (Windows 7)

161

Tengo una instalación de XAMPP ejecutándose en Windows 7.

Tan pronto como agregue un VirtualHost a httpd-vhosts.conf, AMBOS lo 'regular' http://localhostY lo nuevo dropbox.local no funcionan.

Esto es lo que agregué a mi httpd-vhosts.conf:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "E:/Documenten/Dropbox/Dropbox/dummy-htdocs"
    ServerName dropbox.local
    ServerAlias www.dropbox.local
    ErrorLog "logs/dropbox.local-error.log"
    CustomLog "logs/dropbox.local-access.log" combined
</VirtualHost>

Así que busqué mi dropbox.local-error.logpara cualquier información:

[Thu Feb 02 10:41:57 2012] [error] [client 127.0.0.1] client denied by server configuration: E:/Documenten/Dropbox/Dropbox/dummy-htdocs/

Este error parece resolverse agregando

<directory "E:/Documenten/Dropbox/Dropbox/dummy-htdocs">
     Allow from all
</directory>

Pero ahora me sale este error en dropbox.local-error.log:

[Thu Feb 02 10:45:56 2012] [error] [client ::1] Directory index forbidden by Options directive: E:/Documenten/Dropbox/Dropbox/dummy-htdocs/

Además, cuando intento acceder http://localhost, no recibo ningún error de forma regular error.log, aunque sí error 403cuando intento acceder.

¿Alguien puede ayudar ... Me está volviendo loco: S

EDITAR: También httpd.confhay lo siguiente (lo he visto mencionado varias veces, así que antes de que alguien lo diga):

<IfModule dir_module>
    DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
                   default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
                   home.php home.pl home.cgi home.asp home.shtml home.html home.htm
</IfModule>
Highmastdon
fuente
1
Recibí una respuesta, pero aún no puedo publicarla :( No hay suficiente reputación: /
Highmastdon
Ninguna de estas respuestas me funciona :(
Pathros
¿Puede alguien ayudarme aquí? Estoy tratando de lograr lo mismo en MAMP stackoverflow.com/q/40405663/4480164
cyber8200 el

Respuestas:

340

Bien: esto es lo que hice ahora y está resuelto:

Mi httpd-vhosts.confaspecto es ahora ahora:

<VirtualHost dropbox.local:80>
    DocumentRoot "E:/Documenten/Dropbox/Dropbox/dummy-htdocs"
    ServerName dropbox.local
    ErrorLog "logs/dropbox.local-error.log"
    CustomLog "logs/dropbox.local-access.log" combined
    <Directory "E:/Documenten/Dropbox/Dropbox/dummy-htdocs">
        # AllowOverride All      # Deprecated
        # Order Allow,Deny       # Deprecated
        # Allow from all         # Deprecated

        # --New way of doing it
        Require all granted    
    </Directory>
</VirtualHost>

Primero, vi que es necesario haber configurado las <Directory xx:xx>opciones. Así que puse la parte <Directory > [..] </Directory>DENTRO del <VirtualHost > [..] </VirtualHost>. Después de eso, agregué AllowOverride AuthConfig Indexesa las <Directory>opciones.

Ahora http://localhosttambién apunta al dropbox-virtualhost. Entonces agregué dropbox.locala <VirtualHost *:80>lo que lo hace como<VirtualHost dropbox.local:80>

FINALMENTE funciona: D!

Soy un hombre feliz! :) :)

Espero que alguien más pueda usar esta información.

Highmastdon
fuente
39
FWIW, hice lo mismo y todavía tuve problemas para acceder a mi vhost. Sin embargo, agregar Require all granteddespués Allow from allhizo que mi configuración funcionara.
Camilo Díaz Repka
El httpd-vhosts.confes un archivo de configuración para Apache. Apache 'ejecuta' el código php. Descargue e instale xamppy cambie la configuración como se indicó anteriormente.
Highmastdon
66
A partir de Apache 2.4, las directivas de control de acceso ordenan, permiten, niegan y satisfacen están en desuso . Asegúrese de estar ejecutando una versión inferior cuando use estas directivas, o use Requerir en su lugar.
Pascalculator
44
Como dice @Pascalculator, use Require all granted en su lugar . Quiero enfatizar el en su lugar porque no funcionaba cuando tenía las otras opciones en mi configuración, pero cuando solo dejé esta atrás funcionó.
user2428118
1
@davejal Muchas gracias y no hay problema :) No quiero ser un idiota al respecto. De hecho, un poco más de EQ podría ser agradable aquí :)
Highmastdon
60

Para mí funcionó cuando cambié el contenido del "directorio" en esto:

<Directory  "*YourLocation*">
Options All
AllowOverride All
Require all granted  
</Directory>
Mezclo
fuente
Apache 2.4.3: ahora funciona con la adición anterior, además hice que los servicios de Apache y MySQL se "verificaran" en el Panel de control, lo que estaba causando que XAMPP CP dejara de responder. Servicios no verificados: Apache se ejecutó, pero error de acceso prohibido. Se agregaron los permisos anteriores, y funciona ahora. ¡¡Gracias!!
Sean Kendle
2
Básicamente esto: me faltaba la directiva Opciones. Options Indexes FollowSymLinksera todo lo que necesitaba en Apache2.2, YMMV
Ed Orsi
Esto funcionó maravillosamente para mí en lugar de la respuesta seleccionada. Por alguna razón, "Requerir todo lo otorgado" por sí mismo, ya que esa respuesta sugiere que no funcionó, ya que instantáneamente se bloqueó XAMPP. Pero esta respuesta funcionó con aquellos entre <directorio>, así que gracias por la respuesta.
Scrydan
¿Puede alguien ayudarme aquí? Estoy tratando de lograr lo mismo en MAMP stackoverflow.com/q/40405663/4480164
cyber8200 el
SÓLO Options Allfuncionó para mí! ¡Es el ingrediente que falta!
Theodore R. Smith
10

Para mí (también XAMPP en Windows 7), esto es lo que funcionó:

<Directory "C:\projects\myfolder\htdocs">`
   AllowOverride All
   Require all granted
   Options Indexes FollowSymLinks
</Directory>` 

Es esta línea la que causaría el 403:

Order allow,deny
lequebecois
fuente
.htaccess no funcionaba hasta que cambié su respuesta, gracias.
ssi-anik
cuando falta index.html y solo desea mostrar todas las páginas de esta carpeta, puede agregar solo lo siguiente en la directiva <Directory>: Require all grantedyOptions Indexes FollowSymLinks
tatskie
8

Estoy usando XAMPP 1.6.7 en Windows 7. Este artículo funcionó para mí.

Agregué las siguientes líneas en el archivo httpd-vhosts.confen C:/xampp/apache/conf/extra.
También había comentado la línea# NameVirtualHost *:80

<VirtualHost mysite.dev:80>
    DocumentRoot "C:/xampp/htdocs/mysite"
    ServerName mysite.dev
    ServerAlias mysite.dev
    <Directory "C:/xampp/htdocs/mysite">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Después de reiniciar el apache, todavía no funcionaba. Luego tuve que seguir el paso 9 mencionado en el artículo editando el archivo C:/Windows/System32/drivers/etc/hosts.

# localhost name resolution is handled within DNS itself.
     127.0.0.1       localhost
     ::1             localhost
     127.0.0.1       mysite.dev  

Entonces me puse a trabajar http://mysite.dev

Sithu
fuente
Esto realmente ayudó. Muchas gracias. Salvaste mi día. :)
Abhishek Goel
6

Gracias, eso funcionó! Pero reemplacé esto

AllowOverride AuthConfig Indexes

con ese

AllowOverride All

De lo contrario, el .htaccess no funcionó: tuve problemas con RewriteEngine y el mensaje de error "RewriteEngine no está permitido aquí".

Adán
fuente
3

Las sugerencias anteriores no funcionaron para mí. Lo ejecuté en mi Windows, inspirado en http://butlerccwebdev.net/support/testingserver/vhosts-setup-win.html

Para Http dentro de httpd-vhosts.conf

<Directory "D:/Projects">       
AllowOverride All
Require all granted
</Directory>

##Letzgrow
<VirtualHost *:80>
DocumentRoot "D:/Projects/letzgrow"
ServerName letz.dev
ServerAlias letz.dev    
</VirtualHost>

Para usar Https (Open SSL) dentro de httpd-ssl.conf

<Directory "D:/Projects">       
AllowOverride All
Require all granted
</Directory>

##Letzgrow
<VirtualHost *:443>
DocumentRoot "D:/Projects/letzgrow"
ServerName letz.dev
ServerAlias letz.dev    
</VirtualHost>

Espero que ayude a alguien !!

Rahul Gupta
fuente
2

Después de tantos cambios e intentos y respuestas. por

SO: Windows 7 / Windows 10

Versión de Xampp: Xampp o Xampp portable 7.1.18 / 7.3.7 (panel de control v3.2.4)

Instaladores: win32-7.1.18-0-VC14-installer / xampp-windows-x64-7.3.7-0-VC15-installer

  1. No edite otros archivos como httpd-xampp

  2. Dejar de apache

  3. Abrir httpd-vhosts.conf situado en **your_xampp_directory**\apache\conf\extra\(su directorio XAMPP podría ser por defecto: C:/xampp/htdocs)

  4. Elimine el hash antes de la siguiente línea (aprox. Línea 20): NameVirtualHost *:80(esto puede ser opcional)

  5. Agregue los siguientes hosts virtuales al final del archivo, teniendo en cuenta las rutas de sus directorios:

    ##127.0.0.1
    <VirtualHost *:80>
        DocumentRoot "C:/xampp/htdocs"
        ServerName localhost
        ErrorLog "logs/localhost-error.log"
        CustomLog "logs/localhost-access.log" common
    </VirtualHost>
    
    ##127.0.0.2
    <VirtualHost *:80>
        DocumentRoot "F:/myapp/htdocs/"
        ServerName test1.localhost
        ServerAlias www.test1.localhost
        ErrorLog "logs/myapp-error.log"
        CustomLog "logs/myapp-access.log" common
        <Directory  "F:/myapp/htdocs/">
            #Options All # Deprecated
            #AllowOverride All # Deprecated
            Require all granted  
        </Directory>
    </VirtualHost>
    
  6. Edite (con acceso de administrador) su archivo host (ubicado en Windows\System32\drivers\etc, pero con el siguiente consejo, solo una ip de bucle invertido para cada dominio :

    127.0.0.1 localhost
    127.0.0.2 test1.localhost
    127.0.0.2 www.test1.localhost
    

Para cada caso, repita el segundo bloque, el primero es el bloque principal solo para fines "predeterminados".

Leandro
fuente
1
¡Establecer diferentes direcciones IP para cada host virtual funcionó! Sin embargo, a diferencia de WAMP, XAMP no interpreta cada nombre de servidor cuando están agrupados en una sola dirección IP (por ejemplo 127.0.0.1 localhost,test1.localhost).
CPHPython
@CPHPython gracias por mencionar las diferencias y mejorar mi respuesta. ¡Encantado de ayudar! Recuerdo haber luchado mucho con este tema
Leandro
1
gracias, me alegro de ayudar también! Antes de encontrar su respuesta, pasé bastante tiempo tratando de entender por qué los hosts de Windows no reflejaban los nombres de los servidores.
CPHPython
0

Estoy usando xampp 1.7.3. Usando la inspiración de aquí: xampp 1.7.3 actualizar el acceso a hosts virtuales rotos prohibido

En lugar de agregar <Directory> .. </Directory>en httpd-vhosts.conf , lo agrego en httpd.conf justo después <Directory "D:/xampplite/cgi-bin"> .. </Directory>.

Esto es lo que agrego en httpd.conf:

<Directory "D:/CofeeShop">
    AllowOverride All
    Options  All
    Order allow,deny
    Allow from all
</Directory>

Y esto es lo que agrego en httpd-vhosts.conf

<VirtualHost *:8001>
    ServerAdmin [email protected]
    DocumentRoot "D:/CofeeShop"
    ServerName localhost:8001
</VirtualHost>

También agrego Listen 8001httpd.conf para completar mi configuración.

Espero eso ayude

Tutompita
fuente
0

Para muchos es un problema de permiso, pero para mí resulta que el error se produjo por un error en el formulario que estaba tratando de enviar. Para ser específicos, accidentalmente puse un signo "mayor que" después del valor de "acción". Por lo tanto, le sugiero que eche un segundo vistazo a su código.

Fred
fuente