致命错误:ext/standard/php_smart_str.h:没有那个文件或目录


参考文章:https://blog.csdn.net/jartins/article/details/80371257


一、发生背景:

  安装php-redis扩展时,打开php官网下载扩展,选择了版本redis-2.2.5.tgz。

  下载路径是:https://pecl.php.net/get/redis-2.2.5.tgz。

  然后使用make编译时,报错:

...
...,致命错误:ext/standard/php_smart_str.h:没有那个文件或目录
...
编译中断。
make: *** [redis.lo] 错误 1

二、原因:

  在网上搜索后,得到的说法是:

    因为最新的 phpredis 分了几大分支,针对最新的PHP稳定发行版 php7 有专门为php7的分支,

    所以我们从github拉下phpredis 源码。


三、解决:

  (1)然后打开github,搜索phpredis。

    点击搜索结果的第一个:phpredis/phpredis(https://github.com/phpredis/phpredis)

    点击页面中的releases(https://github.com/phpredis/phpredis/releases)

    选择最新版本4.3.0(https://github.com/phpredis/phpredis/archive/4.3.0.tar.gz)

  (2)下载:

    wget https://github.com/phpredis/phpredis/archive/4.3.0.tar.gz

  (3)重命名

    (个人习惯:下载后文件叫4.3.0.tar.gz,只有版本没有名字,重命名一下,phpredis-4.3.0.tar.gz)

    mv 4.3.0.tar.gz phpredis-4.3.0.tar.gz

  (4)解压

    tar -zxvf phpredis-4.3.0.tar.gz

  (5)进入目录

    cd phpredis-4.3.0

  (6)使用phpize解压

    phpize

  (7)配置

    ./configure --with-php-config=/usr/local/php7/bin/php-config

  (8)编译

    make

  (9)安装

    make install

  安装结果:

  Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20180731/

  表示安装成功!