由于需要使用apcu扩展,所以自己编译了一份php8.1静态文件,一次编译了php8.1-static和micro.sfx两个文件。 php8.1-static用于开发环境并未出现任何问题,但是将自己的micro.sfx拷贝到build/目录下打包二进制后,二进制文件不能执行,提示"only run in command line mode"。怀疑是编译的时候少东西
编译语句为:
$ ./spc-linux-x86_64 build --build-cli --build-micro "bcmath,apcu,calendar,ctype,curl,dom,event,exif,ffi,fileinfo,filter,gd,iconv,inotify,mbstring,mongodb,mysqlnd,openssl,pcntl,pdo,pdo_mysql,pdo_sqlite,phar,posix,readline,redis,session,shmop,simplexml,soap,sockets,sqlite3,tokenizer,xml,xmlreader,zip,zlib,xmlwriter" --debug -I "memory_limit=512M"
编译步骤:https://www.workerman.net/a/1605
解决方案一:更新workerman至v4.1.14版本,其中兼容了PHP_SAPI为micro的方式(感谢老大@ walkor
立马更新了这个版本)
解决方案二:编译的时候增加参数--with-micro-fake-cli
,编译以后PHP_SAPI的值依旧是cli (感谢@crazywhalecc
原作者提供的帮助)
升级下workerman
workerman已经是最新版本v4.1.13 需要升级到v5么?
你手动改下源码,判断去掉就好了
啊? 这样感觉不太好维护,请问官网维护的php8.1静态文件和php8.1.micro.sfx都是咋编译的,加了哪些参数,我用官网的就没有问题。 我自己编译的可能还会造成其他不可预料的问题
sfx 编译的时候好像也有选项设置
我找了crazywhalecc/static-php-cli项目说明,没找到怎么选项,咱们workerman维护的sfx加了啥
印象中没加东西
那就麻烦了,我就是想加个apcu扩展和修改下memory_limit的值,就等着发布了。麻烦老大给看看咋解决
发了 4.1.14版,你升级下workerman
感谢,不过现在还没看到4.1.14版哈
我分别使用两个sfx打印了PHP_SAPI的值,发现我自己的sfx是micro,workerman官网编译的sfx值是cli。 虽然不明白官网怎么做到的,但是workerman兼容一下应该也行。不过老大难道改了crazywhalecc/static-php-cli源码再编译的么
我不记得了
感谢老大,那我等4.1.14上线以后再更新一下哈
4.1.14 好了
老大效率太高了
手速贼快
666