conflicto de Symfony 1.4.8 con PHP 5.4.7 y Apache 2.4.3
symfony1 xampp (2)
Recientemente actualicé mi servidor Xampp (desde 1.7 >> 1.8) y desde entonces ya no puedo ejecutar mis proyectos escritos en Symfony 1.4.8.
Dice:
No tienes permiso para acceder al directorio solicitado. No hay ningún documento de índice o el directorio está protegido contra lectura.
¡Pero tiene permisos!
En realidad, funciona bien con la versión anterior de Xampp. ¿Es posible que Symfony 1.4.8 no sea compatible con Apache 2.4 o PHP 5.4? Estoy usando Windows 8 Enterprise, pero también probado en Windows 7 Ultimate y existe el mismo problema.
Cualquier sugerencia sera apreciada.
Aquí está mi configuración:
NameVirtualHost 127.0.0.1:1111
Listen 127.0.0.1:1111
<VirtualHost 127.0.0.1:1111>
DocumentRoot "D:/AMir/PROJECTS/BarzinMehr/web"
DirectoryIndex index.php
<Directory "D:/AMir/PROJECTS/BarzinMehr/web">
AllowOverride All
Allow from All
</Directory>
Alias /sf C:/xampp/htdocs/symfony/data/web/sf
<Directory "C:/xampp/htdocs/symfony/data/web/sf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
Y aquí está mi .htaccess
Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
# uncomment the following line, if you are having trouble
# getting no_script_name to work
#RewriteBase /
# we skip all files with .something
#RewriteCond %{REQUEST_URI} /..+$
#RewriteCond %{REQUEST_URI} !/.html$
#RewriteRule .* - [L]
# we check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
# no, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
Intente eliminar el archivo .htaccess y acceder directamente al archivo index.php
. Si esto funciona (o al menos produce un error de PHP, en lugar de un error de apache), probablemente signifique que mod_rewrite no está habilitado, y .htaccess
no está funcionando como se esperaba.
Yo recomendaría eliminar el:
<IfModule mod_rewrite.c>
y está cerrando la etiqueta del archivo .htaccess si están presentes porque si el módulo no está instalado, es mejor obtener un error de que no está instalado, en lugar de que el sitio simplemente no funcione de una manera extraña.
Si lo anterior no resuelve el problema, eche un vistazo al registro de errores de apache, que a menudo contiene pistas.
Después de luchar con este problema durante tantos días, finalmente encontré la solución y la estoy tomando aquí a favor de cualquier otra persona que pueda enfrentar este problema. según este artículo (¡gracias al escritor!), todo lo que tuve que hacer fue esto:
cambie cada bloque de Directorio como este:
<Directory "your address">
AllowOverride All
Allow from All
</Directory>
a
<Directory "your address">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
</Directory>
parece que Allow se descartó a favor de la nueva directiva Require en apache 2.4 (según documentación para la versión apache 2.4 )