php 安装swoole

本文详细记录了在CentOS7.3环境下,针对PHP5.6版本进行Swoole扩展安装的过程,涵盖依赖库安装、编译参数调整及常见错误解决策略,如libhiredis.so.0.13、httpd2支持、libphpx.so缺失等问题。

swoole 安装避坑指南

swoole简介:
PHP的协程高性能网络通信引擎,使用C/C++语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端/客户端。
1、 根据对应的php版本下载相应的swoole扩展
2、 安装相关依赖
3、 本次安装采用编译安装
4、 环境:php版本5.6 centos7.3
坑1: “Starting php-fpm: [28-Apr-2017 14:40:12] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/swoole.so’ - libhiredis.so.0.13: cannot open shared object file: No such file or directory in Unknown on line 0” ---------- 最后在swoole的wiki评论中找到了解决方案: 就是在指定编译参数的时候带上redis库的路径 ./configure --enable-async-redis=/usr/local 即可 .
坑1.4: “Enable http2 support, require nghttp2 library” 支持htppd2 协议 故先下载httpd2 的包 --------wget https://github.com/nghttp2/nghttp2/releases/download/v1.30.0/nghttp2-1.30.0.tar.bz2 tar -jxvf nghttp2-1.30.0.tar.bz2 cd nghttp2-1.30.0 ./configure make && make install.
坑2、 “libphpx.so: cannot open shared object file: No such file or directory” - 检查系统lib目录中是否存在libphpx.so,包括/lib、/usr/lib、/usr/local/lib等位置 检查/usr/local/lib目录是否加入了ld.so.conf中,位置在/etc/ld.so.conf或者/etc/ld.so.conf.d/* 执行sudo ldconfig.
坑3 “Unable to load dynamic library ‘/usr/lib64/php/modules/swoole.so’ - /usr/lib64/php/modules/swoole.so: undefined symbol: php_sockets_le_socket in Unknown on line 0” ----- swoole.so 这个扩展依赖 sockets.so 这个扩展 所以先在/etc/php.ini 文件中 加入 extension = websocks.so 放在 swoole.so 前面*

PHP安装Swoole可以分为不同的环境和步骤,以下是几种常见的安装方式: ### CentOS系统环境下综合安装方式 在CentOS系统中,安装Swoole可以按照如下步骤进行: 1. **安装CentOS 7**:包括下载系统、安装系统以及系统初始化等操作。 2. **安装PHP 8.1**:使用SSH连接,更改镜像源后安装PHP 8.1。 3. **安装MySQL 8**。 4. **安装Swoole**。 5. **PHPStorm代码同步**。 6. **PHPStorm连接远程终端**。 7. **PHPStorm安装swoole插件**。 8. **安装Redis** [^1]。 ### 特定PHP版本环境下安装Swoole扩展 当php环境为7.3时,可按以下步骤安装Swoole扩展: ```bash wget https://pecl.php.net/get/swoole-4.6.6.tgz tar -zxvf swoole-4.6.6.tgz cd swoole-4.6.6 /usr/local/php7/bin/phpize ./configure --enable-openssl --enable-sockets --enable-mysqlnd --enable-swoole-curl --enable-cares --with-php-config=/usr/local/php7/bin/php-config make make install ``` 上述代码先下载Swoole指定版本的压缩包,解压后进入目录,使用`phpize`初始化编译环境,接着进行配置,最后编译并安装 [^2]。 ### 通用安装扩展方式 使用以下命令安装扩展: ```bash phpize && \ ./configure \ --enable-openssl \ --enable-http2 && \ make && sudo make install ``` 此方式使用`phpize`初始化,配置相关选项后进行编译和安装 [^4]。 ### Laravel项目中安装Swoole扩展 在Laravel项目中,除了安装Swoole扩展,还需要在`Kernel.php`文件中注册Swoole类,示例代码如下: ```php <?php namespace App\Console; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { /** * The Artisan commands provided by your application. * * @var array */ protected $commands = [ // \App\Console\Commands\RedisSubscribe::class, \App\Console\Commands\Swoole::class, ]; /** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { // $schedule->command('inspire') // ->hourly(); } /** * Register the commands for the application. * * @return void */ protected function commands() { $this->load(__DIR__.'/Commands'); require base_path('routes/console.php'); } } ``` 通过上述代码在`Kernel.php`中注册Swoole类,完成在Laravel项目中的相关配置 [^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值