前言

前段时间整了一个挂Q的平台。源代码是从网上下载的,后期稍微调整了一下链接和title之类的文字就上线了。详细在这里

运行了一段时间,除了偶尔出现QQ下线上线,整体效果基本上符合预期,个人感觉很满意,也小有成就感。

但是运行了个把星期后,免费空间不给力了。提醒我网站挂起,原因是超过1000次CPU使用超过20%,要求去hos***24上整一个无限制的。

本来吧,我不愿意这么麻烦去换空间。但是用了一年多三蛋空间,感觉时不时的不给力,一会儿网站删除了,一会儿因为这种那种原因挂起了;恰好手头上还有另一个空间,amazon的一年免费空间,暂时就先顶着吧。

但是问题也来了,亚马逊的虚拟服务器是windows 2008的系统,最初设计的时候是为了承载一个asp.net的网站,安装了IIS 7.5+.net4.0/4.5。对于php+mysql的组合,没有做任何的相关配置。

既然如此,少不得从(bai)零(du)开始。

百度出来的结果挺多也挺详细的,图文并茂,有安装有配置,very good, let's start it!

正文

Firstly,先下载相关的文件:下载PHP , 下载Mysql.

下载PHP时要留意,我下载的是文件php-5.6.3-Win32-VC11-x64.zip,这里有几个信息,版本5.6.3,x64的,这里还有一个VC11。

VC9 and VC11

More recent versions of PHP are built with VC9 or VC11 (Visual Studio 2008 and 2012 compiler respectively) and include improvements in performance and stability.

The VC9 builds require you to have theVisual C++ Redistributable for Visual Studio 2008 SP1 x86 or x64 installed.

The VC11 builds require to have the Visual C++ Redistributable for Visual Studio 2012x86 or x64 installed.

这是PHP的官方解释,也就是说VC11对应的需要Visual C++ Redistributable 2012版本的环境,而VC9则需要c++2008版本的环境。这个要特别留意。搞错了版本,后面浏览php页面时会失败。

VC++如有必要则需安装,如果电脑上已有相应的版本,则不需考虑。

第二步:配置PHP。主要是配置php.ini

下载的包直接解压缩到c:\PHP文件夹。复制其中的php-development.ini为php.ini,并进行如下修改(要去掉开头分号):

①修改扩展路径:extension_dir = "c:\PHP\ext" (这里写自己的实际路径)

②找到要扩展的部件(可能不止一个),如:extension = php_mysql.dll(这里留意,按需取消前面的;注释,不要图方便全部取消,可能会报错的,笔者经历...)

③时区:date.timezone = asia/shanghai

④fastcgi.impersonate=1 默认为0,如果使用IIS,你需要开启为1

⑤cgi.fix_pathinfo=1

⑥cgi.force_redirect=0 默认为1,如果你使用IIS,需要将其关闭为0

⑦session存储路径,如:session.save_path = "d:\server\web\session" (这里写一个保存session的路径)

配置完成后,将php.ini拷贝一份放到c:\windows下。在win7的IIS7上配置php时,并不需要把php.ini和相关文件拷到系统目录下了。

第三步:设置IIS。(安装过程不说了,确保iis上安装了cgi模块)

打开IIS,选中站点,打开处理程序映射界面。

在右侧操作选项卡中点击“添加模块映射”,根据图中所示配置好各个选项即可。点击“是”,模块安装成功。

点击ISAPI和CGI限制,点击添加,路径为C:\php\php-cgi.exe,描述可写php,允许执行扩展路径,确定。

第四步:检验成果

在IIS里面新建一个网站,将端口设置成除80以外的其他端口,例如1234,在网站的文件夹下新建一个文件index.php,在里面输入

<?php phpinfo(); ?>

设置站点的默认页面为index.php。

在浏览器中输入"http://localhost:1234",将看到下面的画面,到此php配置成功。

可能出现的问题:

Q:“the program can't start because msvcr110.dll...”

A:Visual C++的版本不正确。

Q:"500 php-cgi.exe 报错"

A:这类错误十之八九是由于php.ini的配置导致的。上面两种情况都会出现这个报错。直接的方法运行php文件夹中的php-cgi.exe,如果出现黑漆漆的弹框,说明这里没问题。如果有报错框或者控制台出现其他的信息,则进一步跟进。

参考文章:

Win7下通过FastCGI配置IIS7以执行php脚本

PHP5.4没有php5isapi.dli配置

Windows server 2008搭建php运行环境

2008 win 部署PHP+mysql

IIS 7上部署PHP的更多相关文章

  1. 在IIS服务器上部署svg/woff/woff2字体

    在url没错的前提下,字体文件报404错误,如.woff,.woff2 出错原因: IIS不认SVG,WOFF/WOFF2这几个文件类型 解决方案: 在IIS服务器上部署svg/woff/woff2字 ...

  2. IIS 7上部署PHP【后续一】

    在之前成功在windows 2008+iis7环境下部署php的基础上,今天把之前的挂Q网站转移到了这个服务器下. 文件拷贝到服务器后,问题继续出现. 首先出现的问题是,Mysql的数据库名称和账户密 ...

  3. IIS上部署Net.Core

    部署: 1.安装vc_redist.x64vc_redist.x64 2.安装DotNetCore.1.0.0.RC2-WindowsHosting 3.安装DotNetCore.1.0.0-SDK. ...

  4. IIS 7 Web服务器上部署ASP.NET网站(转)

    IIS 7 Web服务器上部署ASP.NET网站小记 摘自:http://swanmsg.blog.sohu.com/162111073.html 网上查找了很久关于iis7配置asp.net配置问题 ...

  5. IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法IIS上部署MVC网站,打开后500错误

    IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法 IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrl ...

  6. IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法

    IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法 IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrl ...

  7. IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决办法

    IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法 IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrl ...

  8. Express在windows IIS上部署详解

    最近公司在用Express+angularjs+wcf开发系统,让我在windows上部署系统,遇到不少问题,不过最后还是解决了,在IIS上部署系统, 首先windows需安装以下软件: 1.node ...

  9. IIS上部署网站404错误

    新装的系统上部署.net网站遇到403.404错误,可能原因记录: 1.应用程序池选择错误,一般选择4.0的 2.ASP.NET4.0应用程序池未安装(一般先安装了framework4.0,后安装ii ...

随机推荐

  1. 目标检测 的标注数据 .xml 转为 tfrecord 的格式用于 TensorFlow 训练

    将目标检测 的标注数据 .xml 转为 tfrecord 的格式用于 TensorFlow 训练. import xml.etree.ElementTree as ET import numpy as ...

  2. nodejs 最受欢迎的orm sequelize

    传送门 # 视频教程 https://nodelover.me/course/sequelize/ # 官方文档 http://docs.sequelizejs.com/manual/tutorial ...

  3. 自适应滤波:维纳滤波器——LCMV及MVDR实现

    作者:桂. 时间:2017-03-24  06:52:36 链接:http://www.cnblogs.com/xingshansi/p/6609317.html 声明:欢迎被转载,不过记得注明出处哦 ...

  4. SG仿真常用模块

    workspace交互 配合gateway in/out,实现信号仿真与workspace的互联. 滤波器 可与FDATool同时使用,直接关联FDATool的参数,而不必输入FDATool的滤波器系 ...

  5. es6Promise及小程序Promise用法

    本文主要说一下Promise,Prepending(进行时),Resolve(成功了),Reject(失败了),then在小程序中的实际应用 关于promise的介绍什么的就不说了网上一搜一大堆,这里 ...

  6. [Leet Code]Path Sum

    很简单一道题,搞错了N次,记录一下. public class Solution { private int currSum = 0; public boolean hasPathSum(TreeNo ...

  7. Go 源码学习之--net/http

    其实自己不是很会看源码,但是学习优秀的源码是提升自己代码能力的一种方式,也可以对自己以后写代码有一个很好的影响,所以决定在之后的时间内,要有一个很好的习惯,阅读优秀的源码.刚开始自己会觉得看源码很痛苦 ...

  8. MySQL循环语句实例教程 mysql while循环测试

    在mysql数据库中操作同样有循环语句操作,标准的循环方式: while 循环 . loop 循环和repeat循环.还有一种非标准的循环: goto. 鉴于goto 语句的跳跃性会造成使用的的思维混 ...

  9. PreviewRenderUtility的Example

    用PreviewRenderUtility就不用自己再去创建摄像机来做模型在Editor下的预览了 需要注意,默认是用场景天空盒和场景灯光.参考ShaderForge编辑器的做法,配置自定义灯光 这些 ...

  10. Redis为什么使用单进程单线程方式

    Redis采用的是基于内存的采用的是单进程单线程模型的KV数据库,由C语言编写.官方提供的数据是可以达到100000+的qps.这个数据不比采用单进程多线程的同样基于内存的KV数据库Memcached ...