之前在爲了學習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。