PHP 一键安装扩展的程序-(Windows 系统) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
waitmoonman
V2EX    PHP

PHP 一键安装扩展的程序-(Windows 系统)

  •  
  •   waitmoonman 2017-10-31 09:30:07 +08:00 3311 次点击
    这是一个创建于 2907 天前的主题,其中的信息可能已经有所发展或是发生改变。

    初学者学习PHP, 看教学视频的时候, 常常会有需要开启扩展, 比如openssl, curl等等,这些直接去修改php.ini文件便可,有一些例如redis,memcache则需要去找对应PHP, NTS, VC, WIN版本,虽然对老手来说,这些没什么问题,但是新手很容易受到这些难题。

    所以,开发了一个一键安装 PHP 扩展程序包。 主要原理是:

    +--------------+ +----------------+ +------------+ | open service | php install redis | down redis.dll | php index | show | | lamp/lnmp |------------------> | move redis.dll | ---------> | extensions | | environment | | update php.ini | | list | +--------------+ +----------------+ +------------+ 

    redis_extendsion 扩展类分为两种,一种是需要下载dll文件的,另一种是直接开启扩展就可以的。 在Extendtions目录下的有每一个需要下载的扩展类,需要下载的扩展都有一个$mapUrl数组成员。里面装着键值对,键装的是环境版本,值是下载扩展包的URL

    1. php install redis会去先获取当前安装环境的版本,拼接出键以获取 URL。
    2. 得到 URL 后,去请求 URL,得到一个压缩文件。
    3. 解压文件,得到dll文件,复制到PHP的扩展目录。
    4. 打开php.ini文件中的扩展项目

    使用方法也是很简单:

    // 安装 redis 扩展 php install redis // 安装 memcache php install memcache // 查看已开启的扩展,开启扩展之后,请重启服务器 php index // 回滚 php.ini 配置文件 php install rollback 

    更多的扩展请查看github 的介绍


    如果有大神有自己写的扩展,可以回复给出 URL 和扩展名字,我添加到程序中。方便大家使用 喜欢的朋友点个赞,给个星呗!!!~_~. github 仓库地址

    20 条回复    2017-11-10 19:14:09 +08:00
    batnss
        1
    batnss  
       2017-10-31 10:00:07 +08:00
    不错 虽然现在不需要
    lengyihan
        2
    lengyihan  
       2017-10-31 10:01:06 +08:00 via Android
    学习的话,用 phpstudy 就行了。学会了就熟练了。
    silencefent
        3
    silencefent  
       2017-10-31 10:09:10 +08:00
    keller
        4
    keller  
       2017-10-31 10:34:52 +08:00
    不错 方便安装
    waitmoonman
        5
    waitmoonman  
    OP
       2017-10-31 12:03:00 +08:00
    @batnss 谢谢!
    waitmoonman
        6
    waitmoonman  
    OP
       2017-10-31 12:03:22 +08:00
    @lengyihan 是的,phpstudy 的确很强大。
    waitmoonman
        7
    waitmoonman  
    OP
       2017-10-31 12:03:44 +08:00
    @silencefent 可以具体给一下报错信息吗?
    waitmoonman
        8
    waitmoonman  
    OP
       2017-10-31 12:03:55 +08:00
    @keller 谢谢!~~
    waitmoonman
        9
    waitmoonman  
    OP
       2017-10-31 12:05:10 +08:00
    @silencefent 刚开始用 v2, 不是很熟悉, 以为下面的链接是广告, 已看到。 马上改 Bug
    waitmoonman
        10
    waitmoonman  
    OP
       2017-10-31 12:27:18 +08:00
    @silencefent
    谢谢你的提醒。已修改这个 bug
    https://www.picb.cc/image/78pTu
    silencefent
        11
    silencefent  
       2017-11-07 09:52:20 +08:00
    ![]( )
    ![]( )
    so said,powershell 和 cmd 都是不行的,php7 x64 版本官网解压的
    silencefent
        12
    silencefent  
       2017-11-07 09:52:45 +08:00
    ![]( )
    silencefent
        13
    silencefent  
       2017-11-07 10:24:10 +08:00
    ~\easy-extends\Kernel\App\Util\Config.php
    38 行 $this->extPath = ini_get('extension_dir');
    windows 下,新下载的 php.ini 会默认 extension_dir 在 C 盘根目录
    需要在 ini 里取消注释这一行或者修改到当前路径下 ext 文件夹,才能进入到正确的路径下安装扩展

    还有,pdo_pgssql 现在用的到的地方也多起来了
    安装方式能不能更进一步
    php index 以后,打印一个列表分成 all_most popular 等等几组,输入扩展前的序号安装
    namaple
        14
    namaple  
       2017-11-09 10:18:40 +08:00
    如果 pecl 官网上都没有的 win 下的 dll 扩展,是否能解决?
    namaple
        15
    namaple  
       2017-11-09 10:29:30 +08:00
    waitmoonman
        16
    waitmoonman  
    OP
       2017-11-10 17:52:21 +08:00
    @silencefent 这几天在做毕业设计没看消息提醒, 这个因为 openssl.dll 是和 PHP 官方一起下载下来的。所以只是修改了配置文件,并没有去下载 .dll 文件
    waitmoonman
        17
    waitmoonman  
    OP
       2017-11-10 19:04:23 +08:00
    @silencefent 已修改获取配置之前先判断是否存在 php.ini 文件, 我没找到有关于能提前获取`php`目录的方法? 是否存在?
    waitmoonman
        18
    waitmoonman  
    OP
       2017-11-10 19:05:20 +08:00
    @silencefent 这是因为刚下载的 php 并没有`php.ini`文件,现在程序中已做了提示。
    waitmoonman
        19
    waitmoonman  
    OP
       2017-11-10 19:06:34 +08:00
    @namaple 你是指什么扩展,可否具体说明?如果有链接便可以写入到扩展`map`中的属性中。
    waitmoonman
        20
    waitmoonman  
    OP
       2017-11-10 19:14:09 +08:00
    @silencefent pdo_pgssql 这个扩展可能要等一段时间,现在忙找工作, 如果可以, 你看你可否提一个 PR ?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4634 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 09:59 PVG 17:59 LAX 02:59 JFK 05:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86