在IIS7上设置laravel

时间:2013-01-17 15:05:04

标签: php mod-rewrite iis-7 virtualhost laravel

我想设置我的IIS7服务器,以便让它适用于用laravel(php框架)编写的Web应用程序。

我发现CIlink

的内容类似

但它不适用于laravel(当然我删除了index.php重定向)。

实际上只有主页有效(www.mysite.com/public

有人在Laravel中使用/ d IIS7吗?

提前致谢

8 个答案:

答案 0 :(得分: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.phpthis指南说明

现在一切都很完美

答案 1 :(得分:4)

我使用了以下代码,重定向到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>

答案 2 :(得分:3)

检查IIS中的处理程序映射:

  1. 启动IIS
  2. 点击您的网站
  3. 继续'处理程序映射'(在IIS块中)
  4. 搜索路径PHP,名称= PHPxx_via_FastCGI(xx = php版本)
  5. 双击它,点击请求限制,然后单击选项卡'动词'选择所有动词。这将解决它: - )

答案 3 :(得分:3)

这是我的工作文件,有两个规则:(网站指向公共文件夹)

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

答案 4 :(得分:3)

经过长时间的谷歌和测试后才开始工作了。这是我的步骤:

带有IIS 8.5的laravel5

  1. 安装window platform installer
  2. 使用window platform installer安装php-5.6
  3. 使用window platform installer安装php-manager for IIS(可选)
  4. 安装Visual C++ Redistributable for Visual Studio 2012 (version x86)
    如果没有这个,FastCgi进程会出现意外情况(php_info()无效)
  5. 安装composer.exe
  6. 将composer vendor bin路径导出到路径
    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
  10. 就是这样,Happy Lavarel!

    参考:http://alvarotrigo.com/blog/installing-laravel-4-in-windows-7-with-iis7/

答案 5 :(得分:0)

如果您希望能够检索$ _GET变量,请不要使用:

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

改为使用:

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

答案 6 :(得分:0)

以下是我修复它的方法。 打开配置文件,如果以下映射不存在,请将这些行放在

HTML5

答案 7 :(得分:0)

要在您的窗口上安装IIS,请转到control panel -> uninstall programs并按Turn Off Windows Features On/Off链接,然后点击IIS并选择CGI选项。

enter image description here

从互联网Web Platform Installer

下载install PHP and SQL drivers for IIS

从程序中添加网站打开IIS。并且对于公共文件夹点指向laravel / lumen项目中的Public文件夹。

为Laravel和Lumen项目。在任何可访问的文件夹中从composer创建项目。到达文件夹结构中的public文件夹并创建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>