centos7x64搭建php,centos7.4 64位下swoole安装及配置

方法1:(自测安装失败)

pecl install swoole

方法2:【源码安装swoole】,自测安装成功

安装对异步redis的支持:

官方文档:https://wiki.swoole.com/wiki/page/p-redis.html

操作步骤:

wget https://github.com/redis/hiredis/archive/v0.13.3.tar.gz

tar -zxvf v0.13.3.tar.gz

cd hiredis-0.13.3/

[root@localhost hiredis-0.13.3]make -j

[root@localhost hiredis-0.13.3]sudo make install

[root@localhost hiredis-0.13.3]sudo ldconfig

安装需要的包:yum install glibc-headers

yum install gcc-c++

安装swoole:

www.swoole.com首页找到下载:

https://gitee.com/swoole/swoole/tree/v2.1.2

yum install git

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

或直接下载zip包然后unzip

cd进入解压后的目录

看看有没有configure这个文件,如果没有,在解压后的swoole目录中执行:

/php安装目录/bin/phpize

执行完成后就可以看到生成的configure文件了

./configure --help可以看到安装时可以指定的相关设置项

如:

--with-php-config=/usr/local/bin/php-config(指定php配置文件路径)

--enable-async-redis(增加对异步redis的支持)

--enable-coroutine(开启协程)

[root@localhost swoole]# ./configure --with-php-config=/usr/local/bin/php-config --enable-openssl --enable-async-redis --enable-mysqlnd

[root@localhost swoole]#make clean(如果之前make过,执行一下次行命令)

[root@localhost swoole]#make

[root@localhost swoole]#make install后,可以看到屏幕打印出生成的扩展的路径

可能遇到的问题:

php-m 发现swoole消失或者是通过php --ri swoole没有显示async redis client

或报类似错误:

PHP Warning:  PHP Startup: Unable to load dynamic library 'swoole' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/swoole (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/swoole: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20170718/swoole.so (libhiredis.so.0.13: cannot open shared object file: No such file or directory)) in Unknown on line 0

解决方法:

vi ~/.bash_profile

在最后一行添加 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

source ~/.bash_profile

重新编译安装swoole即可

检查安装是否成功:

php -m 查看swoole扩展是否开启

php --ri swoole查看async redis client => enabled是否存在

【让php7支持swoole】

在php.ini中添加

extension=swoole

extension=sockets(如果报错的话)

php -m 查看是否有swoole扩展

到之前下载的swoole源码中的examples/server下执行

php echo.php

如果不报错就安装成功了

netstat -ntlp看看

【tcp与udp的区别】

https://blog.csdn.net/li_ning_/article/details/52117463

【查看进程及状态】

ps aft | grep tcp.php(某个server文件的名称)

D    不可中断     Uninterruptible sleep (usually IO)

R    正在运行,或在队列中的进程

S    处于休眠状态

T    停止或被追踪

Z    僵尸进程

W    进入内存交换(从内核2.6开始无效)

X    死掉的进程

N    低优先级

L    有些页被锁进内存

s    包含子进程

+    位于后台的进程组

l    多线程,克隆线程

【nginx转发】

将root指向的目录中不存在的请求转发

location / {

root /home/....

index index.html

if 这里有个空格(!-e $request_filename){

#以下是一台机器时的配置方法

proxy_pass http://ip:端口;

#以下是多台机器时的配置方法

proxy_pass http://swoole_hurong

}

}

upstream swoole_hurong这个名称随便起 {

server ip:端口 weight=2;#等号两边不能有空格

server ip:端口 weight=1;

}

【nginx负载均衡】

第一台承担2/3

第二台承担1/3

upstream swoole_hurong这个名称随便起 {

server ip:端口 weight=2;#等号两边不能有空格

server ip:端口 weight=1;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值