php - online - настройка laravel на IIS7



mod rewrite enable (6)

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

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

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

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

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

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

https://src-bin.com


Answer #1

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

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

Answer #2

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

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

Answer #3

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

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

Answer #4

Просто он работал после долгих часов работы с 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/


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

Answer #6

Я создал файл 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 как говорится в этом руководстве.

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





laravel