为了更深入的理解下服务端的配置 ,上篇文章讲了如何在windows下安装apache , 接下来再研究下在windows下安装php并且结合apache运行php环境, 纯属学习用 ^^ ,如果嫌麻烦可以直接去安装集成环境(wamp等等)。

一 : 下载安装程序

这里下载的也是压缩包,直接解压就可以了。 最新的php版本已达到7.1了,考虑到大部分项目都是5.x版本,这里以PHP 5.6 (5.6.23)版本为例子。

php下载地址:http://windows.php.net/download/

这里选择vc11x64 thread safe压缩版本,  (x86是32位的 ,不要选错了)

关于thred safe 还是Non thread safe 到网上查了下大概是这样(我们这里是apache服务器就选择thred safe 吧):

PHP的两种执行方式:ISAPI和FastCGI
ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择ThreadSafe版本
FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,如果是以FastCGI来执行PHP,建议选择NonThread Safe版本
通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版

下载好之后解压到C:\wamp-all\目录下 ,重命名为php-5.6.23。

二 : 配置php

1. php.ini-production改名为php.ini

2. 搜索; extension_dir = "ext"  将前面的;(分号)去掉,这是打开注释。要改成绝对路径才行,否则连接数据库时会报错,例如:extension_dir = "C:/wamp-all/php-5.6.23/ext"

这个是指向扩展库目录的路径(需要指向存放 PHP 扩展库文件的目录),可以是绝对路径(如 "C:/wamp-all/php-5.6.23/ext")或相对路径(如 "ext"), 这里默认是ext, 直接打开注释就可以了。

3. 依次打开扩展库

php_fileinfo.dll、php_gd2.dll、php_mysql.dll、php_mysqli.dll、php_pdo_mysql.dll   将前面的;去掉就可以了。

三: 配置apache

上一节已经讲解了apache的基本配置,现在这里是把php安装为apache的一个扩展模块 (只是apache的一个扩展模块而已)

1. LoadModule

在apache配置文件httpd.conf 搜索LoadModule 在最后的LoadModule添加:

LoadModule php5_module "C:/wamp-all/php-5.6.23/php5apache2_4.dll"

有两个参数,第一个参数php5_module为模块的名字 ,可以自己取, 第二个参数是模块的dll文件,这个在解压的php包里面可以找到 (有几个类似的,不要找错了)。

注意:不要在后面加#注释,否则会报错 
LoadModule php5_module "C:/wamp-all/php-5.6.23/php5apache2_4.dll" #加载php模块

会报参数错误。

2. AddType

在apache配置文件找到AddType application/x-gzip .gz .tgz

在下面直接加上php模块解析哪种后缀文件,多个以空格隔开

AddType application/x-httpd-php .php .phtml

3. PHPIniDir 指定php配置文件的位置

直接在AddType application/x-httpd-php .php .phtml下面添加即可

PHPIniDir "C:/wamp-all/php-5.6.23"

配置完保存,重启apache 。

发现报错

但是看不到错误日志 ,不知道哪里错了, 网上搜索了下,有的说是端口被其他程序占用了,改了端口重启apache还是一样报错 。

找到了在命令行模式下启动apache的方法, 这时如果报错,错误信息会打印在命令行

打开cmd, cd到apache/bin目录下,执行:httpd.exe -w -n "apache" -k start;

其中"apache"是安装apache时指定的apache服务器名字(见apache安装文章)

开始是报参数错误,上面已讲过了 ,把注释去掉就可以了。

去掉注释再次运行httpd.exe -w -n "apache" -k start;   发现新的错误

看到这些错误提示信息,想起了选择下载php版本的时候选择的是vc11  ,需要下载vc11的编译环境。

下载地址:http://www.microsoft.com/zh-CN/download/details.aspx?id=30679

选择合适的类型下载安装即可。

安装完成再重启apache ,太高兴了 。一切运行正常。如果要开启错误提示可以修改配置:display_errors = On  只有配置文件的错误提示打开了,才可以单独在php文件再配置错误信息是否开启。

//禁用错误报告
error_reporting(0);
//报告运行时错误
error_reporting(E_ERROR | E_WARNING | E_PARSE); error_reporting(E_ALL); //开启所有的

最后测试下php环境 ,在网站根目录下新建index.php

<?php
echo "hello world ";

打开浏览器输入http://localhost/index.php

出现:hello world

环境正常。

总结 :  开始看了细说php上的教程,那本书上的例子都太老了。这里的注意点在下载版本和配置apache上, 环境已经顺利跑通了 ,当然linux上的php环境有空也要折腾下 ^^ 。下一节看下mysql安装 。

参考文档:

1. 细说php书籍

2. http://windows.php.net/download/

3. http://jingyan.baidu.com/article/e4d08ffd8fa40d0fd2f60dfd.html

4.http://zhidao.baidu.com/link?url=Q41MURlaZKOfo_dy_YgNq7DyNDonCoL1mU71oUdEc6xf0zDxhzoOIQ6O3iJ-vHon104AgpLgAVBBI2cMJCmiMnley45_hCi5MwTZa_J2xpm

windows下安装php笔记的更多相关文章

  1. windows下安装mysql笔记

    接着上几篇文章再来看下windows下安装mysql. 我这里是windows7 64位, 安装过程中还是遇到一些坑,这里记录下. 一.下载安装包 打开mysql官网下载页面:http://dev.m ...

  2. windows下安装apache笔记

    之前一直是用别人配置好的apache环境来开放,今天想自己安装配置下windows下的apache(nginx+fastcgi).mysql.php等. 虽然大部分时间是在搞前端开发,偶尔也要搞服务端 ...

  3. Python学习笔记(三)windows下安装theano

    2016.6.28补充: 不论是实验室的电脑还是我的笔记本,只要是windows下,theano.test()都是不通过的.虽然能使用一些theano中的函数,但是我感觉很不好. 所以还是转Ubunt ...

  4. 基于svnserve的SVN服务器(windows下安装与配置)

    基于svnserve的SVN服务器(windows下安装与配置) 基于svnserve的SVN服务器(windows下安装与配置)关键字: svn 安装SVNserve 从http://subvers ...

  5. windows下安装win7虚拟机并安装oracle

    一.win7虚拟机 与安装linux虚拟机没有什么不同,不同的是选择客户机操作系统.内存.磁盘容量,以及映像文件. 创建win7虚拟机步骤简化: 新建虚拟机-->>自定义-->> ...

  6. 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)

    相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...

  7. Windows 下安装 MongoDB

    Windows 下安装 MongoDB 的步骤:1.官网www.mongodb.com下载安装包或zip包2.解压下载的文件到文件夹 D:\mongo .3.使用管理员权限打开CMD,导航到目录 D: ...

  8. Coreseek Windows下安装调试

    由于项目需要全文检索,后面就去网上查了下资料,找到了Sphinx[中文是狮身人面像]这个全文检索引擎,听说挺好用的,不过没有中文分词.后面又去找了一下,找到了Coreseek,一款中文全文检索/搜索软 ...

  9. 从零开始学 Java - Windows 下安装 Tomcat

    谁都想分一杯羹 没有一个人是真正的无私到伟大的,我们试着说着做自己,与人为善,世界和平!殊不知,他们的真实目的当你知道后,你会被恶心到直摇头并下意识地迅速跑开,下辈子都不想见到他.不过,他没错,你也没 ...

随机推荐

  1. Xcode升级导致插件失效的解决办法-b

    作为iOS界的攻城师,每一次水果发布新的Xcode开发版本时,我们都会跟进,然而那些好用的Xcode插件都会莫名的失灵...对此我各种百度,在这里,我将跟大家分享我是如何解决这些问题的.当然,我的方案 ...

  2. 转:Hprose for php(三)——客户端

    文章来自于:http://blog.csdn.net/half1/article/details/21329785 本文将介绍Hprose for php客户端的更多细节. 1.直接通过远程方法名进行 ...

  3. strcmp() Anyone?

    uva11732:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_prob ...

  4. HiveServer连接优化

    引言   数据平台目前通过Hive SQL的方式提供数据分析服务,系统使用多台HiveServer(JDBCServer)接收客户端连接请求,实际使用场景中频频出现HiveServer内存消耗过多导致 ...

  5. Surrounded Regions——LeetCode

    Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'. A region is captured ...

  6. Java---多线程的加强(1)

    简单应用: 首先来看一个简单的例子: 两个线程,分别实现对1-100内的奇数,偶数的输出. 第一种方法:通过接口 MyRun类: package thread.hello; /** * 通过实现Run ...

  7. RAM区间最值

    RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就 ...

  8. C++编写ATM(1)

    // ATM的初始.cpp : 定义控制台应用程序的入口点. // /************************************************* 运行环境: VS2008 作者 ...

  9. shell编程(一)--常用变量及表达式

    $? 表示执行上一个命令的返回值:如果为0表示执行成功,非0表示执行失败$1.$2.... 分别表示参数1.参数2....$# 表示这个程序的参数个数$*/$@ 表示这个程序的所有参数$$ 表示这个程 ...

  10. angularjs改变路由时控制器每次都执行两次

    原因如下: 代码里面也初始化了控制器 模板配置了一个控制器