之前在为了学习swoole,自己的服务器源码安装了php7.0和swoole,当时自己测试后,swoole的服务能使用。
一个月后的今天,因为项目中使用到了即使通讯,所以打算重新学习swoole
在执行下面代码时出错:
root@xxxxxx:/usr/local/nginx/html/swoole/server# php tcp.php
报错信息如下:
PHP Warning: PHP Startup: Unable to load dynamic library
'/usr/lib/php/20151012/swoole.so' - /usr/lib/php/20151012/swoole.so:
undefined symbol: zend_empty_string in Unknown on line 0
PHP Fatal error: Uncaught Error: Class 'swoole_server' not found in /usr/local/nginx/html/swoole/server/tcp.php:9
Stack trace:
#0 {main}
thrown in /usr/local/nginx/html/swoole/server/tcp.php on line 9
???一脸懵逼
undefined symbol: zend_empty_string in Unknown on line 0
PHP Fatal error: Uncaught Error: Class ‘swoole_server’ not found
行,看不懂,果断谷歌之,看到韩天峰大大的回复
好吧,听大大的,重新编译swoole过。php.ini加入swoole.so
php tcp.php 再执行一次。
why??还是一样的报错,一个字母都没有错 得, 继续谷歌之
https://www.cnblogs.com/pyspang/p/7922617.html
在使用php -m 的命令时和博主遇到的问题一致.
那行 直接使用绝定路径的php重启脚本
成了,没什么问题。php启动服务脚本时,使用绝定位置.
这是什么bug???
看了看之前php编译时的操作,是将php 添加到了环境变量当中. 于是去环境变量的文件中取找,并没有把php
所在的目录加入到环境变量当中。b了狗啦,进行排查。在环境变量的一个目录中存在php 而这个php启动的是另一个PHP
之前是使用pecl安装php的,没有卸载干净。导致php 命令使用的是之前的php。