前言

前段时间整了一个挂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. Sql 查询当天、本周、本月记录

    --查询当天: select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from info wh ...

  2. logstash日志分析的配置和使用(转)

    logstash是一个数据分析软件,主要目的是分析log日志.整一套软件可以当作一个MVC模型,logstash是controller层,Elasticsearch是一个model层,kibana是v ...

  3. java appium webview切换处理

    Set<String> contexts = driver.getContextHandles(); for(String item :contexts){ // NATIVE_APP / ...

  4. Python把同一个对象循环赋值给另外一个变量

    Python把同一个对象循环赋值给另外一个变量,修改一个对象,其他对象也修改了 >>> row=['_'] * 3 >>> board = [] >>& ...

  5. python 取整的两种方法

    问题简介: 要把一个浮点数(float)整数部分提取出来.比如把“2.1”变成“2”的这一过程:现在我们给这个过程起一个名字叫“取整”.那么它 在python中大致可以有两种写法 写法1)类型转换: ...

  6. IOS 设备备份文件详解 (二)

    这篇主要讲解如何解析Manifest.mbdb文件. 使用二进制工具打开这个文件,文件的头6个字节是固定的,相当于是文件的一种标识 后面的内容是一个一个的项,可以使用一个循环来读取文件,一个一个解析. ...

  7. python源码安装

    # mkdir /apps/Python- 解压源码包,进入源码包 [root@LB_81 Python-]# ls aclocal.m4 configure.ac install-sh Makefi ...

  8. HTML5学习笔记(四):H5中表单新增元素及改良

    方便布局 表单内容可以放在表单标签之外,这样做的好处是方便设计时不用考虑一定要将表单元素放在指定的form标签之下,只要指定元素适用于哪个表单即可,如下: <form id="test ...

  9. centos安装man中文手册

    第一步下载man中文手册压缩包 //下载 wget http://pkgs.fedoraproject.org/repo/pkgs/man-pages-zh-CN/manpages-zh-1.5.1. ...

  10. linux命令(52):usermod 修改账户信息,groupmod

    usermod: usermod [options] user_name usermod 命令修改系统帐户文件来反映通过命令行指定的变化 选项(options) -a|--append  ##把用户追 ...