分类: IT小常识

  • windows下开发并编译PHP扩展(步骤说明)

    开发PHP扩展对于普通程序员来讲可能一直是一件很神秘的工作,其实,只要你对C语言熟悉,了解了开发PHP扩展的步骤和规则,开发PHP扩展也是一件很普通的工作。
    现在就简单说一在WINDOWS下开发PHP扩展的步骤:
    首先需要准备的软件有:
    cygwin 安装路径e:\app\cygwin
    visual studio C++ 6.0,
    修改环境变量,把已经安装好的PHP路径设置为环境变量。在这里,假设我的PHP安装目录是:e:\app\php5.2.5,那么我把WINDOWS环境变量后面加上这个安装目录。方便一会儿使用php.exe。
    PHP源代码,这里假设为e:\c_source_code\php-5.2.5

    1、修改文件 “PHP源文件目录/ext/ext_skel_win32.php”,在这里就是:E:\c_source_code\php-5.2.5\ext,其中主要是修改其中的cygwin路径。$cygwin_path = ‘e:\app\cygwin\bin’;
    把$cygwin_path修改为你实际安装cygwin的路径。
    2、在源代码ext目录也就是e:\c_source_code\php-5.2.5\ext下,执行 php ext_skel_win32.php –extname=<EXT_NAME>,此时会在ext目录下生成<EXT_NAME>目录,这个目录就是我们将要进行PHP扩展开发的框架。比如你运行php.exe ext_skel_win32.php –extname=foo,会在ext目录下生成foo目录。
    3、将php-root\dev\php5ts.lib拷贝至 “ext/<EXT_NAME>”中。比如你要开发的PHP扩展名为foo,那么就需要把php-root\dev\php5ts.lib拷贝到PHP源文件目录\ext\foo中。
    4、修改foo.c内容,编写我们需要的C代码。
    5、进入<EXT_NAME>目录,打开<EXT_NAME>.dsp。
    设置VC6工程,
    设置菜单“组建”->“移除工程配置”,选中“Win 32 Release_TS”,
    设置菜单“工程”,选中“Win 32 Release_TS”
    打开Tab“连接”,设置“输出文件名”中的目录,
    [可选]打开Tab“C/C++”,增加“预处理器定义”“,COMPILE_DL_<EXT_NAME>”(注意全大写,默认加入的),取消预定义“LIBZEND_EXPORTS”(否则不可引入zend函数)。
    6、设置好以后,进行编译,会生成一个dll文件,文件名是<EXT_NAME>.dll,比如在我们的例子中就为foo.dll
    把foo.dll拷到e:\app\ext目录下,并在php.ini里加上一行extension=foo.dll,重启一下apache,查看phpinfo();,会发现我们的PHP扩展foo()已经加载进来,已经可以使用这个foo扩展了。

    ——————上面是转载,下面是我的话—————-

    打算编译一下php5下面的php_yaz.dll,不知道它是否能够拯救不断报“Unable to create file mapping”的服务器

  • 用DM500S连接电脑接收收卫视节目

    screenshot

    随着互联网宽带的普及,卫星电视发烧友圈子里面有宽带网络的烧友不在少数,稍早的用上430+A2,A5。有条件的用上DM500S系列的卫星接收机,更牛的用上了原版DM600等等。

    DM500S卫星接收机功能强大,Seca、Viaccess、Irdeto、Viasat-NDS、Conax、Nargra1、Nargra2等等加强系统,都能配合正版解码,输出普通音视频信号和色差信号等通过电视进行收看。它特别适合有足够精力的烧友去发掘和使用。可在电脑上利用网线实现了收看 DM500S解码的图像和声音信号,还可以用鼠标换台进行观看。

    在网络上找到了几种电脑播放DM音视频数据流的软件。其中使用最多,最为方便的是BitControl Digitaltv link v2.5版,由它配合Windows Media Player10.0版本,几乎是傻瓜式安装就可以完成。不用破解、注册等等,安装完软件后,打开DM500S简单设置就可以长时间观看精彩的节目了。

    安装:在电脑上打开安装文件夹会出现如下内容:安装好bcDreamBox.exe,bcm-peg2dec.exe。

    以下为使用Windows Media player10.的使用说明。在DM500S开机正常收看的情况下,可以打开电视用遥控器在DM500S接收机的系统设置网络查看里面的具体IP,也可以在电脑上用软件查出它的实际IP地址,或者直接在IE栏试着输入IP地址去找出来,因为普通家用ADSL的内网本来就没有几个设置,DM500S的动态实际IP地址最多会在192.168.1.100-107之间(以笔者的DM500S为例)。找到IP地址后,把Windows Media player10.打开在url中输入bcmsdb://192.168.1.1.01(以DM500S的实际地址为准),等待几秒钟后图像和声音就会在电脑里面播放出来。(也可以在这里试着输入DM的IP地址,但没有知道DM具体地址的图像出来得迅速)。如果是其他版本的安装则相对烦琐,播放命令也较为复杂。

    至于换台则需要进入DM500S的管理界面了。在电脑的IE栏输入DM500S的实际地址后就会出现英文的管理内容。需要指出的是笔者采用的是DM500S中文版式img(pli-helenite-DM500-chinese-20070709-3223.zip)。

    双击右边的实际频道会看到Chan:即相应的频道名称。选择BOX control单击screen-shot会出现一个带有图像内容的IP窗口,点击屏幕快照后出现一副实时的DM播放内容的图片。用它可以监看DM500S是否正常播放。

    用电脑软件配合Windows Media player10.等解码播放DM卫星接收机音视频节目,前提是DM500S能够正常工作且必须要通过网线进行传输数据。在图像上会有延迟,有可能还会出现音视频不同步的现象,但只要把Windows Media player10.关闭后再重启就能够解决了。换台后,要点击Windows Media player10.的停止键再播放,否则会出现不能正常工作的现象。

     补充:换台时最好先关掉Windows Media player10,等换好了再打开。

  • 挡不住的诱惑 WMP看国家地理直播

    NationalGeography

            DM500S三星套真不错,只是阳台的遮阳棚是层铁皮,挡了一部分天线,146收不好,134和138两个主力星很棒。用Windows Media Player看国际地理,很爽吧?

  • IIS7重装后运行aspx出现500.21错误

    由于装php几遍没装好(后来用的是微软官方的web平台安装工具),重装了iis7,结果aspx也跑不了了,网上查了查,觉得应该是framework的问题,那就重新注册一下吧。

    从cmd找相应版本的framework目录下面运行aspnet_regiis -i,等它运行完就好了。

    aspnet_regiis

    参考资料:http://msdn.microsoft.com/zh-cn/library/k6h9cz8h(VS.80).aspx

  • 看到Google的DNS留念照

    ping

    记住:8.8.8.8   8.8.4.4,武汉长宽

  • Server2008+IIS7+PHP5.2.11+MySQL5.1+ZendOptimizer3.3.3

    首先说一下远程装Server2008,服务器拿回去处理了一下硬盘坏道,换成了raid1,那边老板直接给装了个2003,送回了机房想了几番还是觉得2008爽些,于是决定远程安装。

    把镜像传上去,按了个虚拟光驱virtualclonedrive,远程上去开始安装,开始是复制文件,结果到了重启的时候卡壳了,因为正在连接不能自动重启,所以无法进入后面的安装程序。所以只好等待机房的技术支持用他的QQ远程操作KVM,这样连电脑的重启界面都能看到,那当然是没问题了。一路装下去,在选分区的时候,给2008留的是40G,绝对够用了。因为用了raid1,记得加载上相应的驱动。

    如此一路装完,别的驱动都自动有了,省心啊,让技术支持的小伙子赞叹不已。接下来该注册了,因为服务器是组装机,又不好改bios,干脆到淘宝上买个学生号,花了9.5元。

    然后就是标题剩下的那几个,详细的不多说。PMZ用的都是exe安装版,有一点反复,就是php还是不要用5.3的,zendo不支持,装ucenter也会报错。

    有朋友说用微软的Web平台安装工具装php也挺不错的,来试试吧http://www.microsoft.com/web/

  • 服务器迁移后wordpress无法上传图片

    1. 服务器换了server2008,偷偷的说,还是正版的呢,当然了,用的是学生号

    2. 别的站点都还好,需要写入的直接给iusr写入权限,据说这是IIS7的伟大改进,以后拷到别的服务器上都不用再改

    3. 只是我的wordpress却不能上传,连everyone都试过了,还是不行

    4. 进入WP后台,设置-杂项,有个上传目录,竟然还是原来服务器上的绝对路径,我倒,改成默认的“wp-content/uploads”就好啦

    5. 谁知道哪里有500首以上的儿歌吗?

  • .net Entities添加实体并获取其自增长ID

    TongnianEntities _entities = new TongnianModel.TongnianEntities();

    music_Song song = new music_Song();
    song.Title = TextBoxTitle.Text.Trim();
    _entities.AddToSongSet(song);
    _entities.SaveChanges();

    Response.Redirect(“AddFileToSong.aspx?SongId=” + song.SongId.ToString());

    原来就是这么简单。

  • CuteEditor6.0中UploadSingleFile的用法

    前端代码:

    <%@ Register Assembly=”CuteEditor” Namespace=”CuteEditor” TagPrefix=”CE” %>

    <CE:UploadSingleFile runat=”server” ID=”UploadSingleFileMusic”
                    onfileuploaded=”UploadSingleFileMusic_FileUploaded” InsertText=”请选择一个音频文件”
                    ItemTextTemplate=”{0} {1} ({2}) {3}”
                                                ProgressTextTemplate=”%F%..%P% %SEND%/%SIZE%,%KBPS%,%T% seconds remain.”
                                                CancelText=”取消上传”>
    <ProgressPanelStyle Direction=”NotSet” HorizontalAlign=”NotSet” ScrollBars=”None” Wrap=”True”></ProgressPanelStyle>
                                            <ValidateOption Extensions=”wav,mp3,rm,data,swf,flv” />
                                            </CE:UploadSingleFile>

    CodeBehind代码:

    protected void UploadSingleFileMusic_FileUploaded(object sender, CuteEditor.UploaderEventArgs args)
        {        
                    string s = Server.MapPath(“upload”);
                   args.CopyTo(s+”\\”+”newname”);
        }

    说明:

    1.该控件上传时先放入临时文件夹,调试时是放到了计算机用户下的temp文件夹,因该文件夹权限原因moveto失败,未测试iis下该控件设置的Temp是否生效。

    2. 上传文件的其他属性请查看args获取,如args.GetTempFilePath()等

    3. 用CopyTo时可在newname后再加上文件后缀

  • Google Picasa相册访问方法(8.27)

    某单位于2009年8月27日17:00将picasa旧IP(203.208.33.100)屏蔽

    解决方法如下:

    打开我的电脑或者计算机,输入:C:\Windows\System32\drivers\etc

    找到hosts文件,用记事本打开。

    添加: (更多…)