我想设置我的
IIS7
服务器,以便让它与用 laravel
(php 框架)编写的 Web 应用程序一起使用。
我发现了类似的东西
CI
(链接)
但它在
laravel
上不起作用(当然我删除了 index.php
重定向)。
其实只有主页可以用(
www.mysite.com/public
)
有人在 Laravel 中使用 /d
IIS7
吗?
提前致谢
我在
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指南所述
现在一切都很完美
我使用了下面的代码,重定向到
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>
检查 IIS 中的处理程序映射:
这是我的工作文件,有两个规则:(网站指向公共文件夹)
<?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>
经过长时间的谷歌和测试后才开始工作。这是我的步骤:
laravel5 与 IIS 8.5
set PATH=%PATH%;%USERPROFILE%\AppData\Roaming\Composer\vendor\bin
composer global require "laravel/installer=~1.1"
lavarel new app
<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>
要在 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>
在 IIS(基于 Windows 的操作系统)上托管 Laravel 11
或
在 IIS(Internet 信息服务)上部署 PHP 时,很常见 使用 FastCGI 模块而不是线程。 FastCGI 提供了 相比在 IIS 上运行 PHP 的环境更加稳定和高效 Apache 的线程模型。
1.通过运行“运行”对话框(Win + R)中的可选功能来打开“Windows 功能”列表。
optionalfeatures
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 文件并删除不注释的行并导入文件。