• PHP5.4 + VS2010 WIN8 x64写扩展环境搭建


    网上资料找了不少,这里留个随笔汇总一下,自己以后再搭建就不用再找资料了。

    WIN8 64位没有问题,应该WIN7的也可以,不做测试了。

    一、需求:

    1. PHP5.4环境(Apache\nginx\IIS随便,只要能运行PHP.EXE就行)

    2. VS2010(要有C++,看了好多写ASPX的程序员可能没装这个,注意下)

    二、准备工作:

    1. 进入下载页面:http://windows.php.net/downloads/php-sdk/

    下载deps-5.4-vc9-x86.7z

    注:有更新版本就下最新的吧

    2. 进入下载页面:http://php.net/downloads.php

    下载PHP源码,我下的是php-5.4.9-src.zip

    注:同上,按需下载

    3. 进入下载页面:http://sourceforge.net/projects/mingw/files/

    下载MinGW,要用到里面的SH,有Cygwin的就不用下载了,没有的话,下载安装也没多久,不知道下哪的话,进页面找到这个点击下载:mingw-get-inst-????????.exe(问号是日期),MinGW安装的时候因为需要,我选了编译器,不知道不选可不可以正常使用,注意下。装一下大概300多M,我20M的光纤,感觉安装时下载用了近10分钟左右,低速的朋友注意下。

    三、建工程文件夹

    G:\Workspace\phpdev,这是我的当前路径,改成你的工作路径吧。

    把deps-5.4-vc9-x86.7z解到G:\Workspace\phpdev里,里面多出三个文件夹:bin、script、share

    打开“系统>高级系统设置>环境变量>系统变量>path”,后面加上你的工作路径下的bin文件夹(要用到Bison.exe)、PHP文件夹、还有system32文件夹(要用到CScript.exe),如:

    G:\Workspace\phpdev\bin;D:\DEV\ServApp\PHP;c:\windows\system32;

    打开CMD命令行(管理员身份),定位至G:\Workspace\phpdev

    然后找到你的VS2010文件夹,找到里面的vc\vcvarsall.bat,不可能没有,仔细找找,真不行直接右上角搜索vcvarsall.bat,把全路径复制下来,路径带空格的前后加俩双引号,如:

    "D:\Program Files\ForWork\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"

    到刚刚打开的CMD中右键粘贴运行上面的BAT。

    然后继续,输入:

    bin\phpsdk_setvars.bat

    bin\phpsdk_buildtree.bat phpsrc

    如果报错,上面肯定没设置好。完成后,phpdev里多出一个phpsrc文件夹,把php-5.4.9-src.zip解压到phpsrc\vc9\x86\里面

    然后作个调整:

    phpsrc\vc9\x86\ext\ext_skel_win32.php,用编辑器打开,把里面的

    $cygwin_path = '改成你自己的CYGWIN或是MinGW路径';

    我的是这个:

    $cygwin_path = 'C:\MinGW\msys\1.0\bin';

    保存退出

    然后命令行里面输入:

    configure

    如果有出现cscript、bison不存在,检查你的环境变量system32有没有加上或是杀软给屏了,cl.exe不存在的话,vcvarsall.bat没运行,执行完没问题的话,继续输入

    configure --disable-all --enable-cli

    这一步产生了一堆信息不用管,因为main\config.w32.h等文件已经生成了,然后打开main\config.w32.h

    搜索PHP_COMPILER_ID,把值VC10换成VC9,保存。

    把命令行工作路径换到phpsrc\ext,继续执行

    php ext_skel_win32.php --extname=testext

    黄色部分改成你的EXTENSION名字,打开phpsrc\ext\php_testext,里面DSP看到了吧,打开、转换成VS2010工程,

    项目属性里面有以下改动:

    项目>属性>

      C/C++>高级>编译为:编译为 C 代码 (/TC)

      链接器>附加库目录,这里面加上你的PHP里面的DEV文件夹,我的是这个D:\DEV\ServApp\PHP\dev

    配置管理器里面,设置Release_TS为活动

    编译无问题生成的dll在phpsrc\Release_TS里面,这个dll可以复制到你的php环境的ext文件中,同时编辑你的php.ini,加上extension=php_testext.dll

    看PHPINFO的时候,应该有testext的一栏了,时间匆忙没写太细了,如果是写PHP扩展的话,这个搭建是绝对没问题了。

  • 相关阅读:
    python基础(5)
    python基础(4)
    python基础(3)
    python基础(2)
    第一个python程序(2)
    第一个python教程(1)
    【jQuery】
    【JavaScript】
    【练习】HTML+CSS
    【练习】Html
  • 原文地址:https://www.cnblogs.com/LastPropose/p/vs2010_php_extension.html
Copyright © 2020-2023  润新知