软件准备

Apache2.4
php-5.6.20-Win32-VC11-x86
php-5.6.20-src
mysql-5.5.45-win32
vcredist_x86.exe
vs2012旗舰版
Cygwin

本人是在windows7 32位系统下进行开发的,如为64位系统,请选择64位版本。

开发PHP扩展,要用到php的源代码,目前php的官网已经找不到php5.3以下的源码了,只能采用php5.3以上的源码,所以php版本选择了php-5.6.20,从官网http://windows.php.net/download/下载后的源码包为:php-5.6.20-src,同样安装包必须与其对应,下载后的压缩包为:php-5.6.20-Win32-VC11-x86。
此目前php官网能下载到的php只支持apache2.4版本,因此必须下载apache2.4,此版本可百度自行下载,只要不下载apache2.2版本即可。
mysql我采用的是mysql-5.5.45-win32,可百度自行搜索。
由于php为VC11编译,必须支持vc11的运行环境,下载vcredist_x86.exe,安装后即可(Apache在启动时同样需要此运行环境)。
开发工具采用vs2012旗舰版(即VC11),网上自行下载,激活码激活即可。
Cygwin,linux环境模拟器,建议下载离线包,我是从这边下载的http://www.cr173.com/soft/60977.html,否则在线安装包非常非常慢,最后还不一定能下载成功

环境搭建

1)首先安装vc11,即安装vcredist_x86.exe,直接Next即可完成。
2)安装Cygwin,直接默认安装到C:/cygwin 即可
3)解压缩php-5.6.20-src源码压缩包,至c:/php-5.6.20-src,我们的扩展开发均基于此源代码进行
4)解压php-5.6.20-Win32-VC11-x86压缩包,并copy到C:/php
5)安装apache2.4
将压缩包解压缩到C:/Apache2.4
用记事本打开C:\apache24\conf\httpd.conf修改该配置文件
#ServerName www.example.com:80 前的#去掉,变成 ServerName www.example.com:80
DocumentRoot "c:/Apache24/htdocs" 修改为DocumentRoot "D:/website/htdocs",其中"D:/website/htdocs" 为我的网站目录
同样<Directory "c:/Apache24/htdocs">修改为<Directory "D:/website/htdocs">
DirectoryIndex index.html 修改为DirectoryIndex index.html index.php支持默认的php文件
增加一行LoadModule php5_module "c:/php/php5apache2_4.dll",前提您的php安装包已经解压缩至C:/php
增加AddType application/x-httpd-php .php增加对php的支持,
此时保存httpd.conf文件
下面将apache服务增加到windows服务当中,在cmd中执行:c:\apache24\bin\httpd -k install
4)修改php.ini
将C:/php目录下的php.ini-development拷贝到windows目录下,并修改文件名为php.ini,编辑此文件
extension_dir = "ext" 修改为extension_dir = "C:/php/ext/","C:/php/ext/"为php的扩展目录

;extension=php_mysql.dll ;extension=php_mbstring.dll ;extension=php_gd2.dll
这几个扩展前的;去掉,此为几个常用扩展,根据需要可以选择用其他扩展

打开c:\apache24\bin\ApacheMonitor.exe启动apache
6)安装mysql,直接一步一步Next安装即可。
7)安装vs2012,直接一步一步Next安装即可。

本环境搭建中的诸多设置可见http://www.tinysoft.me/index.php/archives/24/ 一文,只是软件的版本更新了,有一些不同而已。

基于Visual c++ 2012的php扩展开发 - 环境搭建的更多相关文章

  1. 基于Visual c++ 2012的php扩展开发 - HelloWord!

    1.cmd进入命令行模式,并进入php-5.6.20-src/ext源代码的ext目录下输入命令php ext_skel_win32.php --extname=HelloWord,执行结果如下图: ...

  2. 【Xamarin】Visual Studio 2013 Xamarin for Android开发环境搭建与配置&Genymotion

    Xamarin Xamarin是基于Mono的平台. Xamarin旨在让开发者可以用C#编写iOS, Android, Mac应用程序,也就是跨平台移动开发. 下载资源 1,进入Xamarin官方网 ...

  3. php扩展开发环境搭建

    首先要安装编译php时要的几个扩展库 (1)libxml2,若无php安装一些解析xml的扩展时会提示xml2-config not found sudo apt-get install libxml ...

  4. 基于AM3352/AM3354/AM3358/AM3359的Linux 开发环境搭建(上)

    遇到不少人新手小白问,前辈如何搭建一个优良的Linux 开发环境?之前一直都是在用win开发,现在想要尝试用Linux做开发等等一系列的问题.开源一直是给电子行业工作者提供了一种向技术更深处进发的机遇 ...

  5. 基于Eclipse+Cordova的Android Hybrid应用开发环境搭建

    环境说明 操作系统:Windows 7 64位 Eclipse版本:4.5.2 Release(eclipse-jee-mars-2) JDK版本:1.8 搭建步骤 1.从http://www.ecl ...

  6. 在Visual Studio 2012中使用VMSDK开发领域特定语言(二)

    本文为<在Visual Studio 2012中使用VMSDK开发领域特定语言>专题文章的第二部分,在这部分内容中,将以实际应用为例,介绍开发DSL的主要步骤,包括设计.定制.调试.发布以 ...

  7. 在Visual Studio 2012中使用VMSDK开发领域特定语言(一)

    前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modeling SDK进行领域特定语言(DSL)的开发,包括两个部分的内容.在第一部分中,将对 ...

  8. 在Visual Studio 2012中使用VMSDK开发领域特定语言1

    在Visual Studio 2012中使用VMSDK开发领域特定语言(一)   前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modelin ...

  9. 翻译:打造基于Sublime Text 3的全能python开发环境

    原文地址:https://realpython.com/blog/python/setting-up-sublime-text-3-for-full-stack-python-development/ ...

随机推荐

  1. 问题解决 —— Http Status 500

    在完成JavaWeb项目的过程中经常会出现这种错误 500:指的是服务器内部错误 通常遇到这种情况,我会去看控制台的信息,那里肯定会有提示,空指针(值没有传过去),或者java.sql.SQLExce ...

  2. 网易2016研发project师编程题

    http://www.nowcoder.com/test/970447/summary [编程题] 小易的升级之路 小易常常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a ...

  3. unintest基础1

    import unittest class Testfunc(unittest.TestCase): def testfunc(self): print('testfunc1') def testfu ...

  4. iOS学习笔记(二)——Hello iOS

    前面写了iOS开发环境搭建,只简单提了一下安装Xcode,这里再补充一下,点击下载Xcode的dmp文件,稍等片刻会有图一(拖拽Xcode至Applications)的提示,拖拽至Applicatio ...

  5. [Spring Data Repositories]学习笔记--使用现有的repository

    以下内容是在学习Spring-Data-mongoDB中的Spring Data Repositories时做的一些笔记.备忘! 感觉学习还是看官方的资料比较透彻一些. Spring Data Rep ...

  6. C++STL容器(lower_bound,upper_bound)

    C++STL容器中有三种二分查找函数,这里分享其中的两个 这两个函数其实都可以理解为不破坏数组次序的前期下能将目标元素插入到数组的第几个位置,不过在细节上两个函数有所差异 int d[6]={0,2, ...

  7. 网络摄像机进行互联网视频直播录像方案的选择,EasyNVS or EasyCloud or EasyGBS?

    背景需求 互联网视频直播越来越成为当前大势:直播的需求往往都伴随在录像的需求,对于录像,不同的场景又有不同的方案选择: 本篇博客将会介绍对应的几种录像方案,可以帮助有互联网录像需求的用户进行对应的录像 ...

  8. if you have content fetched asynchronously on pages where SEO is important, SSR might be necessary

    if you have content fetched asynchronously on pages where SEO is important, SSR might be necessary

  9. 在Tomcat配置JNDI数据源的三种方式

    最近使用到了在tomcat下配置数据源的内容,在这里转载一篇文章记录下 转载自: http://blog.csdn.net/dyllove98/article/details/7706218 在我过去 ...

  10. MySQL复制(二):二进制日志、二进制日志的结构和内容

    通常只有即将执行完毕的语句才会写入到二进制日志中.但是一些特殊情况:语句附加的信息或直接代替语句被写入. 二进制日志记录的内容 作用:记录数据库中表的更变,用于复制和PITP(即时恢复) 基于语句SB ...