php - configurando laravel en IIS7
mod-rewrite iis-7 (8)
Acabo de hacerlo funcionar después de largas horas de google y pruebas. Aquí están mis pasos:
laravel5 con IIS 8.5
- instalar instalador de plataforma de ventana
- instalar php-5.6 con el instalador de plataforma de ventana
- instalar php-manager para IIS con instalador de plataforma de ventana (opcional)
- instalar Visual C ++ Redistributable para Visual Studio 2012 (versión x86)
Sin esto, el proceso de FastCgi es inesperado (php_info () no funciona) - instalar composer.exe
- exportar la ruta del contenedor del vendedor del compositor a la ruta
set PATH=%PATH%;%USERPROFILE%/AppData/Roaming/Composer/vendor/bin
- ejecutar
composer global require "laravel/installer=~1.1"
- ejecutar la
lavarel new app
- crear una nueva aplicación en IIS y apuntar a
<app>/public
Eso es todo, ¡Feliz Lavarel!
Referencia: http://alvarotrigo.com/blog/installing-laravel-4-in-windows-7-with-iis7/
Quiero configurar mi servidor IIS7
para que funcione con una aplicación web escrita en laravel
(framework php).
Encontré algo similar para CI
( enlace )
pero no funciona en laravel
(por supuesto, laravel
la redirección index.php
).
en realidad, solo funciona la página de inicio ( www.mysite.com/public
)
alguien usa / d IIS7
con Laravel?
gracias por adelantado
Aquí está mi archivo de trabajo, con dos reglas: (el sitio web apunta a la carpeta pública)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="RewriteRequestsToPublic">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
</conditions>
<action type="Rewrite" url="/{R:0}" />
</rule>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="/index.php/{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Así es como lo arreglé. abra el archivo de configuración, si la siguiente asignación no existe, ponga estas líneas debajo
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^(.*)/$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="/{R:1}" />
</rule>
<rule name="Imported Rule 2" stopProcessing="true">
<match url="^" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
Compruebe sus asignaciones de controlador en IIS:
- lanzar IIS
- haga clic en su sitio
- seguir ''mapeos de manejadores'' (en el bloque IIS)
- Buscar Path PHP, Nombre = PHPxx_via_FastCGI (xx = versión php)
- Haga doble clic en él, haga clic en restricciones de solicitud y haga clic en la pestaña ''Verbos'' donde elija Todos los verbos. Esto lo arreglará :-)
Para instalar IIS
en sus ventanas, vaya al control panel -> uninstall programs
y presione Turn Off Windows Features On/Off
enlace Turn Off Windows Features On/Off
y haga clic en IIS
y seleccione la opción CGI
.
Descargue Web Platform Installer
desde Internet install PHP and SQL drivers for IIS
Abra IIS
desde los programas agregue el sitio web. y para punto de carpeta Public
carpeta Public
en el proyecto laravel / lumen.
para proyectos de Laravel y Lumen. Crear proyecto desde el compositor en cualquier carpeta accesible. Llegué a public
carpeta public
en la estructura de la carpeta y creo web.config
archivo web.config
con los siguientes contenidos. Obtuve esto de laracasts.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Rule 1" stopProcessing="true">
<match url="^(.*)/$" ignoreCase="false" />
<action type="Redirect" redirectType="Permanent" url="/{R:1}" />
</rule>
<rule name="Rule 2" stopProcessing="true">
<match url="^" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Si desea poder recuperar sus $ _GET variables, no use:
<match url="^(.*)$" ignoreCase="false" />
En su lugar use:
<match url="^" ignoreCase="false" />
Utilicé el código a continuación, redirigí a index.php/{R:1}
lugar de public/{R:1}
Funciona directamente de la caja y luego sin cambios de ruta.
<rewrite>
<rules>
<rule name="Imported Rule 2" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
</rewrite>
web.config
archivo web.config
en la carpeta raíz dentro de <configuration></configuration>
:
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="index.php" />
<add value="default.aspx" />
<add value="Default.htm" />
<add value="Default.asp" />
<add value="index.htm" />
<add value="index.html" />
</files>
</defaultDocument>
<handlers accessPolicy="Read, Execute, Script" />
<rewrite>
<rules>
<rule name="Imported Rule 2" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="public/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
luego copie el archivo index.php
de la carpeta pública en la carpeta raíz del proyecto modificando el ../paths.php
en paths.php
como lo paths.php
esta guía
ahora todo funciona a la perfección