UNIX 环境下怎么安装 PHP 拓展呢?例如很简单很普通的 php_mysql.so - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
toono
V2EX    PHP

UNIX 环境下怎么安装 PHP 拓展呢?例如很简单很普通的 php_mysql.so

  •  
  •   toono 2016-06-09 16:37:16 +08:00 4286 次点击
    这是一个创建于 3500 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前在 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 /> 
    18 条回复    2016-06-10 03:43:04 +08:00
    skydiver
        1
    skydiver  
       2016-06-09 16:41:56 +08:00   1
    你得先安装了扩展,才能有这个文件,在 ini 里启用才有用。
    skydiver
        2
    skydiver  
       2016-06-09 16:42:32 +08:00
    而且 php56 里已经废掉 mysql 扩展了,现在只有 mysqli 扩展和 pdo 扩展
    b821025551b
        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 开始废掉的。
    tagtag
        4
    tagtag  
       2016-06-09 16:49:02 +08:00   1
    unix 没接触过, linux 下是通过编译 php 的时候通过参数控制扩展的,可以 google 一下 php 的 configure 参数,对于已编译完的,需要的扩展需要通过 phpize 生成 so 文件,具体请 google phpize 安装扩展,教程太多了
    toono
        5
    toono  
    OP
       2016-06-09 16:50:18 +08:00
    @b821025551b 谢谢,不过感觉有点麻烦~总之用着先

    我在查资料的时候看到 pear 这个工具,是用来管理插件的吗?
    b821025551b
        6
    b821025551b  
       2016-06-09 16:58:05 +08:00
    @toono
    其实 mac 上 brew 已经很好用,基本插件都会有, brew options php56 ,实在搞不定再自己编译;
    pear 这个工具有些老了,现在更流行 composer 。
    skydiver
        7
    skydiver  
       2016-06-09 17:02:43 +08:00
    @b821025551b composer 没法管理插件吧,只能管理包
    skydiver
        8
    skydiver  
       2016-06-09 17:04:53 +08:00
    skydiver
        9
    skydiver  
       2016-06-09 17:06:53 +08:00
    @toono 如果用 homebrew 的话,安装扩展也挺方便的,比如直接 brew install php56-xdebug 就可以安装 xdebug 扩展了,而且帮你把 ini 也改了,自动生效
    Zzzzzzzzz
        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 的包里.
    b821025551b
        11
    b821025551b  
       2016-06-09 17:41:10 +08:00
    @skydiver 人家都说了, 5.5 是 deprecated ,会报 E_DEPRECATED ,但是非要用可以么?当然可以。而 7 里是正式 removed ,想用?不行。
    xi4oh4o
        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
    skydiver
        13
    skydiver  
      2016-06-09 17:50:57 +08:00 via iPad
    @b821025551b deprecated 的意思就是废弃,就是说新项目就不要用了,旧项目尽快迁移。
    cxbig
        14
    cxbig  
       2016-06-09 18:27:32 +08:00
    看上去你的 php 是用 brew 装的,那么你都不用额外在 php.ini 加配置,直接用 brew 装对应组件就好。
    cxbig
        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
    toono
        16
    toono  
    OP
       2016-06-09 18:49:58 +08:00
    @cxbig 嗯嗯,谢谢。然而一切来得太 匆匆,我不小心 rm 了我的个人目录,现在有点万念俱灰。手动哭
    lotushzy
        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 就采用这种方式,已经可以成功使用
    kslr
        18
    kslr  
       2016-06-10 03:43:04 +08:00 via Android   1
    在源码包里面编译插件是最快也是最合适的办法
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana &nbp;   3548 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 04:28 PVG 12:28 LAX 20:28 JFK 23:28
    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