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

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

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

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