настройка laravel на IIS7

Я хочу настроить свой сервер IIS7 , чтобы он работал с веб-приложением, написанным в laravel (php framework).

Я нашел что-то подобное для CI ( ссылка )

но он не работает на laravel (конечно, я удалил перенаправление index.php ).

фактически только домашняя страница работает ( www.mysite.com/public )

IIS7 нибудь использует / d IIS7 с Laravel?

заранее спасибо

Я создал файл web.config в корневой папке внутри <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> 

затем скопируйте файл index.php ../paths.php папки в корневую папку проекта, изменяя ../paths.php в paths.php как говорится в этом руководстве.

теперь все работает отлично

Проверьте сопоставления обработчиков в IIS:

  1. запустить IIS
  2. нажмите на свой сайт
  3. перейти на «сопоставления обработчиков» (в блоке IIS)
  4. Поиск Path PHP, Name = PHPxx_via_FastCGI (версия xx = php)
  5. Дважды щелкните по нему, нажмите на ограничения по запросу и нажмите на вкладку «Глагол», где вы выбираете «Все глаголы». Это исправит это 🙂

Я использовал приведенный ниже код, перенаправляю на index.php/{R:1} а не public/{R:1} Работает прямо из коробки, а затем без изменений пути.

 <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> 

Вот мой рабочий файл с двумя правилами: (веб-сайт указывает на общую папку)

 <?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> 

Просто он работал после долгих часов работы с Google и тестирования. Вот мои шаги:

laravel5 с IIS 8.5

  1. установить установщик оконной платформы
  2. установить php-5.6 с установщиком оконной платформы
  3. установить php-менеджер для IIS с установщиком оконной платформы (необязательно)
  4. установить Visual C ++ Redistributable для Visual Studio 2012 (версия x86)
    Без этого процесс FastCgi неожиданно возбуждается (php_info () не будет работать)
  5. установить композитор.exe
  6. путь к поставщику
    set PATH=%PATH%;%USERPROFILE%\AppData\Roaming\Composer\vendor\bin
  7. для запуска composer global require "laravel/installer=~1.1"
  8. запустить lavarel new app
  9. создать новое приложение в IIS и указать на <app>/public

Вот и все, Счастливый Лаварел!

Ссылка: http://alvarotrigo.com/blog/installing-laravel-4-in-windows-7-with-iis7/

Если вы хотите получить переменные $ _GET, не используйте:

<match url="^(.*)$" ignoreCase="false" />

Вместо этого используйте:

<match url="^" ignoreCase="false" />

Вот как я его исправил. откройте файл конфигурации, если следующее отображение не существует, поместите эти строки в

  <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> 

Чтобы установить IIS на свои окна, перейти к control panel -> uninstall programs и нажать « Turn Off Windows Features On/Off ссылку и выбрать IIS и выбрать вариант CGI .

введите описание изображения здесь

Загрузите Web Platform Installer из Интернета, install PHP and SQL drivers for IIS

Откройте IIS из программ, добавьте сайт. а для точки общей папки – в общую папку в проекте laravel / lumen.

для проектов Laravel и Lumen. Создавайте проект из композитора в любой доступной папке. попал в общую папку в структуре папок и создал файл web.config с содержимым ниже, которое я получил от 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>