swoole单独运行php,swoole安装完之后,运行php-fpm报错

  • Post author:
  • Post category:php


### 问题描述

swoole安装步骤是照着文档来的,并且已经在php.ini中添加extension=swoole.so,但是这里有一个问题,我发现php.ini有两个,一个在

/ect/php.ini

另外一个在

/lnmp/php7/lib/php.ini

首先我在/ect/php.ini中添加extension=swoole.so之后,php -m能够看到swoole模块已经被添加,但是phpinfo()查不到swoole,而且运行php代码报错

“`php

Fatal error: Uncaught Error: Class ‘Swoole\Http\Server’ not found in /lnmp/nginx/html/index.php:2 Stack trace: #0 {main} thrown in /lnmp/nginx/html/index.php on line 2

“`

这会不会是swoole扩展没加载进php导致找不到类呢,然后我把/lnmp/php7/lib/php.ini文件也加上了extension=swoole.so,但是这时候php-fpm会报错

“`php

[28-Jul-2020 06:12:37] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library ‘swoole.so’ (tried: /lnmp/php7/lib/php/extensions/no-debug-non-zts-20180731/swoole.so (/lnmp/php7/lib/php/extensions/no-debug-non-zts-20180731/swoole.so: cannot open shared object file: No such file or directory), /lnmp/php7/lib/php/extensions/no-debug-non-zts-20180731/swoole.so.so (/lnmp/php7/lib/php/extensions/no-debug-non-zts-20180731/swoole.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0


Warning

: PHP Startup: Unable to load dynamic library ‘swoole.so’ (tried: /lnmp/php7/lib/php/extensions/no-debug-non-zts-20180731/swoole.so (/lnmp/php7/lib/php/extensions/no-debug-non-zts-20180731/swoole.so: cannot open shared object file: No such file or directory), /lnmp/php7/lib/php/extensions/no-debug-non-zts-20180731/swoole.so.so (/lnmp/php7/lib/php/extensions/no-debug-non-zts-20180731/swoole.so.so: cannot open shared object file: No such file or directory)) in

Unknown

on line

0

“`

以上是完整的错误(虽然好像是报了warning警告),并且访问php的时候依旧是Class ‘Swoole\Http\Server’ not found,我也不知道哪个环节出了问题。

首先swoole是成功安装了,我照着官方的指令验证过了

“`php

php –ri swoole

“`

### Swoole版本,PHP版本,以及操作系统版本信息

### 相关代码

swoole是官方最新的版本v4.5.3-alpha

php是7.2.24

操作系统是centOS 8

以下是相关代码(官方例子复制过来的异步http代码)

“`php

$http = new Swoole\Http\Server(“127.0.0.1”, 9501);

$http->on(‘request’, function ($request, $response) {

$response->end(”

Hello Swoole. #”.rand(1000, 9999).”

“);

});

$http->start();

“`

lnmp的搭建是百度上查到的教程,以下是php搭建步骤

“`php

cd /lnmp

wget https://www.php.net/distributions/php-7.3.5.tar.gz

tar xvf php-7.3.5.tar.gz

cd php-7.3.5

./configure –prefix=/lnmp/php7 –enable-fpm –with-mysqli –with-curl –with-pdo_mysql –with-pdo_sqlite –enable-mysqlnd –enable-mbstring –with-gd

make && make install

cp php.ini-development /lnmp/php7/lib/php.ini

cd /lnmp/php7/etc/

#重命名

mv php-fpm.conf.default php-fpm.conf

mv php-fpm.d/www.conf.default php-fpm.d/www.conf

cp /lnmp/php7/sbin/php-fpm /usr/bin/

#修改配置文件php.ini,(/lnmp/php7/lib/php.ini)

cgi.fix_pathinfo=0

php-fpm#开启

killall php-fpm#关闭

“`