之前在 windows 平台下做过一点点 PHP ,用的是一键部署的 PHP 环境,根本不用担心这些基本的拓展。
现在在 Mac 下用 Nginx + PHP5.6-fpm 部署,从头摸索。 PHP 网页已经能运行起来了。但是在php.ini
添加上需要用到的拓展就蒙了,提示在我的 PHP 安装目录下找不到相应的拓展。但是我通过 brew 去搜索也只能找到少部分的拓展,求老司机带带路。
我在 PHP.ini 添加了这一行
extension=php_mysql.so
运行之后的错误提示
<b>Warning</b>: PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php56/5.6.22/lib/php/extensions/debug-non-zts-20131226/php_mysql.so' - dlopen(/usr/local/Cellar/php56/5.6.22/lib/php/extensions/debug-non-zts-20131226/php_mysql.so, 9): image not found in <b>Unknown</b> on line <b>0</b><br />
1
skydiver 2016-06-09 16:41:56 +08:00 1
你得先安装了扩展,才能有这个文件,在 ini 里启用才有用。
|
2
skydiver 2016-06-09 16:42:32 +08:00
而且 php56 里已经废掉 mysql 扩展了,现在只有 mysqli 扩展和 pdo 扩展
|
3
b821025551b 2016-06-09 16:47:55 +08:00 1
1 :下载 php5.6 源码包, make&&make install 想要的插件;
2 :编辑成功的插件拷贝到一个目录;建议 /usr/local/Cellar/php56/5.6.22/lib/php/extensions/; 3 : php.ini 添加。 @skydiver mysql 扩展是 php7 开始废掉的。 |
4
tagtag 2016-06-09 16:49:02 +08:00 1
unix 没接触过, linux 下是通过编译 php 的时候通过参数控制扩展的,可以 google 一下 php 的 configure 参数,对于已编译完的,需要的扩展需要通过 phpize 生成 so 文件,具体请 google phpize 安装扩展,教程太多了
|
5
toono OP |
6
b821025551b 2016-06-09 16:58:05 +08:00
|
7
skydiver 2016-06-09 17:02:43 +08:00
@b821025551b composer 没法管理插件吧,只能管理包
|
8
skydiver 2016-06-09 17:04:53 +08:00
|
9
skydiver 2016-06-09 17:06:53 +08:00
@toono 如果用 homebrew 的话,安装扩展也挺方便的,比如直接 brew install php56-xdebug 就可以安装 xdebug 扩展了,而且帮你把 ini 也改了,自动生效
|
10
Zzzzzzzzz 2016-06-09 17:07:55 +08:00 1
pear 管理 php 写的类库, 历史上没什么人用, 大部分是 php4 时期的, 官方有个 pear2.php.net 针对 php5 的, 但是依旧没什么人用。 近年社区更倾向于 composer.
pecl 管理 c 写的 php 扩展. 有些发行版把 pecl 打包进了 php-pear 的包里. |
11
b821025551b 2016-06-09 17:41:10 +08:00
@skydiver 人家都说了, 5.5 是 deprecated ,会报 E_DEPRECATED ,但是非要用可以么?当然可以。而 7 里是正式 removed ,想用?不行。
|
12
xi4oh4o 2016-06-09 17:41:40 +08:00
mac 用 brew install php70-redis
其他平台如果有 pecl pecl install redis 就可以 如果没有 pecl https://pecl.php.net/package/redis 下源码 进去 phpize ./configure && make && make install |
13
skydiver 2016-06-09 17:50:57 +08:00 via iPad
@b821025551b deprecated 的意思就是废弃,就是说新项目就不要用了,旧项目尽快迁移。
|
14
cxbig 2016-06-09 18:27:32 +08:00
看上去你的 php 是用 brew 装的,那么你都不用额外在 php.ini 加配置,直接用 brew 装对应组件就好。
|
15
cxbig 2016-06-09 18:34:54 +08:00 1
装额外的 php module ,比方说 xdebug :
brew info homebrew/php/php56-xdebug 你都不用再写 ini 文件加载该 module ,它安装的时候自动把相关 ini 文件放在 /usr/local/etc/php/5.6/conf.g/ 目录下了 另外如果你做了: brew link php56 可以用: php -v 查看版本 php -m 查看 module |
17
lotushzy 2016-06-09 21:20:56 +08:00 1
1 、 mac 下可以采用 MAMP 这个集成环境的
2 、 mac 下由于自带了 php 环境,但是缺少一些额外需要的扩展,如果 brew 安装能够并入默认的环境中(没尝试 homebrew 安装方式),自然是最好的。安装之后一定记得重启 php-fpm (重点)和 apache 3 、摒弃原有的 PHP 环境,采用 macports 安装,目前本人 mac 就采用这种方式,已经可以成功使用 |
18
kslr 2016-06-10 03:43:04 +08:00 via Android 1
在源码包里面编译插件是最快也是最合适的办法
|