webman 打包成 phar 之后,直接启动可以的,只要是守护启动,提示成功,但是查看进程其实没有启动起来都
php8.0 start.phar start -d 提示
查询 提示 php8.0 start.phar status
Workerman[./dm_pay_system.phar] status Workerman[./dm_pay_system.phar] not run
查询进程也是找不到
从截图看启动命令并不是 php8.0 start.phar start -d
php8.0 start.phar start -d
重新改了个打包名,其实都是一样的,大佬
不想用 nohup 挂起启动,管理不好管理
执行 ps auxf 看下进程在不在
root@iZbp1f2en293wuktj3vx1cZ:/data/www/dmPaySystem/build# ps auxf |grep 8787 root 6291 0.0 0.0 14432 1024 pts/2 S+ 10:53 0:00 | | _ grep --color=auto 8787 root@iZbp1f2en293wuktj3vx1cZ:/data/www/dmPaySystem/build# ps auxf |grep dm_pay_system root 6603 0.0 0.0 14432 1008 pts/2 S+ 10:54 0:00 | | _ grep --color=auto dm_pay_system
用markdown方式发
php start.php start -d 是否有问题?
有问题
php8.0 dm_pay_system.phar start -d Workerman[dm_pay_system.phar] start in DAEMON mode ---------------------------------------------------- WORKERMAN ---------------------------------------------------- Workerman version:4.1.4 PHP version:8.0.22 Event-Loop:\Workerman\Events\Select ----------------------------------------------------- WORKERS ----------------------------------------------------- proto user worker listen processes status tcp root dm_pay_system http://0.0.0.0:8787 16 [OK] tcp root monitor none 1 [OK] tcp root plugin.webman.redis-queue.consumer none 6 [OK] ------------------------------------------------------------------------------------------------------------------- Input "php dm_pay_system.phar stop" to stop. Start success.
这里是打包配置:
<?php return [ 'enable' => true, 'phar_file_output_dir' => BASE_PATH . DIRECTORY_SEPARATOR . 'build', 'phar_filename' => 'dm_pay_system.phar', 'signature_algorithm'=> Phar::SHA256, //set the signature algorithm for a phar and apply it. The signature algorithm must be one of Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, or Phar::OPENSSL. 'private_key_file' => '', // The file path for certificate or OpenSSL private key file. 'exclude_pattern' => '#^(?!.*(config/plugin/webman/console/app.php|webman/console/src/Commands/(PharPackCommand.php|ReloadCommand.php)|LICENSE|composer.json|.github|.idea|doc|docs|.git|.setting|runtime|test|test_old|.env.example|composer.lock|tests|Tests|vendor-bin|.md))(.*)$#', 'exclude_files' => [ '.env', 'LICENSE', 'composer.json', 'composer.lock','start.php', '.env.example', '.gitignore', 'README.md', 'windows.bat', 'windows.php' ] ];
执行 strace -f php dm_pay_system.phar start -d 看下进程为什么退出
strace -f php dm_pay_system.phar start -d
很奇怪哦,是不是还有什么 php 函数禁用了,我在本地的 linux 子系统上这么操作是可行的
但是没提示报错
[pid 2656] write(1, "\nFatal error: Uncaught Error: Ca"..., 1821 <unfinished ...> [pid 2687] <... lseek resumed> ) = 0 [pid 2656] <... write resumed> ) = 1821 [pid 2687] lseek(3, 0, SEEK_CUR) = 0 [pid 2687] close(3) = 0 [pid 2656] write(1, "\nFatal error: Uncaught TypeError"..., 177 <unfinished ...> [pid 2687] close(1) = 0 [pid 2656] <... write resumed> ) = 177 [pid 2687] close(2) = 0 [pid 2656] close(2) = 0 [pid 2656] close(1 <unfinished ...> [pid 2687] openat(AT_FDCWD, "/data/release/dmPaySystem/63_1681_20221212_184623/build/runtime/logs/stdout.log", O_WRONLY|O_CREAT|O_APPEND, 0666 <unfinished ...> [pid 2656] <... close resumed> ) = 0 [pid 2687] <... openat resumed> ) = 1 [pid 2687] fstat(1, <unfinished ...> [pid 2656] close(0 <unfinished ...> [pid 2687] <... fstat resumed> {st_mode=S_IFREG|0666, st_size=474399, ...}) = 0 [pid 2676] munmap(0x7fb92be00000, 2097152 <unfinished ...> [pid 2687] lseek(1, 0, SEEK_CUR <unfinished ...> [pid 2656] <... close resumed> ) = 0 [pid 2676] <... munmap resumed> ) = 0 [pid 2685] munmap(0x7fb92be00000, 2097152) = 0 [pid 2685] munmap(0x7fb92ba00000, 2097152) = 0 [pid 2687] <... lseek resumed> ) = 0 [pid 2676] munmap(0x7fb92ba00000, 2097152 <unfinished ...> [pid 2656] munmap(0x7fb92be00000, 2097152 <unfinished ...> [pid 2685] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7fb92ba999f0} --- [pid 2656] <... munmap resumed> ) = 0 [pid 2687] lseek(1, 0, SEEK_CUR <unfinished ...> [pid 2676] <... munmap resumed> ) = 0 [pid 2687] <... lseek resumed> ) = 0 [pid 2656] munmap(0x7fb92ba00000, 2097152) = 0 [pid 2686] munmap(0x7fb92be00000, 2097152 <unfinished ...> [pid 2656] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7fb92ba999f0} --- [pid 2676] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7fb92ba999f0} --- [pid 2686] <... munmap resumed> ) = 0 [pid 2686] munmap(0x7fb92ba00000, 2097152) = 0 [pid 2686] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7fb92ba999f0} --- [pid 2685] +++ killed by SIGSEGV +++ [pid 2656] +++ killed by SIGSEGV +++ [pid 2687] openat(AT_FDCWD, "/data/release/dmPaySystem/63_1681_20221212_184623/build/runtime/logs/stdout.log", O_WRONLY|O_CREAT|O_APPEND, 0666 <unfinished ...> [pid 2686] +++ killed by SIGSEGV +++ [pid 2676] +++ killed by SIGSEGV +++ <... openat resumed> ) = 2 fstat(2, {st_mode=S_IFREG|0666, st_size=474399, ...}) = 0 lseek(2, 0, SEEK_CUR) = 0 lseek(2, 0, SEEK_CUR) = 0 write(1, "\nFatal error: Uncaught Error: Ca"..., 2328) = 2328 write(1, "\nFatal error: Uncaught TypeError"..., 177) = 177 close(2) = 0 close(1) = 0 close(0) = 0 munmap(0x7fb92be00000, 2097152) = 0 munmap(0x7fb92ba00000, 2097152) = 0 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7fb92ba999f0} --- +++ killed by SIGSEGV +++
这是哪个函数被禁用了吧
strace -s 4000 -f php dm_pay_system.phar start -d 用这个命令看下
strace -s 4000 -f php dm_pay_system.phar start -d
posix_isatty 函数禁用了,其他函数每次启动都提示这个没提示
[pid 4912] write(1, "\nFatal error: Uncaught Error: Call to undefined function posix_isatty()
这个函数能不能想其他函数一样进行提示呢
跟着大佬学习了一个命令,仔细查了下,还挺有用,大佬牛批
从截图看启动命令并不是
php8.0 start.phar start -d
重新改了个打包名,其实都是一样的,大佬
不想用 nohup 挂起启动,管理不好管理
执行 ps auxf 看下进程在不在
root@iZbp1f2en293wuktj3vx1cZ:/data/www/dmPaySystem/build# ps auxf |grep 8787
root 6291 0.0 0.0 14432 1024 pts/2 S+ 10:53 0:00 | | _ grep --color=auto 8787
root@iZbp1f2en293wuktj3vx1cZ:/data/www/dmPaySystem/build# ps auxf |grep dm_pay_system
root 6603 0.0 0.0 14432 1008 pts/2 S+ 10:54 0:00 | | _ grep --color=auto dm_pay_system
用markdown方式发
php start.php start -d 是否有问题?
有问题
这里是打包配置:
执行
strace -f php dm_pay_system.phar start -d
看下进程为什么退出很奇怪哦,是不是还有什么 php 函数禁用了,我在本地的 linux 子系统上这么操作是可行的
但是没提示报错
这是哪个函数被禁用了吧
strace -s 4000 -f php dm_pay_system.phar start -d
用这个命令看下posix_isatty 函数禁用了,其他函数每次启动都提示这个没提示
跟着大佬学习了一个命令,仔细查了下,还挺有用,大佬牛批