PHP 7下安装Swoole和Yar、Yaf

安装步骤

1.wget -c https://github.com/swoole/swoole-src/archive/v2.0.8.tar.gz  百度盘链接:https://pan.baidu.com/s/1xqrIBq_xerG7tCMgttKnNw 密码:j4hs

2.tar -zxvf v2.0.8.tar.gz//解压缩 然后cd进入压缩后目录

3.这个时候需要使用phpize生成编译文件(在这里附上http://www.cnblogs.com/hubing/p/4941692.html对phpize的解释 已经很明了了){

phpize的作用可以这样理解:侦测环境(phpize工具是在php安装目录下,基于这点phpize对应了当时的php环境,所以是要根据该php的配置情况生成对应的configure文件),建立一个configure文件。必须在一个目录下去运行phpize。那么phpize就知道你的的环境是哪个目录,并且configure文件建立在该目录下。

}

此时的我保错如下:Can't find PHP headers in /usr/include/php The php-devel package is required for use of this command.

解决方法:yum install php70w-devel

4.执行phpize  /usr/bin/phpize(记得要在swoole扩展目录下执行)

5.执行 ./configure

6.然后就是 make && make install 一起走完

7.最后要修改下php.ini  添加extension=swoole.so

8.记得重启服务

 

OK ! 此时执行php -m 可以看到多了个swoole就说明成功了

笔者开发坏境:CentOS7,PHP 7.0.16

安装PECL

//php版本 > 7
$ wget http://pear.php.net/go-pear.phar
$ php go-pear.phar

//php版本 < 7
$ yum install php-pear
//否则会报错PHP Parse error:  syntax error, unexpected //'new' (T_NEW) in /usr/share/pear/PEAR/Frontend.php on //line 91
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

安装swoole

$ sudo pecl  install swoole

//报错如下
//Warning: Invalid argument supplied for foreach() in //Command.php on line 249

vi `which pecl`

//找到最后一行
exec $PHP -C -n -q $INCARG -d date.timezone=UTC -d output_buffering=1 -d variables_order=EGPCS -d safe_mode=0 -d register_argc_argv="On" $INCDIR/peclcmd.php "$@"

去掉 -n 标示

//报错如下
//running: phpize
//Can't find PHP headers in /usr/include/php

安装 PHP devel

成功!
//Build process completed successfully
//Installing '/usr/lib64/php/modules/swoole.so'
//install ok: channel://pecl.php.net/swoole-1.9.8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

配置 php.ini

$ php -i | grep php.ini
//修改或者添加
 extension=swoole.so
  • 1
  • 2
  • 3

安装 yar

$ sudo ./pecl install msgpack

//pecl/yar requires PHP (version >= 5.2.0, version <= 5.6.99), installed version is 7.0.16
//注意PHP7,要使用yar-2.0.2
$ sudo ./pecl install yar-2.0.2 //注意yar-2.0.2版本

//添加,json.so 要放到前面。否则会报
//PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/yar.so' - /usr/lib64/php/modules/yar.so: undefined symbol: php_json_decode_ex in Unknown on line 0

extension=json.so //放前面
extension=swoole.so
extension=msgpack.so
extension=yar.so

其他问题!!!
//报错
//perl: warning: Setting locale failed.
//perl: warning: Please check that your locale //settings:
//   LANGUAGE = (unset),
//    LC_ALL = (unset),
 //   LANG = "en_US.UTF-8"

$ localedef -v -c -i en_US -f UTF-8 en_US.UTF-8

//报错
//checking for cURL in default path... not found
//configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/

$ sudo yum -y install curl-devel
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

安装Yaf

$ sudo ./pecl install yaf
//更新php.ini
extension=yaf.so
//重启服务
$ sudo systemctl restart  php-fpm.service
//安装脚手架
$ git clone http://pecl.php.net/package/yaf
$ cd php-yaf/tools/cg
$ php yaf-cg app
//配置 项目目录指向 app/index.php
//访问配置host
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

nginx配置

server {
  listen ****;
  server_name  domain.com;
  root   document_root;
  index  index.php index.html index.htm;

  if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php/$1 last;
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

Enjoy it!

yar

swoole

msgpack

这里写图片描述

posted on 2018-06-04 10:23  caigan  阅读(1453)  评论(0编辑  收藏  举报