在 IIS7 上设置 Laravel

问题描述 投票:0回答:9

我想设置我的

IIS7
服务器,以便让它与用
laravel
(php 框架)编写的 Web 应用程序一起使用。

我发现了类似的东西

CI
链接

但它在

laravel
上不起作用(当然我删除了
index.php
重定向)。

其实只有主页可以用(

www.mysite.com/public
)

有人在 Laravel 中使用 /d

IIS7
吗?

提前致谢

php mod-rewrite iis-7 virtualhost laravel
9个回答
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
,如this指南所述

现在一切都很完美


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>

3
投票

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

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

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>

3
投票

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

laravel5 与 IIS 8.5

  1. 安装window平台安装程序
  2. 使用window平台安装程序安装php-5.6
  3. 使用window平台安装程序安装IIS的php-manager(可选)
  4. 安装 Visual C++ Redistributable for Visual Studio 2012(版本 x86)
    如果没有这个,FastCgi 进程会意外地兴奋(php_info() 将无法工作)
  5. 安装composer.exe
  6. 将 Composer 供应商 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

就是这样,快乐的拉瓦雷尔!

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


0
投票

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

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

改为使用:

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


0
投票

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

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

0
投票

要在 Windows 上安装

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 项目中的
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> 

0
投票

在 IIS(基于 Windows 的操作系统)上托管 Laravel 11

PHP 8.2 下载链接

URL 重写扩展

PHP 管理器

所有文件都会在这里

在 IIS(Internet 信息服务)上部署 PHP 时,很常见 使用 FastCGI 模块而不是线程。 FastCGI 提供了 相比在 IIS 上运行 PHP 的环境更加稳定和高效 Apache 的线程模型。

1.通过运行“运行”对话框(Win + R)中的可选功能来打开“Windows 功能”列表。

optionalfeatures

  1. 它将打开窗口功能形式 选择互联网信息服务。

  1. 下载php8.2文件、URL重写和php管理器 下载 PHP 8.2、URL 重写扩展和 PHP 管理器。 安装 URL 重写扩展和 PHP 管理器。 将 PHP 8.2 zip 文件解压到 C:\php\ 或您的首选目录。

4.在

C:\inetpub\wwwroot
文件夹中创建你的laravel项目

5.在iis中创建您的网站。找到您的laravel公共文件夹,因为那里有index.php。 6.单击处理程序映射按钮添加此属性并保存。 7.点击php管理器。找到php-cgi.exe文件 8.从 php 管理器启用 laravel 的基本 php 扩展或手动编辑 php.ini 并启用 dll 包。

9.通过单击从 public/.htaccess 文件导入转到 URL 重写和导入规则(.htaccess)。视图中可能会显示错误。因此您可以编辑 .htaccess 文件并删除不注释的行并导入文件。

10.申请 11.重新启动网站并打开网址。

© www.soinside.com 2019 - 2024. All rights reserved.