标签归档:iis7

win2012 iis 安装多个php版本共存 不用网站使用不同php版本

在开发中, 有时候不同的网站需要使用不同的php版本,比较远久的网站程序因为当时开发时候用的是旧版本的php开发,所以如果在服务器上安装的是比较新的php版本的话,那很多时候都会出现一些错误。

而且现在php7已经不再向下兼容了,所以这时候服务器上如果安装多个php版本,并且不同网站使用兼容的php版本,那就可以解决这个问题了。那iis上改怎么让不同的网站使用不同的php版本呢?

首先下载不同的php版本,可以去php官网下载,

下载解压放到某个目录,比如:

E:\php7.0.3\

E:\php5.5.30\

E:\php5.2.6\

php.ini的配置这里就不说了,原来该怎么设置怎么设置。

然后开始在iis配置php

步骤

1.打开IIS 7。 IIS最上层>处理程序映射

麻瓜程序员 iis  安装多版本php

2.右边 添加模块映射

麻瓜程序员 iis 多版本php安装

3.在弹出的窗口中

路径写*.php 模块选FastCgiModule,可执行文件是php目录下的php-cgi.exe

名称随便填,为了好记可以填php版本名称,例如: php7.0.3、php5.2.6那样比较好区别 然后确定。

麻瓜程序员 iis 多版本php安装

再添加几次 把你需要的多个版本的php都添加进去。

添加完成之后点击需要选择不同php版本的网站,然后点击“查看经过排序的列表”。

麻瓜程序员 iis 多版本php安装

 

将你需要的php版本移到第一位

麻瓜程序员 iis 多版本php安装

这样网站就可以用选择的php版本来运行了。

网上还有一种方法是修改web.config文件,创建一个web.config文件之后,在里面添加以下内容。

<?xml version="1.0" encoding="UTF-8"?>

    <system.webServer>
        <handlers>
            <remove name="php5.5.30" />
            <remove name="php7.0.3" />
            <remove name="php5.2.6" />
            <add name="php5.2.6" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="E:\php7.0.3\php-cgi.exe" resourceType="Unspecified" requireAccess="Script" />
        </handlers>
    </system.webServer>
</configuration>

主要就是scriptProcessor(脚本处理器)路径不同,决定了调用了不同版本的php。

<remove name=”php5.5.30″ />也很重要,先把所有版本的php都移除一遍(这里的”name=” 就是之前填的名称)。再add name=,确保调到的是需要的版本。

注意:如果这边remove只有3个,而实际上你加了5个版本的php的话,为了确保调用到正确的版本,应该把另两个加进去。

然后就可以了。有新站的话就把这个web.config拷到站点的目录里,再修改下scriptProcessor的路径就可以了。

(各种版本) 实现http自动跳转https

APache 版本

如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R=301]

如果对某个目录做https强制跳转,则复制以下代码:
RewriteEngine on
RewriteBase /yourfolder
RewriteCond %{SERVER_PORT} !^443$
#RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

如果只需要对某个网页进行https跳转,可以使用redirect 301来做跳转!redirect 301 /你的网页 https://你的主机+网页

Nginx版本

在配置80端口的文件里面,写入以下内容即可。
server {
listen 80;
server_name localhost;
rewrite ^(.*)$ https://$host$1 permanent;
}

IIS 版本

IIs中实现Http自动转换到Https方法介绍 (403跳转对SEO有一定影响)
1、根据IIS版本备份以下文件:
IIS6.0 路径:C:\WINDOWS\Help\iisHelp\common\403-4.htm
IIS7.0以上 路径:C:\inetpub\custerr\zh-CN\403.htm

2、把以下内容全部拷贝替换(403-4或403)里面所有内容,保存即可
<HTML><HEAD><TITLE>该页必须通过安全通道查看</TITLE>
<META HTTP-EQUIV=”Content-Type” Content=”text/html; charset=GB2312″>
</HEAD><BODY>
<script type=”text/javascript”>
var url = window.location.href;
if (url.indexOf(“https”) < 0) {
url = url.replace(“http:”, “https:”);
window.location.replace(url);
}
</script>
</BODY></HTML>
注释:IIS6中,站点属性-》目录安全性-》编辑中把“要求安全通道(SSL)”勾选上即可。
IIS7、8中,SSL设置-》把“要求SSL”勾选即可。

TOMCAT 版本

1、在conf目录下的server.xml文件中找到以下配置,修改redirectPort参数值为”443″,默认是“8443”.
<Connector port=”80″ protocol=”HTTP/1.1″ connectionTimeout=”20000″ redirectPort=”443″ />

2、在conf目录下的web.xml文件内容<web-app>……</web-app>中增加以下配置。
<web-app>
………
<security-constraint>
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
</web-app>
单独页面通用代码段:以下方法较适合指定某一个子页单独https
在需要强制为https的页面上加入以下代码进行处理http–>https
<script type=”text/javascript”>
var url = window.location.href;
if (url.indexOf(“https”) < 0) {
url = url.replace(“http:”, “https:”);
window.location.replace(url);
}
</script>
在需要强制为http的页面上加入以下代码进行处理
https–>http
<script language=”JavaScript” type=”text/JavaScript”>
function redirect()
{
var loc = location.href.split(‘:’);
if(loc[0]==’https’)
{
location.href=’http:’+loc[1];
}
}
onload=redirect
</script>

PHP页面跳转:添加在网站php页面内
if ($_SERVER[“HTTPS”] <> “on”)
{
$xredir=”https://”.$_SERVER[“SERVER_NAME”].$_SERVER[“REQUEST_URI”];
header(“Location: “.$xredir);
}

win2008 中iis7设置404页面但返回状态200的问题解决办法

网上找了很多方法都没弄好, 最后发觉只要修改好web.config文件就好了

具体方法为:

1.打开网站根目录下的web.config文件。

2.找到文件中的

<httpErrors>
<remove statusCode=”404″ subStatusCode=”-1″ />
<error statusCode=”404″ prefixLanguageFilePath=”” path=”404.htm” responseMode=”ExecuteURL” />
</httpErrors>

3.将这段内容替换成

<httpErrors errorMode=”DetailedLocalOnly” defaultResponseMode=”File” >
<remove statusCode=”404″ />
<error statusCode=”404″ path=”404.html” />
</httpErrors>

 

path=”404.html” 这个是你的自定义404页面, 不同路径要自己修改好, 这个是在根目录的。

操作完成后,重启网站服务即可生效!