dreadnip/chop

该软件包最新版本(1.0.0)没有可用的许可信息。

通过php-fpm清除opcache

1.0.0 2024-04-11 08:41 UTC

This package is auto-updated.

Last update: 2024-09-07 10:39:46 UTC


README

从CLI重置OPcache内容,而不重新加载PHP-FPM。

cachetool操作方式相同,但体积更小。Chop只能做一件事:清除opcache内容。它不支持APCu缓存、realpath缓存,也不支持cachetool的额外opcache命令。

Chop除了hollodotme/fast-cgi-client之外没有其他依赖。这使得它与您的项目依赖不太可能冲突。因此,不需要将Chop用作PHAR。通过Composer安装它可以使它与您的应用程序的PHP版本更容易耦合。

安装

composer require dreadnip/chop

用法

这是一个单命令应用程序,因此调用二进制文件就足够了

php /path/to/your/project/vendor/bin/chop

默认情况下,命令将打印成功消息或错误到控制台。您可以使用-q选项抑制此输出。

php /path/to/your/project/vendor/bin/chop -q

该工具尝试使用合理的默认值

如果没有传递参数,它将在以下位置查找php-fpm套接字文件

private const POSSIBLE_SOCKET_FILE_PATTERNS = [
    '~/.sock/*.sock',
    '/var/run/php*.sock',
    '/var/run/php/*.sock',
    '/var/run/php-fpm/*.sock',
];

这应该在大多数Linux发行版中找到您的套接字文件。如果我们遗漏了一个常见的位置,请打开一个问题/PR。

如果找到多个套接字文件,它将尝试通过检查PHP版本的主次要号来选择一个文件名。

例如:如果您的服务器有以下套接字文件,并且您正在运行PHP 8.1,它将选择文件名中同时包含8和1的套接字文件。

php_80_fpm_sites.sock
**php_81_fpm_sites.sock**
php_82_fpm_sites.sock

当找不到任何套接字文件时,它将默认为127.0.0.1:9000。

如果默认值对您不起作用,您还可以使用--fcgi选项显式传递IP地址或套接字文件的路径

php /path/to/your/project/vendor/bin/chop --fcgi=/var/run/php-fpm.sock

部署者集成

使用以下命令定义任务

task('clear:opcache', function () {
    run('{{bin/php}} {{ release_path }}/vendor/bin/chop');
});

在部署后调用任务

after('deploy:symlink', 'clear:opcache');

或手动运行它

dep clear:opcache stage=production -vvv

致谢

当然,这个工具受到了令人惊叹的cachetool的启发和基于。

与cachetool一样,FastCGI套接字代码由hollodotme/fast-cgi-client处理。