Centos 6.* 安装 Swoole 4.1.1

升级gcc版本为:7.2.0

https://blog.csdn.net/guo_lei_lamant/article/details/79591986 centos7升级GCC4.8.5到GCC4.9.0

https://blog.csdn.net/lanwilliam/article/details/77893033 CentOS 6通过yum安装gcc 4.9 5.2等高版本gcc [此处好使]

https://blog.csdn.net/chenjia6605/article/details/82757568 CentOS7 编译安装GCC 8.2.0

原因:安装swoole扩展时出现---> error "GCC 4.8 or later required

// 一下方式可以忽略,实验失败

1.wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.gz && tar -zxvf gcc-7.2.0.tar.gz && cd gcc-7.2.0

2../contrib/download_prerequisites

如果不成功可以手动下载依赖
yum install gmp-devel                              // 編譯依賴此庫  
yum install mpfr-devel                             // 編譯依賴此庫  
yum install libmpc-devel                         // 編譯依賴此庫  
当然以上库可以在ftp://gcc.gnu.org/pub/gcc/infrastructure/下载
下载isl-0.18.tar.bz2                                  // yum 没有这个库源码安装
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2
tar -jxvf isl-0.18.tar.bz2
cd isl-0.18 
./configure   
make  
make install


建立一个目录供编译出的文件存放
mkdir gcc-build-7.3.0 && cd gcc-build-7.3.0

yum groupinstall "Development Tools"

yum -y install glibc-static libstdc++-static(这两个是必要的开发环境)

../configure --prefix=/usr/local/gcc7 --enable-languages=c,c++,go --disable-multilib // 指定gcc7安裝地址,指定所需安裝語言,不支持32位
make -j4 (-j4选项是make对多核处理器的优化,如果不成功请使用
make,相关优化选项可以移步至参考文献[2]。建议不要使用make -j来编译,虽然可以缩短编译时间,但极大可能会编译失败) 过程很慢

make install((安装需要root权限!))

查看版本

[root@local usr]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
Target: x86_64-pc-linux-gnu
Configured with: ../configure --prefix=/usr/local/gcc7 --enable-languages=c,c++,go --disable-multilib
Thread model: posix
gcc version 7.2.0 (GCC)

2、安装依赖包

isl-0.16.1.tar.bz2

gmp-6.1.0.tar.bz2

mpfr-3.1.4.tar.bz2

mpc-1.0.3.tar.bz2

依赖包下载地址:ftp://gcc.gnu.org/pub/gcc/infrastructure/

Swoole 4.1.1 安装

  1. 下载swoole源码

git clone https://gitee.com/swoole/swoole.git

2.编译

cd swoole && phpize ==> 生成configure 文件

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

--with-php-config 后面的地址,根据自己的环境,替换为正确的地址

出现:configure: error: C compiler cannot create executables

在这之前我做了export CFLAGS+=-g和 export CFLAGS+=-g3
这样的一系列操作,然后才开始执行 ./configure,结果就出现了上面的错误提示。而我记得之前也执行了 exprot CFLAGS=-g然后执行./configure 是没有问题的。很是奇怪,去网上搜了一下,说是CFLAGS影响了./configure的执行,然后使用 export CFLAGS= 来清除CFLAGS,重新赋值 export CFLAGS=-g,之后再执行./configure就没有问题了。

make && make install

[root@local swoole]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/
Installing header files:          /usr/local/php/include/php/
[root@local swoole]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/
opcache.a  opcache.so  redis.so  swoole.so

将 swoole.so 再php.ini中配置好,然后重启 php-fmp

php -m 查看列表是否已经有swoole

或者php --ri swoole 也可以直接这样用

安装 hireids 让 swoole 支持 异步redis

wget https://github.com/redis/hiredis/archive/v0.14.0.tar.gz && tar -zxvf v0.14.0.tar.gz && cd hiredis-0.14.0/ && make -j && make install && ldconfig

重新编译swoole

./configure --with-php-config=/usr/local/php/bin/php-config --enable-swoole-debug --enable-async-redis && make clean && make && make install

可能遇到的问题
php-m发现swoole或者消失的英文通过php --ri swoole没有显示async redis clientredis client

vi ~/.bash_profile
在最后一行添加

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

source ~/.bash_profile

重新编译安装swoole即可

测试脚本

class AysRedis
{
    const HOST = '127.0.0.1';
    const PORT = 6379;
    public $redis_client = null;

    function __construct()
    {
        $this->redis_client = new swoole_redis;
    }

    /**
     * 闭包里不好直接用变量,要用use
     * @return bool
     */
    public function execute($id, $username)
    {
        $this->redis_client->connect(self::HOST, self::PORT, function ($redis_client, $result) use ($id, $username) {
            if ($result === false) {
                var_dump($redis_client->connect_errno, $redis_client->connect_error);
                die;
            }
            var_dump('wawa');
            //设置值
            $redis_client->set('wawa', time(), function (swoole_redis $redis_client, $result){
                //设置是否成功的返回值
                var_dump($result);
            });
            //取值
            $redis_client->get('wawa', function (swoole_redis $redis_client, $result){
                var_dump($result);
            });
            //取所有值
            $redis_client->keys('*', function (swoole_redis $redis_client, $result){
                var_dump($result);
            });
            //模糊匹配KEY
            $redis_client->keys('*l*', function (swoole_redis $redis_client, $result){
                var_dump($result);
            });
            $redis_client->close();

        });
        return true;
    }

}

$ws = new AysRedis();
$result = $ws->execute(1, 'test');
print_r($result.PHP_EOL);
echo 'start:'.PHP_EOL;


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容