V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
waitmoonman
V2EX  ›  PHP

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

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

    初学者学习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   ·   实用小工具   ·   2778 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:53 · PVG 20:53 · LAX 04:53 · JFK 07:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.