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

2017-10-31 09:30:07 +08:00
 waitmoonman

初学者学习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    |
+--------------+                    +----------------+            +------------+

扩展类分为两种,一种是需要下载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 仓库地址

2894 次点击
所在节点    PHP
20 条回复
batnss
2017-10-31 10:00:07 +08:00
不错 虽然现在不需要
lengyihan
2017-10-31 10:01:06 +08:00
学习的话,用 phpstudy 就行了。学会了就熟练了。
silencefent
2017-10-31 10:09:10 +08:00
keller
2017-10-31 10:34:52 +08:00
不错 方便安装
waitmoonman
2017-10-31 12:03:00 +08:00
@batnss 谢谢!
waitmoonman
2017-10-31 12:03:22 +08:00
@lengyihan 是的,phpstudy 的确很强大。
waitmoonman
2017-10-31 12:03:44 +08:00
@silencefent 可以具体给一下报错信息吗?
waitmoonman
2017-10-31 12:03:55 +08:00
@keller 谢谢!~~
waitmoonman
2017-10-31 12:05:10 +08:00
@silencefent 刚开始用 v2, 不是很熟悉, 以为下面的链接是广告, 已看到。 马上改 Bug
waitmoonman
2017-10-31 12:27:18 +08:00
@silencefent
谢谢你的提醒。已修改这个 bug
https://www.picb.cc/image/78pTu
silencefent
2017-11-07 09:52:20 +08:00
![]( )
![]( )
so said,powershell 和 cmd 都是不行的,php7 x64 版本官网解压的
silencefent
2017-11-07 09:52:45 +08:00
![]( )
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
2017-11-09 10:18:40 +08:00
如果 pecl 官网上都没有的 win 下的 dll 扩展,是否能解决?
namaple
2017-11-09 10:29:30 +08:00
waitmoonman
2017-11-10 17:52:21 +08:00
@silencefent 这几天在做毕业设计没看消息提醒, 这个因为 openssl.dll 是和 PHP 官方一起下载下来的。所以只是修改了配置文件,并没有去下载 .dll 文件
waitmoonman
2017-11-10 19:04:23 +08:00
@silencefent 已修改获取配置之前先判断是否存在 php.ini 文件, 我没找到有关于能提前获取`php`目录的方法? 是否存在?
waitmoonman
2017-11-10 19:05:20 +08:00
@silencefent 这是因为刚下载的 php 并没有`php.ini`文件,现在程序中已做了提示。
waitmoonman
2017-11-10 19:06:34 +08:00
@namaple 你是指什么扩展,可否具体说明?如果有链接便可以写入到扩展`map`中的属性中。
waitmoonman
2017-11-10 19:14:09 +08:00
@silencefent pdo_pgssql 这个扩展可能要等一段时间,现在忙找工作, 如果可以, 你看你可否提一个 PR ?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/402137

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX