基于Visual c++ 2012的php扩展开发 - 环境搭建
软件准备
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扩展开发 - 环境搭建的更多相关文章
- 基于Visual c++ 2012的php扩展开发 - HelloWord!
1.cmd进入命令行模式,并进入php-5.6.20-src/ext源代码的ext目录下输入命令php ext_skel_win32.php --extname=HelloWord,执行结果如下图: ...
- 【Xamarin】Visual Studio 2013 Xamarin for Android开发环境搭建与配置&Genymotion
Xamarin Xamarin是基于Mono的平台. Xamarin旨在让开发者可以用C#编写iOS, Android, Mac应用程序,也就是跨平台移动开发. 下载资源 1,进入Xamarin官方网 ...
- php扩展开发环境搭建
首先要安装编译php时要的几个扩展库 (1)libxml2,若无php安装一些解析xml的扩展时会提示xml2-config not found sudo apt-get install libxml ...
- 基于AM3352/AM3354/AM3358/AM3359的Linux 开发环境搭建(上)
遇到不少人新手小白问,前辈如何搭建一个优良的Linux 开发环境?之前一直都是在用win开发,现在想要尝试用Linux做开发等等一系列的问题.开源一直是给电子行业工作者提供了一种向技术更深处进发的机遇 ...
- 基于Eclipse+Cordova的Android Hybrid应用开发环境搭建
环境说明 操作系统:Windows 7 64位 Eclipse版本:4.5.2 Release(eclipse-jee-mars-2) JDK版本:1.8 搭建步骤 1.从http://www.ecl ...
- 在Visual Studio 2012中使用VMSDK开发领域特定语言(二)
本文为<在Visual Studio 2012中使用VMSDK开发领域特定语言>专题文章的第二部分,在这部分内容中,将以实际应用为例,介绍开发DSL的主要步骤,包括设计.定制.调试.发布以 ...
- 在Visual Studio 2012中使用VMSDK开发领域特定语言(一)
前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modeling SDK进行领域特定语言(DSL)的开发,包括两个部分的内容.在第一部分中,将对 ...
- 在Visual Studio 2012中使用VMSDK开发领域特定语言1
在Visual Studio 2012中使用VMSDK开发领域特定语言(一) 前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modelin ...
- 翻译:打造基于Sublime Text 3的全能python开发环境
原文地址:https://realpython.com/blog/python/setting-up-sublime-text-3-for-full-stack-python-development/ ...
随机推荐
- 游戏开发之coco2dx ---简化提炼tolua
http://www.cnblogs.com/gl5773477/p/4234613.html
- windows下用py2exe打包脚本为可双击运行程序
文件夹结构: ├── readme.txt ├── settings.py #程序参数 ├── settings.pyc ├── setup.py #安装文件 ├── spider.ico ...
- 头一次玩博客,记录下我的java之路吧
今天写了简单的后台管理系统,发现光靠脑子记住知识真的很难,笔记本不好翻,之前写的代码更难找,所以写写博客,记录一些知识,为了以后上班用得到.
- Android自动化测试工具之—UiAutomator环境配置
1.相关软件下载: 1)JDK: 1.6及其以上版本 2)Eclipse 3)Android SDK 其中Eclipse和Android SDK已经被Google打包成ADT(Android Deve ...
- Linux 进程间通信(一)(经典IPC:消息队列、信号量、共享存储)
有3种称作XSI IPC的IPC:消息队列.信号量.共享存储.这种类型的IPC有如下共同的特性. 每个内核中的IPC都用一个非负整数标志.标识符是IPC对象的内部名称,为了使多个合作进程能够在同一IP ...
- 贝叶斯网(2)Netica:从数据中学习CPT
1. 离散节点 在官方Tutorial中是有详细的案例的,就是B篇3.3节,你可以动手把天气预报这个实现一下: http://www.norsys.com/tutorials/netica/secB/ ...
- knockoutJs在移动设备上有时无法更新控件值
最近在用cordova(phonegap)写一个移动app,表单比较复杂,用了knockoutJs作为前端的MVVM框架进行数据绑定. 但是发现有时候(其实是每次)如果最后在input中编辑一个值,然 ...
- 小程序html 显示 图片处理
let arr = [] for (const v of r.data.data ){ // v.content = v.content.replace(/<img/g ,' <image ...
- margin 依附与可见的内容,不能为margin而写margin
margin 依附于可见的内容,不能为margin而写margin <!DOCTYPE html><html><head><style> p{marg ...
- nginx配置文件解析工具
最近花了一些时间自己实现解析nginx配置文件的功能,这里有个工具先记下以后用. https://github.com/nginxinc/crossplane